INCLUDE "includes.asm" SECTION "bank1", ROMX, BANK[$1] Function4000:: ; 4000 hlcoord 3, 10 ld b, 1 ld c, 11 ld a, [IsInBattle] and a jr z, .asm_4012 call TextBox jr .asm_4017 .asm_4012 ld a, $10 call Predef .asm_4017 hlcoord 4, 11 ld de, .Waiting call PlaceString ld c, 50 jp DelayFrames ; 4025 .Waiting ; 4025 db "Waiting...!@" ; 4031 LoadPushOAM:: ; 4031 ld c, hPushOAM & $ff ld b, PushOAMEnd - PushOAM ld hl, PushOAM .loop ld a, [hli] ld [$ff00+c], a inc c dec b jr nz, .loop ret ; 403f PushOAM: ; 403f ld a, Sprites >> 8 ld [rDMA], a ld a, $28 .loop dec a jr nz, .loop ret PushOAMEnd ; 4049 INCLUDE "engine/facings.asm" Data4273:: ; 4273 db $00, $00, $01, $02, $00, $00 db $06, $00, $01, $0c, $00, $00 db $03, $00, $01, $00, $00, $00 db $04, $00, $01, $00, $00, $00 db $01, $00, $01, $00, $00, $00 db $02, $00, $01, $00, $00, $00 db $06, $00, $01, $00, $00, $00 db $06, $01, $01, $00, $00, $00 db $06, $02, $01, $00, $00, $00 db $06, $03, $01, $00, $00, $00 db $05, $00, $01, $00, $00, $00 db $07, $00, $01, $02, $00, $00 db $08, $00, $01, $00, $00, $00 db $09, $00, $01, $00, $00, $00 db $0a, $00, $01, $00, $00, $00 db $0b, $00, $01, $00, $00, $00 db $0c, $00, $01, $00, $00, $00 db $0d, $00, $01, $00, $00, $00 db $0e, $00, $01, $00, $00, $00 db $0f, $00, $01, $02, $00, $00 db $10, $00, $01, $02, $00, $00 db $15, $00, $09, $2e, $01, $c0 db $16, $00, $0a, $2e, $00, $00 db $06, $00, $01, $0c, $00, $00 db $06, $00, $01, $2e, $10, $00 db $11, $00, $01, $2e, $00, $40 db $12, $00, $01, $02, $00, $00 db $13, $00, $00, $8e, $01, $00 db $14, $00, $08, $8e, $02, $00 db $17, $00, $00, $82, $00, $00 db $19, $02, $01, $00, $00, $00 db $18, $03, $01, $00, $00, $00 db $11, $00, $0c, $2e, $01, $c0 db $11, $00, $0d, $2e, $01, $c0 db $1a, $00, $0e, $8e, $01, $00 db $1b, $00, $0f, $8e, $02, $00 db $03, $00, $01, $00, $00, $20 db $00, $00, $01, $00, $00, $00 ; 4357 Function4357:: ; 4357 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, .asm_4379 bit 7, a jr nz, .asm_4379 call GetMapObject ld hl, $0000 add hl, bc ld [hl], $ff .asm_4379 pop bc ret ; 437b Function437b: ; 437b call Function4386 ret c call Function43f3 call Function4427 ret ; 4386 Function4386: ; 4386 ld hl, $0005 add hl, bc res 6, [hl] ld a, [XCoord] ld e, a ld hl, $0010 add hl, bc ld a, [hl] add $1 sub e jr c, .asm_43b2 cp $c jr nc, .asm_43b2 ld a, [YCoord] ld e, a ld hl, $0011 add hl, bc ld a, [hl] add $1 sub e jr c, .asm_43b2 cp $b jr nc, .asm_43b2 jr .asm_43dc .asm_43b2 ld hl, $0005 add hl, bc set 6, [hl] ld a, [XCoord] ld e, a ld hl, $0014 add hl, bc ld a, [hl] add $1 sub e jr c, .asm_43de cp $c jr nc, .asm_43de ld a, [YCoord] ld e, a ld hl, $0015 add hl, bc ld a, [hl] add $1 sub e jr c, .asm_43de cp $b jr nc, .asm_43de .asm_43dc and a ret .asm_43de ld hl, $0004 add hl, bc bit 1, [hl] jr nz, .asm_43eb call Function4357 scf ret .asm_43eb ld hl, $0005 add hl, bc set 6, [hl] and a ret ; 43f3 Function43f3: ; 43f3 ld hl, $0009 add hl, bc ld a, [hl] and a jr z, .asm_4409 ld hl, $0005 add hl, bc bit 5, [hl] jr nz, .asm_4426 cp $1 jr z, .asm_4414 jr .asm_4421 .asm_4409 call Function47bc ld hl, $0005 add hl, bc bit 5, [hl] jr nz, .asm_4426 .asm_4414 call Function47dd ld hl, $0009 add hl, bc ld a, [hl] and a ret z cp $1 ret z .asm_4421 ld hl, Pointers4b45 rst JumpTable ret .asm_4426 ret ; 4427 Function4427: ; 4427 ld hl, $0004 add hl, bc bit 0, [hl] jr nz, Function44a3 ld hl, $0005 add hl, bc bit 6, [hl] jr nz, Function44a3 bit 5, [hl] jr nz, Function4448 ld de, Pointers445f jr Function444d ; 4440 Function4440: ; 4440 ld hl, $0004 add hl, bc bit 0, [hl] jr nz, Function44a3 ; fallthrough ; 4448 Function4448: ; 4448 ld de, Pointers445f + 2 jr Function444d ; 444d Function444d: ; 444d ld hl, $000b add hl, bc ld a, [hl] ld l, a ld h, 0 add hl, hl add hl, hl add hl, de ld a, [hli] ld h, [hl] ld l, a call _hl_ ret ; 445f Pointers445f: ; 445f dw Function44a3 dw Function44a3 dw Function44b5 dw Function44aa dw Function44c1 dw Function44aa dw Function4508 dw Function44aa dw Function4529 dw Function44aa dw Function4539 dw Function44a3 dw Function456e dw Function456e dw Function457b dw Function44a3 dw Function4582 dw Function4582 dw Function4589 dw Function4589 dw Function4590 dw Function45a4 dw Function45ab dw Function44aa dw Function45be dw Function45be dw Function45c5 dw Function45c5 dw Function45da dw Function44a3 dw Function45ed dw Function44a3 dw Function44e4 dw Function44aa ; 44a3 Function44a3: ; 44a3 ld hl, OBJECT_FACING add hl, bc ld [hl], $ff ret ; 44aa Function44aa: ; 44aa call GetSpriteDirection or $0 ld hl, OBJECT_FACING add hl, bc ld [hl], a ret ; 44b5 Function44b5: ; 44b5 ld hl, OBJECT_FACING add hl, bc ld a, [hl] and $1 jr nz, Function44c1 jp Function44aa ; 44c1 Function44c1: ; 44c1 ld hl, $0004 add hl, bc bit 3, [hl] jp nz, Function44aa ld hl, $000c add hl, bc ld a, [hl] inc a and $f ld [hl], a rrca rrca and $3 ld d, a call GetSpriteDirection or $0 or d ld hl, OBJECT_FACING add hl, bc ld [hl], a ret ; 44e4 Function44e4: ; 44e4 ld hl, $0004 add hl, bc bit 3, [hl] jp nz, Function44aa ld hl, $000c add hl, bc ld a, [hl] add $2 and $f ld [hl], a rrca rrca and $3 ld d, a call GetSpriteDirection or $0 or d ld hl, OBJECT_FACING add hl, bc ld [hl], a ret ; 4508 Function4508: ; 4508 ld hl, $0004 add hl, bc bit 3, [hl] jp nz, Function44aa ld hl, $000c add hl, bc inc [hl] ld a, [hl] rrca rrca rrca and $3 ld d, a call GetSpriteDirection or $0 or d ld hl, OBJECT_FACING add hl, bc ld [hl], a ret ; 4529 Function4529: ; 4529 call Function453f ld hl, $0008 add hl, bc ld a, [hl] or $0 ld hl, OBJECT_FACING add hl, bc ld [hl], a ret ; 4539 Function4539: ; 4539 call Function453f jp Function44a3 ; 453f Function453f: ; 453f ld hl, $000c add hl, bc ld a, [hl] and $f0 ld e, a ld a, [hl] inc a and $f ld d, a cp $4 jr c, .asm_4558 ld d, 0 ld a, e add $10 and $30 ld e, a .asm_4558 ld a, d or e ld [hl], a swap e ld d, 0 ld hl, .Directions add hl, de ld a, [hl] ld hl, $0008 add hl, bc ld [hl], a ret ; 456a .Directions ; 456a db $00, $0c, $04, $08 ; 456e Function456e: ; 456e call GetSpriteDirection rrca rrca add $10 ld hl, OBJECT_FACING add hl, bc ld [hl], a ret ; 457b Function457b: ; 457b ld hl, OBJECT_FACING add hl, bc ld [hl], $15 ret ; 4582 Function4582: ; 4582 ld hl, OBJECT_FACING add hl, bc ld [hl], $14 ret ; 4589 Function4589: ; 4589 ld hl, OBJECT_FACING add hl, bc ld [hl], $17 ret ; 4590 Function4590: ; 4590 ld hl, $000c add hl, bc ld a, [hl] inc a and $f ld [hl], a and $8 jr z, Function45a4 ld hl, OBJECT_FACING add hl, bc ld [hl], $4 ret ; 45a4 Function45a4: ; 45a4 ld hl, OBJECT_FACING add hl, bc ld [hl], $0 ret ; 45ab Function45ab: ; 45ab ld hl, $000c add hl, bc ld a, [hl] inc a ld [hl], a and $c rrca rrca add $18 ld hl, OBJECT_FACING add hl, bc ld [hl], a ret ; 45be Function45be: ; 45be ld hl, OBJECT_FACING add hl, bc ld [hl], $16 ret ; 45c5 Function45c5: ; 45c5 ld a, [$d831] ld d, $17 cp $33 jr z, .asm_45d4 cp $47 jr z, .asm_45d4 ld d, $16 .asm_45d4 ld hl, OBJECT_FACING add hl, bc ld [hl], d ret ; 45da Function45da: ; 45da ld hl, $000c add hl, bc inc [hl] ld a, [hl] ld hl, OBJECT_FACING add hl, bc and 2 ld a, $1c jr z, .asm_45eb inc a .asm_45eb ld [hl], a ret ; 45ed Function45ed: ; 45ed ld hl, $000c add hl, bc inc [hl] ld a, [hl] ld hl, OBJECT_FACING add hl, bc and 4 ld a, $1e jr z, .asm_45fe inc a .asm_45fe ld [hl], a ret ; 4600 Function4600: ; 4600 ld hl, OBJECT_MAP_X add hl, bc ld a, [hl] ld hl, OBJECT_NEXT_MAP_X add hl, bc ld [hl], a ld hl, OBJECT_MAP_Y add hl, bc ld a, [hl] ld hl, OBJECT_NEXT_MAP_Y add hl, bc ld [hl], a ld hl, OBJECT_STANDING_TILE add hl, bc ld a, [hl] ld hl, OBJECT_NEXT_TILE add hl, bc ld [hl], a call Function4661 ld hl, OBJECT_STANDING_TILE add hl, bc ld a, [hl] call Function4679 ret ; 462a Function462a: ; 462a ld hl, OBJECT_NEXT_MAP_X add hl, bc ld a, [hl] ld hl, OBJECT_MAP_X add hl, bc ld [hl], a ld hl, OBJECT_NEXT_MAP_Y add hl, bc ld a, [hl] ld hl, OBJECT_MAP_Y add hl, bc ld [hl], a ret ; 463f Function463f: ; 463f ld hl, OBJECT_FLAGS add hl, bc bit 3, [hl] jr z, .asm_464f ld hl, $000e add hl, bc ld a, [hl] call Function4661 .asm_464f ld hl, $000e add hl, bc ld a, [hl] call Function4679 ret c ld hl, $000f add hl, bc ld a, [hl] call Function4679 ret ; 4661 Function4661: ; 4661 call Function188e jr z, .asm_466b call Function1875 jr c, .asm_4672 .asm_466b ld hl, $0005 add hl, bc set 3, [hl] ret .asm_4672 ld hl, $0005 add hl, bc res 3, [hl] ret ; 4679 Function4679: ; 4679 and a ret ; 467b Function467b: ; 467b xor a ld hl, $000c add hl, bc ld [hl], a ld hl, $001b add hl, bc ld [hli], a ld [hli], a ld [hli], a ld [hl], a ld hl, $0007 add hl, bc ld [hl], $ff ret ; 4690 Function4690: ; 4690 ld hl, $0007 add hl, bc ld [hl], a ld hl, $0004 add hl, bc bit 2, [hl] jr nz, .asm_46a6 add a add a and $c ld hl, $0008 add hl, bc ld [hl], a .asm_46a6 ; fallthrough ; 46a6 Function46a6: ; 46a6 call GetStepVector ld hl, OBJECT_STEP_DURATION add hl, bc ld [hl], a ld a, d call Function4730 ld hl, OBJECT_NEXT_MAP_X add hl, bc add [hl] ld hl, OBJECT_MAP_X add hl, bc ld [hl], a ld d, a ld a, e call Function4730 ld hl, OBJECT_NEXT_MAP_Y add hl, bc add [hl] ld hl, OBJECT_MAP_Y add hl, bc ld [hl], a ld e, a push bc call Function2a3c pop bc ld hl, $000e add hl, bc ld [hl], a ret ; 46d7 Function46d7: ; 46d7 call GetStepVector ld hl, OBJECT_SPRITE_X add hl, bc ld a, [hl] add d ld [hl], a ld hl, OBJECT_SPRITE_Y add hl, bc ld a, [hl] add e ld [hl], a ret ; 46e9 GetStepVector: ; 46e9 ; Return (x, y, duration, speed) in (d, e, a, h). ld hl, $0007 add hl, bc ld a, [hl] and $f add a add a ld l, a ld h, 0 ld de, StepVectors add hl, de ld d, [hl] inc hl ld e, [hl] inc hl ld a, [hli] ld h, [hl] ret ; 4700 StepVectors: ; 4700 ; x, y, duration, speed ; slow db 0, 1, 16, 1 db 0, -1, 16, 1 db -1, 0, 16, 1 db 1, 0, 16, 1 ; normal db 0, 2, 8, 2 db 0, -2, 8, 2 db -2, 0, 8, 2 db 2, 0, 8, 2 ; fast db 0, 4, 4, 4 db 0, -4, 4, 4 db -4, 0, 4, 4 db 4, 0, 4, 4 ; 4730 Function4730: ; 4730 add a ret z ld a, 1 ret nc ld a, -1 ret ; 4738 Function4738: ; 4738 ld hl, $0007 add hl, bc ld a, [hl] and $3 ld [$d151], a call Function46d7 ld a, [$d14e] add d ld [$d14e], a ld a, [$d14f] add e ld [$d14f], a ld hl, $d150 set 5, [hl] ret ; 4759 Function4759: ; 4759 push bc ld e, a ld d, 0 ld hl, $0001 add hl, bc ld a, [hl] call GetMapObject add hl, de ld a, [hl] pop bc ret ; 4769 Function4769: ; 4769 ld hl, $0001 add hl, bc ld a, [hl] cp $ff jr z, .asm_477d push bc call GetMapObject ld hl, $0004 add hl, bc ld a, [hl] pop bc ret .asm_477d ld a, $6 ret ; 4780 Function4780: ; 4780 ld hl, $001b add hl, bc ld [hl], $0 ret ; 4787 Function4787: ; 4787 ld hl, $001b add hl, bc inc [hl] ret ; 478d Function478d: ; 478d ld hl, $001b add hl, bc dec [hl] ret ; 4793 Function4793: ; 4793 ld hl, $001b add hl, bc ld a, [hl] pop hl rst JumpTable ret ; 479b Function479b: ; 479b ld hl, $001c add hl, bc ld [hl], $0 ret ; 47a2 Function47a2: ; 47a2 ld hl, $001c add hl, bc inc [hl] ret ; 47a8 Function47a8: ; 47a8 ld hl, $001c add hl, bc ld a, [hl] pop hl rst JumpTable ret ; 47b0 Function47b0: ; 47b0 ld hl, $001c add hl, bc ld a, [hl] ret ; 47b6 Function47b6: ; 47b6 ld hl, $001c add hl, bc ld [hl], a ret ; 47bc Function47bc: ; 47bc ld hl, $0010 add hl, bc ld d, [hl] ld hl, $0011 add hl, bc ld e, [hl] push bc call Function2a3c pop bc ld hl, $000e add hl, bc ld [hl], a call Function4600 call Function467b ld hl, $0009 add hl, bc ld [hl], $1 ret ; 47dd Function47dd: ; 47dd call Function479b call Function1a2f ld a, [hl] ld hl, .Pointers rst JumpTable ret ; 47e9 .Pointers ; 47e9 dw Function4821 dw Function4822 dw Function482c dw Function4838 dw Function4842 dw Function4851 dw Function4869 dw Function487c dw Function4882 dw Function4888 dw Function488e dw Function4891 dw Function4894 dw Function4897 dw Function489d dw Function48a0 dw Function48a6 dw Function48ac dw Function48ff dw Function49e5 dw Function4a21 dw Function4958 dw Function496e dw Function4abc dw Function498d dw Function4984 dw Function4a46 dw Function4a89 ; 4821 Function4821: ; 4821 ret ; 4822 Function4822: ; 4822 call Random ld a, [hRandomAdd] and 1 jp Function4af0 ; 482c Function482c: ; 482c call Random ld a, [hRandomAdd] and 1 or 2 jp Function4af0 ; 4838 Function4838: ; 4838 call Random ld a, [hRandomAdd] and 3 jp Function4af0 ; 4842 Function4842: ; 4842 call Random ld a, [hRandomAdd] and $c ld hl, $0008 add hl, bc ld [hl], a jp Function4b1d ; 4851 Function4851: ; 4851 ld hl, $0008 add hl, bc ld a, [hl] and $c ld d, a call Random ld a, [hRandomAdd] and $c cp d jr nz, .asm_4865 xor $c .asm_4865 ld [hl], a jp Function4b26 ; 4869 Function4869: ; 4869 call Function462a call Function467b ld hl, $000b add hl, bc ld [hl], $1 ld hl, $0009 add hl, bc ld [hl], $5 ret ; 487c Function487c: ; 487c ld hl, Function5000 jp Function5041 ; 4882 Function4882: ; 4882 ld hl, Function5015 jp Function5041 ; 4888 Function4888: ; 4888 ld hl, Function5026 jp Function5041 ; 488e Function488e: ; 488e jp Function5037 ; 4891 Function4891: ; 4891 jp Function5037 ; 4894 Function4894: ; 4894 jp Function5037 ; 4897 Function4897: ; 4897 ld hl, Function5000 jp Function5041 ; 489d Function489d: ; 489d jp Function5037 ; 48a0 Function48a0: ; 48a0 ld hl, Function54e6 jp Function5041 ; 48a6 Function48a6: ; 48a6 ld hl, Function500e jp Function5041 ; 48ac Function48ac: ; 48ac call Function4793 dw Function48b3 dw Function48f8 ; 48b3 Function48b3: ; 48b3 ld hl, $000e add hl, bc ld a, [hl] call CheckPitTile jr z, .asm_48f5 ld hl, $0005 add hl, bc bit 2, [hl] res 2, [hl] jr z, .asm_48ee ld hl, $0020 add hl, bc ld a, [hl] and $3 or $0 call Function4690 call Function6ec1 jr c, .asm_48eb ld de, SFX_STRENGTH call PlaySFX call Function5538 call Function463f ld hl, $0009 add hl, bc ld [hl], $f ret .asm_48eb call Function462a .asm_48ee ld hl, $0007 add hl, bc ld [hl], $ff ret .asm_48f5 call Function4787 ; fallthrough ; 48f8 Function48f8: ; 48f8 ld hl, $0007 add hl, bc ld [hl], $ff ret ; 48ff Function48ff: ; 48ff ld hl, $0010 add hl, bc ld d, [hl] ld hl, $0011 add hl, bc ld e, [hl] ld hl, $0020 add hl, bc ld a, [hl] push bc call Function1ae5 ld hl, $0007 add hl, bc ld a, [hl] cp $ff jr z, .asm_494a ld hl, $0012 add hl, bc ld a, [hl] cp d jr z, .asm_492d jr c, .asm_4929 ld a, $3 jr .asm_493d .asm_4929 ld a, $2 jr .asm_493d .asm_492d ld hl, $0013 add hl, bc ld a, [hl] cp e jr z, .asm_494a jr c, .asm_493b ld a, $0 jr .asm_493d .asm_493b ld a, $1 .asm_493d ld d, a ld hl, $0007 add hl, bc ld a, [hl] and $c or d pop bc jp Function5412 .asm_494a pop bc ld hl, $0007 add hl, bc ld [hl], $ff ld hl, $000b add hl, bc ld [hl], $1 ret ; 4958 Function4958: ; 4958 call Function467b ld hl, $0007 add hl, bc ld [hl], $ff ld hl, $000b add hl, bc ld [hl], $9 ld hl, $0009 add hl, bc ld [hl], $4 ret ; 496e Function496e: ; 496e call Function467b ld hl, $0007 add hl, bc ld [hl], $ff ld hl, $000b add hl, bc ld [hl], $a ld hl, $0009 add hl, bc ld [hl], $4 ret ; 4984 Function4984: ; 4984 call Function4793 dw Function4996 dw Function499c dw Function49b8 ; 498d Function498d: ; 498d call Function4793 dw Function4996 dw Function499c dw Function49c4 ; 4996 Function4996: ; 4996 call Function467b call Function4787 ; fallthrough ; 499c Function499c: ; 499c ld hl, $000b add hl, bc ld [hl], $1 ld hl, $0020 add hl, bc ld a, [hl] ld a, $10 ld hl, OBJECT_STEP_DURATION add hl, bc ld [hl], a ld hl, $0009 add hl, bc ld [hl], $3 call Function4787 ret ; 49b8 Function49b8: ; 49b8 ld de, .data_49c0 call Function49d0 jr Function4984 ; 49c0 .data_49c0 ; 49c0 db $0c, $08, $00, $04 ; 49c4 Function49c4: ; 49c4 ld de, .data_49cc call Function49d0 jr Function498d ; 49cc .data_49cc ; 49cc db $08, $0c, $04, $00 ; 49d0 Function49d0: ; 49d0 ld hl, $0008 add hl, bc ld a, [hl] and $c rrca rrca push hl ld l, a ld h, $0 add hl, de ld a, [hl] pop hl ld [hl], a call Function478d ret ; 49e5 Function49e5: ; 49e5 call Function4aa8 ld hl, $000b add hl, bc ld [hl], $7 ld hl, OBJECT_STEP_DURATION add hl, de ld a, [hl] inc a add a add $0 ld hl, OBJECT_STEP_DURATION add hl, bc ld [hl], a ld hl, $0007 add hl, de ld a, [hl] and 3 ld d, $e cp 0 jr z, .asm_4a0f cp 1 jr z, .asm_4a0f ld d, $c .asm_4a0f ld hl, OBJECT_SPRITE_Y_OFFSET add hl, bc ld [hl], d ld hl, OBJECT_SPRITE_X_OFFSET add hl, bc ld [hl], $0 ld hl, $0009 add hl, bc ld [hl], $13 ret ; 4a21 Function4a21: ; 4a21 call Function467b call Function4aa8 ld hl, $000b add hl, bc ld [hl], $8 ld hl, OBJECT_STEP_DURATION add hl, bc ld [hl], $0 ld hl, OBJECT_SPRITE_Y_OFFSET add hl, bc ld [hl], $f0 ld hl, OBJECT_SPRITE_X_OFFSET add hl, bc ld [hl], $0 ld hl, $0009 add hl, bc ld [hl], $13 ret ; 4a46 Function4a46: ; 4a46 call Function467b call Function4aa8 ld hl, $000b add hl, bc ld [hl], $e ld hl, OBJECT_STEP_DURATION add hl, de ld a, [hl] inc a add a ld hl, OBJECT_STEP_DURATION add hl, bc ld [hl], a ld hl, $0007 add hl, de ld a, [hl] and 3 ld e, a ld d, 0 ld hl, .data_4a81 add hl, de add hl, de ld d, [hl] inc hl ld e, [hl] ld hl, OBJECT_SPRITE_X_OFFSET add hl, bc ld [hl], d ld hl, OBJECT_SPRITE_Y_OFFSET add hl, bc ld [hl], e ld hl, $0009 add hl, bc ld [hl], $13 ret ; 4a81 .data_4a81 ; 4a81 ; x, y db 0, -4 db 0, 8 db 6, 2 db -6, 2 ; 4a89 Function4a89: ; 4a89 call Function467b call Function4aa8 ld hl, $000b add hl, bc ld [hl], $f ld hl, OBJECT_STEP_DURATION add hl, de ld a, [hl] add $ff ld hl, OBJECT_STEP_DURATION add hl, bc ld [hl], a ld hl, $0009 add hl, bc ld [hl], $13 ret ; 4aa8 Function4aa8: ; 4aa8 ld hl, $0020 add hl, bc ld a, [hl] push bc call Function1ae5 ld d, b ld e, c pop bc ld hl, $001d add hl, bc ld [hl], e inc hl ld [hl], d ret ; 4abc Function4abc: ; 4abc call Function467b ld hl, $000b add hl, bc ld [hl], $0 ld hl, $0020 add hl, bc ld a, [hl] call Function4ade ld hl, OBJECT_STEP_DURATION add hl, bc ld [hl], e ld hl, $001e add hl, bc ld [hl], a ld hl, $0009 add hl, bc ld [hl], $15 ret ; 4ade Function4ade: ; 4ade ld d, a and $3f ld e, a ld a, d rlca rlca and $3 ld d, a inc d ld a, $1 .asm_4aeb dec d ret z add a jr .asm_4aeb ; 4af0 Function4af0: ; 4af0 call Function4690 call Function6ec1 jr c, Function4b17 call Function463f ld hl, $000b add hl, bc ld [hl], $2 ld hl, $d4cf ld a, [hConnectionStripLength] cp [hl] jr z, .asm_4b10 ld hl, $0009 add hl, bc ld [hl], $7 ret .asm_4b10 ld hl, $0009 add hl, bc ld [hl], $6 ret Function4b17: ; 4b17 call Function467b call Function462a ; fallthrough ; 4b1d Function4b1d: ; 4b1d call Random ld a, [hRandomAdd] and $7f jr Function4b2d ; 4b26 Function4b26: ; 4b26 call Random ld a, [hRandomAdd] and $1f ; fallthrough ; 4b2d Function4b2d: ; 4b2d ld hl, OBJECT_STEP_DURATION add hl, bc ld [hl], a ld hl, $0007 add hl, bc ld [hl], $ff ld hl, $000b add hl, bc ld [hl], $1 ld hl, $0009 add hl, bc ld [hl], $3 ret ; 4b45 Pointers4b45: ; 4b45 dw Function47bc dw Function47dd dw Function4e2b dw Function4ddd dw Function4e21 dw Function4e0c dw Function4e56 dw Function4e47 dw Function4b86 dw Function4bbf dw Function4e83 dw Function4dff dw Function4c18 dw Function4c89 dw Function4d14 dw Function4ecd dw Function4d7e dw Function4daf dw Function4dc8 dw Function4f04 dw Function4f33 dw Function4f33 dw Function4f77 dw Function4f7a dw Function4df0 dw Function4f83 ; 4b79 Function4b79: ; 4b79 ld hl, OBJECT_STEP_DURATION add hl, bc dec [hl] ret nz ld hl, $0009 add hl, bc ld [hl], $1 ret ; 4b86 Function4b86: ; 4b86 call Function47a8 dw Function4b8d dw Function4ba9 ; 4b8d Function4b8d: ; 4b8d call Function46d7 call UpdateJumpPosition ld hl, OBJECT_STEP_DURATION add hl, bc dec [hl] ret nz call Function4600 call Function46a6 ld hl, $0005 add hl, bc res 3, [hl] call Function47a2 ret ; 4ba9 Function4ba9: ; 4ba9 call Function46d7 call UpdateJumpPosition ld hl, OBJECT_STEP_DURATION add hl, bc dec [hl] ret nz call Function4600 ld hl, $0009 add hl, bc ld [hl], $1 ret ; 4bbf Function4bbf: ; 4bbf call Function47a8 dw Function4bca dw Function4bd2 dw Function4bf2 dw Function4bfd ; 4bca Function4bca: ; 4bca ld hl, $d150 set 7, [hl] call Function47a2 ; fallthrough ; 4bd2 Function4bd2: ; 4bd2 call UpdateJumpPosition call Function4738 ld hl, OBJECT_STEP_DURATION add hl, bc dec [hl] ret nz call Function4600 ld hl, $0005 add hl, bc res 3, [hl] ld hl, $d150 set 6, [hl] set 4, [hl] call Function47a2 ret ; 4bf2 Function4bf2: ; 4bf2 call Function46a6 ld hl, $d150 set 7, [hl] call Function47a2 ; fallthrough ; 4bfd Function4bfd: ; 4bfd call UpdateJumpPosition call Function4738 ld hl, OBJECT_STEP_DURATION add hl, bc dec [hl] ret nz ld hl, $d150 set 6, [hl] call Function4600 ld hl, $0009 add hl, bc ld [hl], $1 ret ; 4c18 Function4c18: ; 4c18 call Function47a8 dw Function4c23 dw Function4c32 dw Function4c42 dw Function4c5d ; 4c23 Function4c23: ; 4c23 ld hl, $000c add hl, bc ld [hl], $0 ld hl, OBJECT_STEP_DURATION add hl, bc ld [hl], $10 call Function47a2 ; fallthrough ; 4c32 Function4c32: ; 4c32 ld hl, $000b add hl, bc ld [hl], $4 ld hl, OBJECT_STEP_DURATION add hl, bc dec [hl] ret nz call Function47a2 ret ; 4c42 Function4c42: ; 4c42 ld hl, $000c add hl, bc ld [hl], $0 ld hl, $001f add hl, bc ld [hl], $10 ld hl, OBJECT_STEP_DURATION add hl, bc ld [hl], $10 ld hl, $0005 add hl, bc res 3, [hl] call Function47a2 ; fallthrough ; 4c5d Function4c5d: ; 4c5d ld hl, $000b add hl, bc ld [hl], $4 ld hl, $001f add hl, bc inc [hl] ld a, [hl] ld d, $60 call Sine ld a, h sub $60 ld hl, OBJECT_SPRITE_Y_OFFSET add hl, bc ld [hl], a ld hl, OBJECT_STEP_DURATION add hl, bc dec [hl] ret nz ld hl, $000c add hl, bc ld [hl], $0 ld hl, $0009 add hl, bc ld [hl], $1 ret ; 4c89 Function4c89: ; 4c89 call Function47a8 dw Function4c9a dw Function4caa dw Function4cb3 dw Function4cc9 dw Function4ceb dw Function4cf5 dw Function4d01 ; 4c9a Function4c9a: ; 4c9a ld hl, $000b add hl, bc ld [hl], $0 ld hl, OBJECT_STEP_DURATION add hl, bc ld [hl], $10 call Function47a2 ret ; 4caa Function4caa: ; 4caa ld hl, OBJECT_STEP_DURATION add hl, bc dec [hl] ret nz call Function47a2 ; fallthrough ; 4cb3 Function4cb3: ; 4cb3 ld hl, $000c add hl, bc ld [hl], $0 ld hl, $001f add hl, bc ld [hl], $0 ld hl, OBJECT_STEP_DURATION add hl, bc ld [hl], $10 call Function47a2 ret ; 4cc9 Function4cc9: ; 4cc9 ld hl, $000b add hl, bc ld [hl], $4 ld hl, $001f add hl, bc inc [hl] ld a, [hl] ld d, $60 call Sine ld a, h sub $60 ld hl, OBJECT_SPRITE_Y_OFFSET add hl, bc ld [hl], a ld hl, OBJECT_STEP_DURATION add hl, bc dec [hl] ret nz call Function47a2 ; fallthrough ; 4ceb Function4ceb: ; 4ceb ld hl, OBJECT_STEP_DURATION add hl, bc ld [hl], $10 call Function47a2 ret ; 4cf5 Function4cf5: ; 4cf5 ld hl, $000b add hl, bc ld [hl], $4 ld hl, OBJECT_STEP_DURATION add hl, bc dec [hl] ret nz ; 4d01 Function4d01: ; 4d01 ld hl, $000c add hl, bc ld [hl], $0 ld hl, OBJECT_SPRITE_Y_OFFSET add hl, bc ld [hl], $0 ld hl, $0009 add hl, bc ld [hl], $1 ret ; 4d14 Function4d14: ; 4d14 call Function47a8 dw Function4d1f dw Function4d2e dw Function4d4f dw Function4d6b ; 4d1f Function4d1f: ; 4d1f ld hl, $000b add hl, bc ld [hl], $0 ld hl, OBJECT_STEP_DURATION add hl, bc ld [hl], $10 call Function47a2 ; fallthrough ; 4d2e Function4d2e: ; 4d2e ld hl, OBJECT_STEP_DURATION add hl, bc dec [hl] ret nz ld hl, $000b add hl, bc ld [hl], $2 ld hl, $000c add hl, bc ld [hl], $0 ld hl, $001f add hl, bc ld [hl], $0 ld hl, OBJECT_STEP_DURATION add hl, bc ld [hl], $10 call Function47a2 ; fallthrough ; 4d4f Function4d4f: ; 4d4f ld hl, $001f add hl, bc inc [hl] ld a, [hl] ld d, $60 call Sine ld a, h sub $60 ld hl, OBJECT_SPRITE_Y_OFFSET add hl, bc ld [hl], a ld hl, OBJECT_STEP_DURATION add hl, bc dec [hl] ret nz call Function47a2 ; fallthrough ; 4d6b Function4d6b: ; 4d6b ld hl, $000c add hl, bc ld [hl], $0 ld hl, OBJECT_SPRITE_Y_OFFSET add hl, bc ld [hl], $0 ld hl, $0009 add hl, bc ld [hl], $1 ret ; 4d7e Function4d7e: ; 4d7e call Function47a8 dw Function4d85 dw Function4d94 ; 4d85 Function4d85: ; 4d85 ld hl, OBJECT_STEP_DURATION add hl, bc ld [hl], $8 ld hl, OBJECT_SPRITE_Y_OFFSET add hl, bc ld [hl], $0 call Function47a2 ; fallthrough ; 4d94 Function4d94: ; 4d94 ld hl, OBJECT_SPRITE_Y_OFFSET add hl, bc ld a, [hl] xor 1 ld [hl], a ld hl, OBJECT_STEP_DURATION add hl, bc dec [hl] ret nz ld hl, OBJECT_SPRITE_Y_OFFSET add hl, bc ld [hl], $0 ld hl, $0009 add hl, bc ld [hl], $1 ret ; 4daf Function4daf: ; 4daf call Function4db5 jp Function4b79 ; 4db5 Function4db5: ; 4db5 ld hl, OBJECT_STEP_DURATION add hl, bc ld a, [hl] and $1 ld a, $1 jr z, .asm_4dc2 ld a, $0 .asm_4dc2 ld hl, $000b add hl, bc ld [hl], a ret ; 4dc8 Function4dc8: ; 4dc8 ld hl, OBJECT_STEP_DURATION add hl, bc ld a, [hl] and $1 ld a, $4 jr z, .asm_4dd5 ld a, $5 .asm_4dd5 ld hl, $000b add hl, bc ld [hl], a jp Function4b79 ; 4ddd Function4ddd: ; 4ddd ld hl, $0007 add hl, bc ld [hl], $ff ld hl, OBJECT_STEP_DURATION add hl, bc dec [hl] ret nz ld hl, $0009 add hl, bc ld [hl], $1 ret ; 4df0 Function4df0: ; 4df0 ld hl, $0007 add hl, bc ld [hl], $ff ld hl, OBJECT_STEP_DURATION add hl, bc dec [hl] ret nz jp Function4357 ; 4dff Function4dff: ; 4dff ld hl, OBJECT_STEP_DURATION add hl, bc dec [hl] ret nz ld hl, $0009 add hl, bc ld [hl], $1 ret ; 4e0c Function4e0c: ; 4e0c call Function47a8 dw Function4e13 dw Function4e21 ; 4e13 Function4e13: ; 4e13 call Function4769 call Function1a47 ld hl, $0008 add hl, bc ld [hl], a call Function47a2 ; fallthrough ; 4e21 Function4e21: ; 4e21 call Function4fb2 ld hl, $0007 add hl, bc ld [hl], $ff ret ; 4e2b Function4e2b: ; 4e2b call Function4fb2 call Function46d7 ld hl, OBJECT_STEP_DURATION add hl, bc dec [hl] ret nz call Function4600 ld hl, $0007 add hl, bc ld [hl], $ff ld hl, $0009 add hl, bc ld [hl], $1 ret ; 4e47 Function4e47: ; 4e47 call Function46d7 ld hl, OBJECT_STEP_DURATION add hl, bc dec [hl] ret nz call Function4600 jp Function4b1d ; 4e56 Function4e56: ; 4e56 ; AnimateStep? call Function47a8 dw Function4e5d dw Function4e65 ; 4e5d Function4e5d: ; 4e5d ld hl, $d150 set 7, [hl] call Function47a2 ; fallthrough ; 4e65 Function4e65: ; 4e65 call Function4738 ld hl, OBJECT_STEP_DURATION add hl, bc dec [hl] ret nz ld hl, $d150 set 6, [hl] call Function4600 ld hl, $0007 add hl, bc ld [hl], $ff ld hl, $0009 add hl, bc ld [hl], $1 ret ; 4e83 Function4e83: ; 4e83 call Function47a8 dw Function4e8e dw Function4ea4 dw Function4ead dw Function4ec0 ; 4e8e Function4e8e: ; 4e8e ld hl, $0007 add hl, bc ld [hl], $ff ld hl, $000c add hl, bc ld a, [hl] ld [hl], $2 ld hl, OBJECT_STEP_DURATION add hl, bc ld [hl], $2 call Function47a2 ; fallthrough ; 4ea4 Function4ea4: ; 4ea4 ld hl, OBJECT_STEP_DURATION add hl, bc dec [hl] ret nz call Function47a2 ; fallthrough ; 4ead Function4ead: ; 4ead ld hl, $001d add hl, bc ld a, [hl] ld hl, $0008 add hl, bc ld [hl], a ld hl, OBJECT_STEP_DURATION add hl, bc ld [hl], $2 call Function47a2 ; fallthrough ; 4ec0 Function4ec0: ; 4ec0 ld hl, OBJECT_STEP_DURATION add hl, bc dec [hl] ret nz ld hl, $0009 add hl, bc ld [hl], $1 ret ; 4ecd Function4ecd: ; 4ecd call Function46d7 ld hl, OBJECT_STEP_DURATION add hl, bc dec [hl] ret nz push bc ld hl, $0010 add hl, bc ld d, [hl] ld hl, $0011 add hl, bc ld e, [hl] ld hl, $0001 add hl, bc ld a, [hl] ld b, a callba Function807e pop bc ld hl, $0005 add hl, bc res 2, [hl] call Function4600 ld hl, $0007 add hl, bc ld [hl], $ff ld hl, $0009 add hl, bc ld [hl], $1 ret ; 4f04 Function4f04: ; 4f04 ld hl, $001d add hl, bc ld e, [hl] inc hl ld d, [hl] ld hl, $0000 add hl, de ld a, [hl] and a jr z, .asm_4f30 ld hl, OBJECT_SPRITE_X add hl, de ld a, [hl] ld hl, OBJECT_SPRITE_X add hl, bc ld [hl], a ld hl, OBJECT_SPRITE_Y add hl, de ld a, [hl] ld hl, OBJECT_SPRITE_Y add hl, bc ld [hl], a ld hl, OBJECT_STEP_DURATION add hl, bc ld a, [hl] and a ret z dec [hl] ret nz .asm_4f30 jp Function4357 ; 4f33 Function4f33: ; 4f33 call Function47a8 dw Function4f3a dw Function4f43 ; 4f3a Function4f3a: ; 4f3a xor a ld hl, $001d add hl, bc ld [hl], a call Function47a2 ; fallthrough ; 4f43 Function4f43: ; 4f43 ld hl, $001d add hl, bc ld d, [hl] ld a, [$d14f] sub d ld [$d14f], a ld hl, OBJECT_STEP_DURATION add hl, bc dec [hl] jr z, .asm_4f68 ld a, [hl] call Function4f6c ld hl, $001d add hl, bc ld [hl], a ld d, a ld a, [$d14f] add d ld [$d14f], a ret .asm_4f68 call Function4357 ret ; 4f6c Function4f6c: ; 4f6c ld hl, $001e add hl, bc and 1 ld a, [hl] ret z cpl inc a ret ; 4f77 Function4f77: ; 4f77 call Function47a8 ; ???? ; 4f7a Function4f7a: ; 4f7a call Function47a8 dw Function4f83 dw Function4f83 dw Function4f83 ; 4f83 Function4f83: ; 4f83 call Function47a8 dw Function4f8a dw Function4f99 ; 4f8a Function4f8a: ; 4f8a ld hl, $000b add hl, bc ld [hl], $10 ld hl, OBJECT_STEP_DURATION add hl, bc ld [hl], $10 call Function47a2 ; 4f99 Function4f99: ; 4f99 ld hl, OBJECT_STEP_DURATION add hl, bc dec [hl] ret nz ld hl, OBJECT_SPRITE_Y_OFFSET add hl, bc ld [hl], $60 ld hl, $000c add hl, bc ld [hl], $0 ld hl, $0009 add hl, bc ld [hl], $1 ret ; 4fb2 Function4fb2: ; 4fb2 ret ; 4fb3 Function4fb3: ; 4fb3 ld hl, $001d add hl, bc inc [hl] ld a, [hl] srl a srl a and 7 ld l, a ld h, 0 ld de, .y add hl, de ld a, [hl] ld hl, OBJECT_SPRITE_Y_OFFSET add hl, bc ld [hl], a ret ; 4fcd .y ; 4fcd db 0, -1, -2, -3, -4, -3, -2, -1 ; 4fd5 UpdateJumpPosition: ; 4fd5 call GetStepVector ld a, h ld hl, $001f add hl, bc ld e, [hl] add e ld [hl], a nop srl e ld d, 0 ld hl, .y add hl, de ld a, [hl] ld hl, OBJECT_SPRITE_Y_OFFSET add hl, bc ld [hl], a ret ; 4ff0 .y ; 4ff0 db -4, -6, -8, -10, -11, -12, -12, -12 db -11, -10, -9, -8, -6, -4, 0, 0 ; 5000 Function5000: ; 5000 ld a, [$c2de] ld hl, $c2df ld [hl], a ld a, $3e ld [$c2de], a ld a, [hl] ret ; 500e Function500e: ; 500e ld hl, $c2e3 call Function1aae ret ; 5015 Function5015: ; 5015 ld hl, $001b add hl, bc ld e, [hl] inc [hl] ld d, 0 ld hl, $c2e2 ld a, [hli] ld h, [hl] ld l, a add hl, de ld a, [hl] ret ; 5026 Function5026: ; 5026 ld hl, $001b add hl, bc ld e, [hl] inc [hl] ld d, 0 ld hl, $c2e6 ld a, [hli] ld h, [hl] ld l, a add hl, de ld a, [hl] ret ; 5037 Function5037: ; 5037 ld hl, Function503d jp Function5041 ; 503d Function503d: ; 503d ld a, [$c2e2] ret ; 5041 Function5041: ; 5041 call Function5055 .asm_5044 xor a ld [$c2ea], a call Function505e call Function506b ld a, [$c2ea] and a jr nz, .asm_5044 ret ; 5055 Function5055: ; 5055 ld a, l ld [$c2eb], a ld a, h ld [$c2ec], a ret ; 505e Function505e: ; 505e ld hl, $c2eb ld a, [hli] ld h, [hl] ld l, a jp [hl] ; 5065 Function5065: ; 5065 ld a, $1 ld [$c2ea], a ret ; 506b Function506b: ; 506b push af call Function54b8 pop af ld hl, MovementPointers rst JumpTable ret ; 5075 ; 5075 INCLUDE "engine/movement.asm" ; 54b8 Function54b8: ; 54b8 ld e, a ld a, [$d4ce] cp $ff ret z ld a, [$d4cd] ld d, a ld a, [hConnectionStripLength] cp d ret nz ld a, e cp $3e ret z cp $47 ret z cp $4b ret z cp $50 ret z cp $8 ret c push af ld hl, $d4d0 inc [hl] ld e, [hl] ld d, 0 ld hl, $d4d1 add hl, de pop af ld [hl], a ret ; 54e6 Function54e6: ; 54e6 ld hl, $d4d0 ld a, [hl] and a jr z, .asm_5503 cp $ff jr z, .asm_5503 dec [hl] ld e, a ld d, 0 ld hl, $d4d1 add hl, de inc e ld a, $ff .asm_54fc ld d, [hl] ld [hld], a ld a, d dec e jr nz, .asm_54fc ret .asm_5503 call Function550a ret c ld a, $3e ret ; 550a Function550a: ; 550a ld a, [$d4cd] cp $ff jr z, .asm_5520 push bc call Function1ae5 ld hl, $0000 add hl, bc ld a, [hl] pop bc and a jr z, .asm_5520 and a ret .asm_5520 ld a, $ff ld [$d4ce], a ld a, $47 scf ret ; 5529 Function5529: ; 5529 push bc ld de, .data_5535 call Function55b9 call Function55ac pop bc ret .data_5535 db $00, $05, $1b ; 5538 Function5538: ; 5538 push bc ld de, .data_5544 call Function55b9 call Function55ac pop bc ret .data_5544 db $00, $05, $22 ; 5547 Function5547: ; 5547 push bc ld de, .data_5553 call Function55b9 call Function55ac pop bc ret .data_5553 db $00, $05, $1c ; 5556 Function5556: ; 5556 push bc ld de, .data_5562 call Function55b9 call Function55ac pop bc ret .data_5562 db $00, $06, $23 ; 5565 Function5565: ; 5565 push bc push af ld de, .data_5576 call Function55b9 pop af ld [$c2f5], a call Function55ac pop bc ret .data_5576 db $00, $05, $1d ; 5579 Function5579: ; 5579 push bc ld a, [hConnectionStripLength] ld c, a call Function5582 pop bc ret ; 5582 Function5582: ; 5582 ld de, $d4d6 ld a, $d .asm_5587 push af ld hl, $0004 add hl, de bit 7, [hl] jr z, .asm_55a1 ld hl, $0000 add hl, de ld a, [hl] and a jr z, .asm_55a1 push bc xor a ld bc, $0028 call ByteFill pop bc .asm_55a1 ld hl, $0028 add hl, de ld d, h ld e, l pop af dec a jr nz, .asm_5587 ret ; 55ac Function55ac: ; 55ac call Function1a13 ret nc ld d, h ld e, l callba Function8286 ret ; 55b9 Function55b9: ; 55b9 ld hl, $c2f0 ld [hl], $ff inc hl ld [hl], $ff inc hl ld a, [de] inc de ld [hli], a ld a, [de] inc de ld [hli], a ld a, [de] ld [hli], a ld a, [hConnectionStripLength] ld [hli], a push hl ld hl, $0010 add hl, bc ld d, [hl] ld hl, $0011 add hl, bc ld e, [hl] pop hl ld [hl], d inc hl ld [hl], e inc hl ld [hl], $ff ret ; 55e0 Function55e0:: ; 55e0 ld a, [VramState] bit 0, a ret z ld bc, $d4d6 xor a .asm_55ea ld [hConnectionStripLength], a call Function1af1 jr z, .asm_55f4 call Function565c .asm_55f4 ld hl, $0028 add hl, bc ld b, h ld c, l ld a, [hConnectionStripLength] inc a cp $d jr nz, .asm_55ea ret ; 5602 Function5602: ; 5602 call Function5645 ld a, $0 call Function5629 ld a, [$d459] bit 7, a jr z, .asm_5619 ld a, [$ffe0] and a jr z, .asm_5619 call Function5629 .asm_5619 call Function5920 ret ; 561d Function561d: ; 561d call Function5645 ld a, $0 call Function5629 call Function5920 ret ; 5629 Function5629: ; 5629 cp $10 ret nc call GetMapObject ld hl, $0000 add hl, bc ld a, [hl] cp $ff ret z cp $d ret nc call Function1ae5 call Function1af1 ret z call Function5673 ret ; 5645 Function5645: ; 5645 xor a ld bc, $d4d6 .asm_5649 ld [hConnectionStripLength], a call Function5680 ld hl, $0028 add hl, bc ld b, h ld c, l ld a, [hConnectionStripLength] inc a cp $d jr nz, .asm_5649 ret ; 565c Function565c: ; 565c push bc call Function56cd pop bc jr c, Function5680 call Function56a3 jr c, Function5680 call Function5688 callba Function4440 xor a ret ; 5673 Function5673: ; 5673 call Function56a3 jr c, Function5680 callba Function4440 xor a ret ; 5680 Function5680: ; 5680 ld hl, OBJECT_FACING add hl, bc ld [hl], $ff scf ret ; 5688 Function5688: ; 5688 push bc ld hl, $0010 add hl, bc ld d, [hl] ld hl, $0011 add hl, bc ld e, [hl] call Function2a3c pop bc ld hl, $000e add hl, bc ld [hl], a callba Function463f ret ; 56a3 Function56a3: ; 56a3 ld hl, $0010 add hl, bc ld d, [hl] ld hl, $0011 add hl, bc ld e, [hl] inc d inc e ld a, [XCoord] cp d jr z, .asm_56bc jr nc, .asm_56cb add $b cp d jr c, .asm_56cb .asm_56bc ld a, [YCoord] cp e jr z, .asm_56c9 jr nc, .asm_56cb add $a cp e jr c, .asm_56cb .asm_56c9 xor a ret .asm_56cb scf ret ; 56cd Function56cd: ; 56cd ld a, [$d14c] ld d, a ld hl, OBJECT_SPRITE_X_OFFSET add hl, bc ld a, [hl] ld hl, OBJECT_SPRITE_X add hl, bc add [hl] add d cp $f0 jr nc, .asm_56e5 cp $a0 jp nc, .asm_5768 .asm_56e5 and $7 ld d, $2 cp $4 jr c, .asm_56ef ld d, $3 .asm_56ef ld a, [hl] srl a srl a srl a cp $14 jr c, .asm_56fc sub $20 .asm_56fc ld [$ffbd], a ld a, [$d14d] ld e, a ld hl, OBJECT_SPRITE_Y_OFFSET add hl, bc ld a, [hl] ld hl, OBJECT_SPRITE_Y add hl, bc add [hl] add e cp $f0 jr nc, .asm_5715 cp $90 jr nc, .asm_5768 .asm_5715 and $7 ld e, $2 cp $4 jr c, .asm_571f ld e, $3 .asm_571f ld a, [hl] srl a srl a srl a cp $12 jr c, .asm_572c sub $20 .asm_572c ld [$ffbe], a ld hl, $0006 add hl, bc bit 7, [hl] jr z, .asm_573e ld a, d add $2 ld d, a ld a, e add $2 ld e, a .asm_573e ld a, d ld [$ffbf], a .asm_5741 ld a, [$ffbf] ld d, a ld a, [$ffbe] add e dec a cp $12 jr nc, .asm_5763 ld b, a .asm_574d ld a, [$ffbd] add d dec a cp $14 jr nc, .asm_5760 ld c, a push bc call GetTileCoord pop bc ld a, [hl] cp $60 jr nc, .asm_5768 .asm_5760 dec d jr nz, .asm_574d .asm_5763 dec e jr nz, .asm_5741 and a ret .asm_5768 scf ret ; 576a Function576a:: ; 576a call Function5771 call Function5781 ret ; 5771 Function5771: ; 5771 xor a ld [$d14e], a ld [$d14f], a ld [$d150], a ld a, $ff ld [$d151], a ret ; 5781 Function5781: ; 5781 ld bc, $d4d6 xor a .asm_5785 ld [hConnectionStripLength], a call Function1af1 jr z, .asm_578f call Function437b .asm_578f ld hl, $0028 add hl, bc ld b, h ld c, l ld a, [hConnectionStripLength] inc a cp $d jr nz, .asm_5785 ret ; 579d Function579d: ; 579d ld a, $3e ld [$c2de], a ld [$c2df], a xor a ld [$d04e], a ld [$d4e2], a call Function57bc callba Function149c6 call c, Function57d9 call Function57ca ret ; 57bc Function57bc: ; 57bc ld hl, $d45b bit 7, [hl] jr nz, .asm_57c4 ret .asm_57c4 ld a, $0 ld [PlayerAction], a ret ; 57ca Function57ca: ; 57ca ld hl, $d45b bit 5, [hl] ret z ld a, [$d45b] and $3 add a add a jr Function57db ; 57d9 Function57d9: ; 57d9 ld a, $0 ; fallthrough ; 57db Function57db: ; 57db ld bc, $d4d6 call Function1af8 ret ; 57e2 Function57e2: ; 57e2 ld a, d and $80 ret z ld bc, $0000 ld hl, $0008 add hl, bc ld a, [hl] or d ld [hl], a ld a, d swap a and $7 ld d, a ld bc, $d4d6 ld hl, $0006 add hl, bc ld a, [hl] and $f8 or d ld [hl], a ret ; 5803 Function5803:: ; 5803 push bc ld a, b call Function5815 pop bc ret c ld a, c call Function582c callba Function848a ret ; 5815 Function5815: ; 5815 call Function18de ret c ld a, [hConnectedMapWidth] ld [$d4cd], a ret ; 581f Function581f:: ; 581f call Function5826 call Function5847 ret ; 5826 Function5826: ; 5826 ld a, $ff ld [$d4cd], a ret ; 582c Function582c: ; 582c push af call Function5847 pop af call Function18de ret c ld hl, $0003 add hl, bc ld [hl], $13 ld hl, $0009 add hl, bc ld [hl], $0 ld a, [hConnectedMapWidth] ld [$d4ce], a ret ; 5847 Function5847: ; 5847 ld a, [$d4ce] cp $ff ret z call Function1ae5 callba Function58e3 ld a, $ff ld [$d4ce], a ret ; 585c Function585c:: ; 585c ld a, c call Function18de ret c push bc call Function587a pop bc ld hl, $0005 add hl, bc res 5, [hl] xor a ret ; 586e Function586e: ; 586e call Function18de ret c ld hl, $0005 add hl, bc set 5, [hl] xor a ret ; 587a Function587a: ; 587a ld bc, $d4d6 xor a .asm_587e push af call Function1af1 jr z, .asm_588a ld hl, $0005 add hl, bc set 5, [hl] .asm_588a ld hl, $0028 add hl, bc ld b, h ld c, l pop af inc a cp $d jr nz, .asm_587e ret ; 5897 Function5897:: ; 5897 ld a, [$d4cd] cp $ff ret z push bc call Function1ae5 ld hl, $0001 add hl, bc ld a, [hl] pop bc cp c ret nz ld a, [$d4ce] cp $ff ret z call Function1ae5 ld hl, $0005 add hl, bc res 5, [hl] ret ; 58b9 Function58b9:: ; 58b9 push bc ld bc, $d4d6 xor a .asm_58be push af call Function1af1 jr z, .asm_58ca ld hl, $0005 add hl, bc res 5, [hl] .asm_58ca ld hl, $0028 add hl, bc ld b, h ld c, l pop af inc a cp $d jr nz, .asm_58be pop bc ret ; 58d8 Function58d8: ; 58d8 call Function18de ret c ld hl, $0005 add hl, bc res 5, [hl] ret ; 58e3 Function58e3: ; 58e3 ld hl, $0001 add hl, bc ld a, [hl] cp $ff jp z, Function5903 push bc call GetMapObject ld hl, $0004 add hl, bc ld a, [hl] pop bc ld hl, $0003 add hl, bc ld [hl], a ld hl, $0009 add hl, bc ld [hl], $0 ret ; 5903 Function5903: ; 5903 call GetSpriteDirection rrca rrca ld e, a ld d, 0 ld hl, .data_591c add hl, de ld a, [hl] ld hl, $0003 add hl, bc ld [hl], a ld hl, $0009 add hl, bc ld [hl], $0 ret .data_591c db 6, 7, 8, 9 ; 5920 Function5920:: ; 5920 ld a, [VramState] bit 0, a ret z xor a ld [$ffbd], a ld a, [hOAMUpdate] push af ld a, $1 ld [hOAMUpdate], a call Function5991 call Function593a pop af ld [hOAMUpdate], a ret ; 593a Function593a: ; 593a ld a, [VramState] bit 1, a ld b, $a0 jr z, .asm_5945 ld b, $70 .asm_5945 ld a, [$ffbd] cp b ret nc ld l, a ld h, $c4 ld de, $0004 ld a, b ld c, $a0 .asm_5952 ld [hl], c add hl, de cp l jr nz, .asm_5952 ret ; 5958 Function5958: ; 5958 push hl push de push bc ld a, [$d14c] ld d, a ld a, [$d14d] ld e, a ld bc, $d4d6 ld a, $d .asm_5968 push af call Function1af1 jr z, .asm_597c ld hl, OBJECT_SPRITE_X add hl, bc ld a, [hl] add d ld [hl], a ld hl, OBJECT_SPRITE_Y add hl, bc ld a, [hl] add e ld [hl], a .asm_597c ld hl, $0028 add hl, bc ld b, h ld c, l pop af dec a jr nz, .asm_5968 xor a ld [$d14c], a ld [$d14d], a pop bc pop de pop hl ret ; 5991 Function5991: ; 5991 call Function59a4 ld c, $30 call Function59f3 ld c, $20 call Function59f3 ld c, $10 call Function59f3 ret ; 59a4 Function59a4: ; 59a4 xor a ld hl, $c2eb ld bc, 13 call ByteFill ld d, 0 ld bc, ObjectStructs ld hl, $c2eb .loop push hl call Function1af1 jr z, .skip ld hl, OBJECT_FACING add hl, bc ld a, [hl] cp -1 jr z, .skip ; Define the sprite priority. ld e, $10 ld hl, OBJECT_FLAGS add hl, bc bit 0, [hl] jr nz, .add ld e, $20 bit 1, [hl] jr z, .add ld e, $30 jr .add .skip ld hl, ObjectStruct2 - ObjectStruct1 add hl, bc ld b, h ld c, l pop hl jr .next .add ld hl, ObjectStruct2 - ObjectStruct1 add hl, bc ld b, h ld c, l pop hl ld a, d or e ld [hli], a .next inc d ld a, d cp $d jr nz, .loop ret ; 59f3 Function59f3: ; 59f3 ld hl, $c2eb .next ld a, [hli] ld d, a and $f0 ret z cp c jr nz, .next push bc push hl ld a, d and $f call Function5ac2 call Function5a0d pop hl pop bc jr .next ; 5a0d Function5a0d: ; 5a0d ld hl, OBJECT_SPRITE add hl, bc ld a, [hl] and $7f ld [$ffc1], a xor a bit 7, [hl] jr nz, .asm_5a1d or 8 .asm_5a1d ld hl, OBJECT_FLAGS add hl, bc ld e, [hl] bit 7, e jr z, .asm_5a28 or $80 .asm_5a28 bit 4, e jr z, .asm_5a2e or $10 .asm_5a2e ld hl, OBJECT_PALETTE add hl, bc ld d, a ld a, [hl] and 7 or d ld d, a xor a bit 3, e jr z, .asm_5a3f or $80 .asm_5a3f ld [$ffc2], a ld hl, OBJECT_SPRITE_X add hl, bc ld a, [hl] ld hl, OBJECT_SPRITE_X_OFFSET add hl, bc add [hl] add 8 ld e, a ld a, [$d14c] add e ld [$ffbf], a ld hl, OBJECT_SPRITE_Y add hl, bc ld a, [hl] ld hl, OBJECT_SPRITE_Y_OFFSET add hl, bc add [hl] add 12 ld e, a ld a, [$d14d] add e ld [$ffc0], a ld hl, OBJECT_FACING add hl, bc ld a, [hl] cp -1 jp z, .done cp NUM_FACINGS jp nc, .done ld l, a ld h, 0 add hl, hl ld bc, Facings add hl, bc ld a, [hli] ld h, [hl] ld l, a ld a, [$ffbd] ld c, a ld b, Sprites / $100 ld a, [hli] ld [$ffbe], a add c cp SpritesEnd % $100 jr nc, .full .addsprite ld a, [$ffc0] add [hl] inc hl ld [bc], a inc c ld a, [$ffbf] add [hl] inc hl ld [bc], a inc c ld e, [hl] inc hl ld a, [$ffc1] bit 2, e jr z, .asm_5aa3 xor a .asm_5aa3 add [hl] inc hl ld [bc], a inc c ld a, e bit 1, a jr z, .asm_5aaf ld a, [$ffc2] or e .asm_5aaf and $f0 or d ld [bc], a inc c ld a, [$ffbe] dec a ld [$ffbe], a jr nz, .addsprite ld a, c ld [$ffbd], a .done xor a ret .full scf ret ; 5ac2 Function5ac2: ; 5ac2 ld c, a ld b, 0 ld hl, .Addresses add hl, bc add hl, bc ld c, [hl] inc hl ld b, [hl] ret ; 5ace .Addresses ; 5ace dw PlayerStruct dw ObjectStruct1 dw ObjectStruct2 dw ObjectStruct3 dw ObjectStruct4 dw ObjectStruct5 dw ObjectStruct6 dw ObjectStruct7 dw ObjectStruct8 dw ObjectStruct9 dw ObjectStruct10 dw ObjectStruct11 dw ObjectStruct12 ; 5ae8 Function5ae8: ; 5ae8 ld de, MUSIC_NONE call PlayMusic call DelayFrame ld de, MUSIC_MAIN_MENU ld a, e ld [CurMusic], a call PlayMusic callba MainMenu jp Function6219 ; 5b04 Function5b04: ; 5b04 ret ; 5b05 Function5b05: ; 5b05 push de ld hl, .Days ld a, b call GetNthString ld d, h ld e, l pop hl call PlaceString ld h, b ld l, c ld de, .Day call PlaceString ret ; 5b1c .Days ; 5b1c db "SUN@" db "MON@" db "TUES@" db "WEDNES@" db "THURS@" db "FRI@" db "SATUR@" ; 5b40 .Day ; 5b40 db "DAY@" ; 5b44 Function5b44: ; 5b44 xor a ld [$ffde], a call ClearTileMap call Functione5f call Functione51 call Function1fbf ret ; 5b54 MysteryGift: ; 5b54 call UpdateTime callba Function11548 callba Function1048ba ret ; 5b64 OptionsMenu: ; 5b64 callba _OptionsMenu ret ; 5b6b NewGame: ; 5b6b xor a ld [$c2cc], a call Function5ba7 call Function5b44 call Function5b8f call OakSpeech call Function5d23 ld a, $1 ld [$c2d8], a ld a, $0 ld [$d001], a ld a, $f1 ld [$ff9f], a jp Function5e5d ; 5b8f Function5b8f: ; 5b8f callba Function10632f jr c, .asm_5b9e callba Function48dcb ret .asm_5b9e ld c, $0 callba Function4802f ret ; 5ba7 Function5ba7: ; 5ba7 xor a ld [hBGMapMode], a call Function5bae ret ; 5bae Function5bae: ; 5bae ld hl, Sprites ld bc, Options - Sprites xor a call ByteFill ld hl, $d000 ld bc, PlayerID - $d000 xor a call ByteFill ld hl, PlayerID ld bc, $dff5 - PlayerID xor a call ByteFill ld a, [rLY] ld [$ffe3], a call DelayFrame ld a, [hRandomSub] ld [PlayerID], a ld a, [rLY] ld [$ffe3], a call DelayFrame ld a, [hRandomAdd] ld [PlayerID + 1], a call Random ld [$d84a], a call DelayFrame call Random ld [$d84b], a ld hl, PartyCount call Function5ca1 xor a ld [wCurBox], a ld [$d4b4], a call Function5ca6 ld a, 1 call GetSRAMBank ld hl, BoxCount call Function5ca1 call CloseSRAM ld hl, NumItems call Function5ca1 ld hl, NumKeyItems call Function5ca1 ld hl, NumBalls call Function5ca1 ld hl, PCItems call Function5ca1 xor a ld [RoamMon1Species], a ld [RoamMon2Species], a ld [RoamMon3Species], a ld a, -1 ld [RoamMon1MapGroup], a ld [RoamMon2MapGroup], a ld [RoamMon3MapGroup], a ld [RoamMon1MapNumber], a ld [RoamMon2MapNumber], a ld [RoamMon3MapNumber], a ld a, 0 call GetSRAMBank ld hl, $abe2 xor a ld [hli], a dec a ld [hl], a call CloseSRAM call Function5d33 call Function5cd3 xor a ld [MonType], a ld [JohtoBadges], a ld [KantoBadges], a ld [Coins], a ld [Coins + 1], a ld [Money], a ld a, 3000 >> 8 ld [Money + 1], a ld a, 3000 & $ff ld [Money + 2], a xor a ld [$dc17], a ld hl, $dc19 ld [hl], $0 inc hl ld [hl], $8 inc hl ld [hl], $fc call Function5ce9 callba Function26751 callba Function44765 callba Function1061c0 call ResetGameTime ret ; 5ca1 Function5ca1: ; 5ca1 xor a ld [hli], a dec a ld [hl], a ret ; 5ca6 Function5ca6: ; 5ca6 ld hl, Box1Name ld c, $0 .asm_5cab push hl ld de, .Box call CopyName2 dec hl ld a, c inc a cp $a jr c, .asm_5cbe sub $a ld [hl], $f7 inc hl .asm_5cbe add $f6 ld [hli], a ld [hl], $50 pop hl ld de, $0009 add hl, de inc c ld a, c cp $e jr c, .asm_5cab ret .Box db "BOX@" ; 5cd3 Function5cd3: ; 5cd3 ld hl, $dfe8 ld a, $3 ld [hli], a ld a, $6 ld [hli], a ld de, .Ralph call CopyName2 ret ; 5ce3 .Ralph ; 5ce3 db "RALPH@" ; 5ce9 Function5ce9: ; 5ce9 ld hl, .Rival ld de, RivalName call .Copy ld hl, .Mom ld de, MomsName call .Copy ld hl, .Red ld de, RedsName call .Copy ld hl, .Green ld de, GreensName .Copy ld bc, $000b call CopyBytes ret .Rival db "???@" .Red db "RED@" .Green db "GREEN@" .Mom db "MOM@" ; 5d23 Function5d23: ; 5d23 call Function610f callba Function8029 callba Function113d6 ret ; 5d33 Function5d33: ; 5d33 ld a, $0 call GetSRAMBank ld a, [CurDay] inc a ld b, a ld a, [$ac68] cp b ld a, [$ac6a] ld c, a ld a, [$ac69] jr z, .asm_5d55 ld a, b ld [$ac68], a call Random ld c, a call Random .asm_5d55 ld [$dc9f], a ld [$ac69], a ld a, c ld [$dca0], a ld [$ac6a], a jp CloseSRAM ; 5d65 Continue: ; 5d65 callba Function14ea5 jr c, .asm_5dd6 callba Function150b9 call Function1d6e call Function5e85 ld a, $1 ld [hBGMapMode], a ld c, $14 call DelayFrames call Function5e34 jr nc, .asm_5d8c call Function1c17 jr .asm_5dd6 .asm_5d8c call Function5e48 jr nc, .asm_5d96 call Function1c17 jr .asm_5dd6 .asm_5d96 ld a, $8 ld [MusicFade], a ld a, MUSIC_NONE % $100 ld [MusicFadeIDLo], a ld a, MUSIC_NONE / $100 ld [MusicFadeIDHi], a call WhiteBGMap call Function5df0 call Function1c17 call ClearTileMap ld c, $14 call DelayFrames callba Function2a394 callba Function105091 callba Function140ae ld a, [$d4b5] cp $1 jr z, .asm_5dd7 ld a, $f2 ld [$ff9f], a jp Function5e5d .asm_5dd6 ret .asm_5dd7 ld a, $e ld [$d001], a call Function5de7 jp Function5e5d ; 5de2 Function5de2: ; 5de2 ld a, $1a ld [$d001], a ; 5de7 Function5de7: ; 5de7 xor a ld [$d4b5], a ld a, $f1 ld [$ff9f], a ret ; 5df0 Function5df0: ; 5df0 callba Function10632f ret nc ld hl, $d479 bit 1, [hl] ret nz ld a, $5 ld [MusicFade], a ld a, MUSIC_MOBILE_ADAPTER_MENU % $100 ld [MusicFadeIDLo], a ld a, MUSIC_MOBILE_ADAPTER_MENU / $100 ld [MusicFadeIDHi], a ld c, 20 call DelayFrames ld c, $1 callba Function4802f callba Function1509a ld a, $8 ld [MusicFade], a ld a, MUSIC_NONE % $100 ld [MusicFadeIDLo], a ld a, MUSIC_NONE / $100 ld [MusicFadeIDHi], a ld c, 35 call DelayFrames ret ; 5e34 Function5e34: ; 5e34 .asm_5e34 call DelayFrame call GetJoypad ld hl, hJoyPressed bit 0, [hl] jr nz, .asm_5e47 bit 1, [hl] jr z, .asm_5e34 scf ret .asm_5e47 ret ; 5e48 Function5e48: ; 5e48 call Function6e3 and $80 jr z, .asm_5e5b callba Function20021 ld a, c and a jr z, .asm_5e5b scf ret .asm_5e5b xor a ret ; 5e5d Function5e5d: ; 5e5d .asm_5e5d xor a ld [$c2c1], a ld [InLinkBattle], a ld hl, GameTimerPause set 0, [hl] res 7, [hl] ld hl, $d83e set 1, [hl] callba OverworldLoop ld a, [$d4b5] cp $2 jr z, .asm_5e80 jp Reset .asm_5e80 call Function5de2 jr .asm_5e5d ; 5e85 Function5e85: ; 5e85 call Function6e3 and $80 jr z, .asm_5e93 ld de, $0408 call Function5eaf ret .asm_5e93 ld de, $0408 call Function5e9f ret ; 5e9a Function5e9a: ; 5e9a ld de, $0400 jr Function5e9f ; 5e9f Function5e9f: ; 5e9f call Function5ebf call Function5f1c call Function5f40 call Functione5f call Function1ad2 ret ; 5eaf Function5eaf: ; 5eaf call Function5ebf call Function5f1c call Function5f48 call Functione5f call Function1ad2 ret ; 5ebf Function5ebf: ; 5ebf xor a ld [hBGMapMode], a ld hl, MenuDataHeader_0x5ed9 ld a, [StatusFlags] bit 0, a ; pokedex jr nz, .asm_5ecf ld hl, MenuDataHeader_0x5efb .asm_5ecf call Function1e35 call Function1cbb call Function1c89 ret ; 5ed9 MenuDataHeader_0x5ed9: ; 5ed9 db $40 ; flags db 00, 00 ; start coords db 09, 15 ; end coords dw MenuData2_0x5ee1 db 1 ; default option ; 5ee1 MenuData2_0x5ee1: ; 5ee1 db $00 ; flags db 4 ; items db "PLAYER@" db "BADGES@" db "#DEX@" db "TIME@" ; 5efb MenuDataHeader_0x5efb: ; 5efb db $40 ; flags db 00, 00 ; start coords db 09, 15 ; end coords dw MenuData2_0x5f03 db 1 ; default option ; 5f03 MenuData2_0x5f03: ; 5f03 db $00 ; flags db 4 ; items db "PLAYER ", $52, "@" db "BADGES@" db " @" db "TIME@" ; 5f1c Function5f1c: ; 5f1c call Function1cfd push hl ld de, $005d add hl, de call Function5f58 pop hl push hl ld de, $0084 add hl, de call Function5f6b pop hl push hl ld de, $0030 add hl, de ld de, .Player call PlaceString pop hl ret .Player db $52, "@" ; 5f40 Function5f40: ; 5f40 ld de, $00a9 add hl, de call Function5f84 ret ; 5f48 Function5f48: ; 5f48 ld de, $00a9 add hl, de ld de, .text_5f53 call PlaceString ret .text_5f53 db " ???@" ; 5f58 Function5f58: ; 5f58 push hl ld hl, JohtoBadges ld b, $2 call CountSetBits pop hl ld de, $d265 ld bc, $0102 jp PrintNum ; 5f6b Function5f6b: ; 5f6b ld a, [StatusFlags] bit 0, a ret z push hl ld hl, PokedexCaught ld b, $20 call CountSetBits pop hl ld de, $d265 ld bc, $0103 jp PrintNum ; 5f84 Function5f84: ; 5f84 ld de, GameTimeHours ld bc, $0203 call PrintNum ld [hl], $6d inc hl ld de, GameTimeMinutes ld bc, $8102 jp PrintNum ; 5f99 OakSpeech: ; 0x5f99 callba Function90672 call Function4dd call ClearTileMap ld de, MUSIC_ROUTE_30 call PlayMusic call Function4a3 call Function4b6 xor a ld [CurPartySpecies], a ld a, POKEMON_PROF ld [TrainerClass], a call Function619c ld b, $1c call GetSGBLayout call Function616a ld hl, OakText1 call PrintText call Function4b6 call ClearTileMap ld a, $c2 ld [CurSpecies], a ld [CurPartySpecies], a call GetBaseData hlcoord 6, 4 call Function3786 xor a ld [TempMonDVs], a ld [$d124], a ld b, $1c call GetSGBLayout call Function6182 ld hl, OakText2 call PrintText ld hl, OakText4 call PrintText call Function4b6 call ClearTileMap xor a ld [CurPartySpecies], a ld a, POKEMON_PROF ld [TrainerClass], a call Function619c ld b, $1c call GetSGBLayout call Function616a ld hl, OakText5 call PrintText call Function4b6 call ClearTileMap xor a ld [CurPartySpecies], a callba DrawIntroPlayerPic ld b, $1c call GetSGBLayout call Function616a ld hl, OakText6 call PrintText call NamePlayer ld hl, OakText7 call PrintText ret OakText1: ; 0x6045 TX_FAR _OakText1 db "@" OakText2: ; 0x604a TX_FAR _OakText2 start_asm ld a,WOOPER call Function37ce call WaitSFX ld hl,OakText3 ret OakText3: ; 0x605b TX_FAR _OakText3 db "@" OakText4: ; 0x6060 TX_FAR _OakText4 db "@" OakText5: ; 0x6065 TX_FAR _OakText5 db "@" OakText6: ; 0x606a TX_FAR _OakText6 db "@" OakText7: ; 0x606f TX_FAR _OakText7 db "@" NamePlayer: ; 0x6074 callba MovePlayerPicRight callba ShowPlayerNamingChoices ld a, [$cfa9] dec a jr z, .NewName call Function60fa callba Function8c1d callba MovePlayerPicLeft ret .NewName ld b, 1 ld de, PlayerName callba Function116c1 call Function4b6 call ClearTileMap call Functione5f call WaitBGMap xor a ld [CurPartySpecies], a callba DrawIntroPlayerPic ld b, $1c call GetSGBLayout call Function4f0 ld hl, PlayerName ld de, .Chris ld a, [PlayerGender] bit 0, a jr z, .asm_60cf ld de, .Kris .asm_60cf call InitName ret .Chris db "CHRIS@@@@@@" .Kris db "KRIS@@@@@@@" ; 60e9 Function60e9: ; 60e9 call LoadMenuDataHeader call Function1d81 ld a, [$cfa9] dec a call Function1db8 call Function1c17 ret ; 60fa Function60fa: ; 60fa ld a, $50 ld bc, $000b ld hl, PlayerName call ByteFill ld hl, PlayerName ld de, StringBuffer2 call CopyName2 ret ; 610f Function610f: ; 610f ld a, [hROMBank] push af ld a, 0 << 7 | 32 ; fade out ld [MusicFade], a ld de, MUSIC_NONE ld a, e ld [MusicFadeIDLo], a ld a, d ld [MusicFadeIDHi], a ld de, SFX_ESCAPE_ROPE call PlaySFX pop af rst Bankswitch ld c, 8 call DelayFrames ld hl, $5249 ld b, $13 call Function61b4 ld c, 8 call DelayFrames ld hl, $52d9 ld b, $13 call Function61b4 ld c, 8 call DelayFrames ld hl, $c50a ld b, 7 ld c, 7 call ClearBox ld c, 3 call DelayFrames call Function61cd call Functione5f ld c, 50 call DelayFrames call Function4b6 call ClearTileMap ret ; 616a Function616a: ; 616a ld hl, IntroFadePalettes ld b, IntroFadePalettesEnd - IntroFadePalettes .asm_616f ld a, [hli] call DmgToCgbBGPals ld c, 10 call DelayFrames dec b jr nz, .asm_616f ret ; 617c IntroFadePalettes: ; 0x617c db %01010100 db %10101000 db %11111100 db %11111000 db %11110100 db %11100100 IntroFadePalettesEnd ; 6182 Function6182: ; 6182 ld a, $77 ld [hWX], a call DelayFrame ld a, $e4 call DmgToCgbBGPals .asm_618e call DelayFrame ld a, [hWX] sub $8 cp $ff ret z ld [hWX], a jr .asm_618e ; 619c Function619c: ; 619c ld de, VTiles2 callba Function5120d xor a ld [$ffad], a ld hl, $c4f6 ld bc, $0707 ld a, $13 call Predef ret ; 61b4 Function61b4: ; 61b4 ld de, VTiles2 ld c, $31 ld a, $40 call Predef xor a ld [$ffad], a ld hl, $c4f6 ld bc, $0707 ld a, $13 call Predef ret ; 61cd Function61cd: ; 61cd callba GetPlayerIcon ld c, $c ld hl, VTiles0 call Request2bpp ld hl, Sprites ld de, .data_61fe ld a, [de] inc de ld c, a .asm_61e4 ld a, [de] inc de ld [hli], a ld a, [de] inc de ld [hli], a ld a, [de] inc de ld [hli], a ld b, 0 ld a, [PlayerGender] bit 0, a jr z, .asm_61f8 ld b, 1 .asm_61f8 ld a, b ld [hli], a dec c jr nz, .asm_61e4 ret ; 61fe .data_61fe ; 61fe db 4 db $4c, $48, $00 db $4c, $50, $01 db $54, $48, $02 db $54, $50, $03 ; 620b Function620b: ; 620b callab Functione4579 jr c, Function6219 callba Functione48ac Function6219: ; 6219 ld a, [rSVBK] push af ld a, $5 ld [rSVBK], a call TitleScreen call DelayFrame .asm_6226 call Function627b jr nc, .asm_6226 call ClearSprites call WhiteBGMap pop af ld [rSVBK], a ld hl, rLCDC res 2, [hl] call Functionfdb call Function3200 xor a ld [hLCDStatCustom], a ld [hSCX], a ld [hSCY], a ld a, $7 ld [hWX], a ld a, $90 ld [hWY], a ld b, $8 call GetSGBLayout call UpdateTimePals ld a, [$cf64] cp $5 jr c, .asm_625e xor a .asm_625e ld e, a ld d, 0 ld hl, .data_626a add hl, de add hl, de ld a, [hli] ld h, [hl] ld l, a jp [hl] ; 626a .data_626a dw Function5ae8 dw Function6389 dw Function620b dw Function620b dw Function6392 ; 6274 TitleScreen: ; 6274 callba _TitleScreen ret ; 627b Function627b: ; 627b ld a, [$cf63] bit 7, a jr nz, .asm_6290 call TitleScreenScene callba Function10eea7 call DelayFrame and a ret .asm_6290 scf ret ; 6292 Function6292: ; 6292 ld a, [$ff9b] and $7 ret nz ld hl, $d15f ld a, [hl] dec a ld bc, $0028 call ByteFill ret ; 62a3 TitleScreenScene: ; 62a3 ld e, a ld d, 0 ld hl, .scenes add hl, de add hl, de ld a, [hli] ld h, [hl] ld l, a jp [hl] ; 62af .scenes dw TitleScreenEntrance dw TitleScreenTimer dw TitleScreenMain dw TitleScreenEnd ; 62b7 Function62b7: ; 62b7 ld hl, $cf63 inc [hl] ret ; 62bc TitleScreenEntrance: ; 62bc ; Animate the logo: ; Move each line by 4 pixels until our count hits 0. ld a, [hSCX] and a jr z, .done sub 4 ld [hSCX], a ; Lay out a base (all lines scrolling together). ld e, a ld hl, LYOverrides ld bc, 8 * 10 ; logo height call ByteFill ; Reversed signage for every other line's position. ; This is responsible for the interlaced effect. ld a, e xor $ff inc a ld b, 8 * 10 / 2 ; logo height / 2 ld hl, LYOverrides + 1 .loop ld [hli], a inc hl dec b jr nz, .loop callba AnimateTitleCrystal ret .done ; Next scene ld hl, $cf63 inc [hl] xor a ld [hLCDStatCustom], a ; Play the title screen music. ld de, MUSIC_TITLE call PlayMusic ld a, $88 ld [hWY], a ret ; 62f6 TitleScreenTimer: ; 62f6 ; Next scene ld hl, $cf63 inc [hl] ; Start a timer ld hl, $cf65 ld de, $1140 ; 73.6 seconds ld [hl], e inc hl ld [hl], d ret ; 6304 TitleScreenMain: ; 6304 ; Run the timer down. ld hl, $cf65 ld e, [hl] inc hl ld d, [hl] ld a, e or d jr z, .end dec de ld [hl], d dec hl ld [hl], e ; Save data can be deleted by pressing Up + B + Select. call GetJoypad ld hl, hJoyDown ld a, [hl] and D_UP + B_BUTTON + SELECT cp D_UP + B_BUTTON + SELECT jr z, .delete_save_data ; To bring up the clock reset dialog: ; Hold Down + B + Select to initiate the sequence. ld a, [$ffeb] cp $34 jr z, .check_clock_reset ld a, [hl] and D_DOWN + B_BUTTON + SELECT cp D_DOWN + B_BUTTON + SELECT jr nz, .check_start ld a, $34 ld [$ffeb], a jr .check_start ; Keep Select pressed, and hold Left + Up. ; Then let go of Select. .check_clock_reset bit 2, [hl] ; SELECT jr nz, .check_start xor a ld [$ffeb], a ld a, [hl] and D_LEFT + D_UP cp D_LEFT + D_UP jr z, .clock_reset ; Press Start or A to start the game. .check_start ld a, [hl] and START | A_BUTTON jr nz, .continue ret .continue ld a, 0 jr .done .delete_save_data ld a, 1 .done ld [$cf64], a ; Return to the intro sequence. ld hl, $cf63 set 7, [hl] ret .end ; Next scene ld hl, $cf63 inc [hl] ; Fade out the title screen music xor a ld [MusicFadeIDLo], a ld [MusicFadeIDHi], a ld hl, MusicFade ld [hl], 8 ; 1 second ld hl, $cf65 inc [hl] ret .clock_reset ld a, 4 ld [$cf64], a ; Return to the intro sequence. ld hl, $cf63 set 7, [hl] ret ; 6375 TitleScreenEnd: ; 6375 ; Wait until the music is done fading. ld hl, $cf65 inc [hl] ld a, [MusicFade] and a ret nz ld a, 2 ld [$cf64], a ; Back to the intro. ld hl, $cf63 set 7, [hl] ret ; 6389 Function6389: ; 6389 callba Function4d54c jp Init ; 6392 Function6392: ; 6392 callba Function4d3b1 jp Init ; 639b Function639b: ; 639b ld a, [$cf65] and $3 ret nz ld bc, $c3a4 ld hl, $000a add hl, bc ld l, [hl] ld h, 0 add hl, hl add hl, hl ld de, Data63ca add hl, de ld a, [$cf65] and $4 srl a srl a ld e, a ld d, 0 add hl, de add hl, de ld a, [hli] and a ret z ld e, a ld d, [hl] ld a, $1 call Function3b2a ret ; 63ca Data63ca: ; 63ca db $5c, $50, $00, $00 db $5c, $68, $5c, $58 db $5c, $68, $5c, $78 db $5c, $88, $5c, $78 db $00, $00, $5c, $78 db $00, $00, $5c, $58 ; 63e2 Copyright: ; 63e2 call ClearTileMap call Functione5f ld de, CopyrightGFX ld hl, VTiles2 + $600 ; tile $60 lb bc, BANK(CopyrightGFX), $1d call Request2bpp hlcoord 2, 7 ld de, CopyrightString jp PlaceString ; 63fd CopyrightString: ; 63fd ; ©1995-2001 Nintendo db $60, $61, $62, $63, $64, $65, $66 db $67, $68, $69, $6a, $6b, $6c db $4e ; ©1995-2001 Creatures inc. db $60, $61, $62, $63, $64, $65, $66, $6d db $6e, $6f, $70, $71, $72, $7a, $7b, $7c db $4e ; ©1995-2001 GAME FREAK inc. db $60, $61, $62, $63, $64, $65, $66, $73, $74 db $75, $76, $77, $78, $79, $7a, $7b, $7c db "@" ; 642e GameInit:: ; 642e callba Function14f1c call Function1fbf call WhiteBGMap call ClearTileMap ld a, $98 ld [$ffd7], a xor a ld [hBGMapAddress], a ld [hJoyDown], a ld [hSCX], a ld [hSCY], a ld a, $90 ld [hWY], a call WaitBGMap jp Function620b ; 6454 Function6454:: ; 6454 call DelayFrame ld a, [hOAMUpdate] push af ld a, $1 ld [hOAMUpdate], a ld a, [hBGMapMode] push af xor a ld [hBGMapMode], a call Function6473 pop af ld [hBGMapMode], a pop af ld [hOAMUpdate], a ld hl, VramState set 6, [hl] ret ; 6473 Function6473: ; 6473 xor a ld [hLCDStatCustom], a ld [hBGMapMode], a ld a, $90 ld [hWY], a call Function2173 ld a, $9c call Function64b9 call Function2e20 callba Function49409 callba Function96a4 ld a, $1 ld [hCGBPalUpdate], a xor a ld [hBGMapMode], a ld [hWY], a callba Function64db ld a, $98 call Function64b9 xor a ld [$d152], a ld a, $98 ld [$d153], a xor a ld [hSCX], a ld [hSCY], a call Function5958 ret ; 64b9 Function64b9: ; 64b9 ld [$ffd7], a xor a ld [hBGMapAddress], a ret ; 64bf Function64bf:: ; 64bf ld a, [hOAMUpdate] push af ld a, $1 ld [hOAMUpdate], a call Function64cd pop af ld [hOAMUpdate], a ret ; 64cd Function64cd: ; 64cd call Functione5f ld a, $90 ld [hWY], a call Function2e31 call Functione51 ret ; 64db Function64db: ; 64db ld a, [rSVBK] push af ld a, $6 ld [rSVBK], a ld a, $60 ld hl, $d000 ld bc, $400 call ByteFill ld a, $d0 ld [rHDMA1], a ld a, $0 ld [rHDMA2], a ld a, $18 ld [rHDMA3], a ld a, $0 ld [rHDMA4], a ld a, $3f ld [hDMATransfer], a call DelayFrame pop af ld [rSVBK], a ret ; 6508 Function6508: ; 6508 call Function309d ld a, [CurPartyMon] ld hl, PartyMon1Nickname call GetNick ld hl, StringBuffer1 ld de, $d050 ld bc, $000b call CopyBytes Function6520: ; 6520 ld hl, PartyMon1Move1 ld bc, $0030 ld a, [CurPartyMon] call AddNTimes ld d, h ld e, l ld b, $4 .asm_6530 ld a, [hl] and a jr z, .asm_6564 inc hl dec b jr nz, .asm_6530 push de call Function65d3 pop de jp c, Function65b5 push hl push de ld [$d265], a ld b, a ld a, [IsInBattle] and a jr z, .asm_6559 ld a, [DisabledMove] cp b jr nz, .asm_6559 xor a ld [DisabledMove], a ld [PlayerDisableCount], a .asm_6559 call GetMoveName ld hl, UnknownText_0x6684 call PrintText pop de pop hl .asm_6564 ld a, [$d262] ld [hl], a ld bc, $0015 add hl, bc push hl push de dec a ld hl, Moves + MOVE_PP ld bc, Move2 - Move1 call AddNTimes ld a, BANK(Moves) call GetFarByte pop de pop hl ld [hl], a ld a, [IsInBattle] and a jp z, Function65ca ld a, [CurPartyMon] ld b, a ld a, [CurBattleMon] cp b jp nz, Function65ca ld a, [PlayerSubStatus5] bit 3, a jp nz, Function65ca ld h, d ld l, e ld de, BattleMonMove1 ld bc, $0004 call CopyBytes ld bc, $0011 add hl, bc ld de, BattleMonPPMove1 ld bc, $0004 call CopyBytes jp Function65ca ; 65b5 Function65b5: ; 65b5 ld hl, UnknownText_0x6675 call PrintText call YesNoBox jp c, Function6520 ld hl, UnknownText_0x667a call PrintText ld b, $0 ret ; 65ca Function65ca: ; 65ca ld hl, UnknownText_0x666b call PrintText ld b, $1 ret ; 65d3 Function65d3: ; 65d3 push hl ld hl, UnknownText_0x667f call PrintText call YesNoBox pop hl ret c ld bc, $fffc add hl, bc push hl ld de, $d25e ld bc, $0004 call CopyBytes pop hl .asm_65ee push hl ld hl, UnknownText_0x6670 call PrintText ld hl, $c4cd ld b, $8 ld c, $d call TextBox ld hl, $c4f7 ld a, $28 ld [Buffer1], a ld a, $20 call Predef ld a, $4 ld [$cfa1], a ld a, $6 ld [$cfa2], a ld a, [$d0eb] inc a ld [$cfa3], a ld a, $1 ld [$cfa4], a ld [$cfa9], a ld [$cfaa], a ld a, $3 ld [$cfa8], a ld a, $20 ld [$cfa5], a xor a ld [$cfa6], a ld a, $20 ld [$cfa7], a call Function1bc9 push af call Function30b4 pop af pop hl bit 1, a jr nz, .asm_6669 push hl ld a, [$cfa9] dec a ld c, a ld b, $0 add hl, bc ld a, [hl] push af push bc call IsHMMove pop bc pop de ld a, d jr c, .asm_6660 pop hl add hl, bc and a ret .asm_6660 ld hl, UnknownText_0x669a call PrintText pop hl jr .asm_65ee .asm_6669 scf ret ; 666b UnknownText_0x666b: ; 666b text_jump UnknownText_0x1c5660 db "@" ; 6670 UnknownText_0x6670: ; 6670 text_jump UnknownText_0x1c5678 db "@" ; 6675 UnknownText_0x6675: ; 6675 text_jump UnknownText_0x1c5699 db "@" ; 667a UnknownText_0x667a: ; 667a text_jump UnknownText_0x1c56af db "@" ; 667f UnknownText_0x667f: ; 667f text_jump UnknownText_0x1c56c9 db "@" ; 6684 UnknownText_0x6684: ; 6684 text_jump UnknownText_0x1c5740 start_asm ; 6689 ; 6689 push de ld de, SFX_SWITCH_POKEMON call PlaySFX pop de ld hl, UnknownText_0x6695 ret ; 6695 UnknownText_0x6695: ; 6695 text_jump UnknownText_0x1c574e db "@" ; 669a UnknownText_0x669a: ; 669a text_jump UnknownText_0x1c5772 db "@" ; 669f CheckNickErrors:: ; 669f ; error-check monster nick before use ; must be a peace offering to gamesharkers ; input: de = nick location push bc push de ld b, PKMN_NAME_LENGTH .checkchar ; end of nick? ld a, [de] cp "@" ; terminator jr z, .end ; check if this char is a text command ld hl, .textcommands dec hl .loop ; next entry inc hl ; reached end of commands table? ld a, [hl] cp a, $ff jr z, .done ; is the current char between this value (inclusive)... ld a, [de] cp [hl] inc hl jr c, .loop ; ...and this one? cp [hl] jr nc, .loop ; replace it with a "?" ld a, "?" ld [de], a jr .loop .done ; next char inc de ; reached end of nick without finding a terminator? dec b jr nz, .checkchar ; change nick to "?@" pop de push de ld a, "?" ld [de], a inc de ld a, "@" ld [de], a .end ; if the nick has any errors at this point it's out of our hands pop de pop bc ret ; 66cf .textcommands ; 66cf ; table definining which characters ; are actually text commands ; format: ; >= < db $00, $05 db $14, $19 db $1d, $26 db $35, $3a db $3f, $40 db $49, $5d db $5e, $7f db $ff ; end ; 66de _Multiply:: ; 66de ; hMultiplier is one byte. ld a, 8 ld b, a xor a ld [hMultiplicand - 1], a ld [hMathBuffer + 1], a ld [hMathBuffer + 2], a ld [hMathBuffer + 3], a ld [hMathBuffer + 4], a .loop ld a, [hMultiplier] srl a ld [hMultiplier], a jr nc, .next ld a, [hMathBuffer + 4] ld c, a ld a, [hMultiplicand + 2] add c ld [hMathBuffer + 4], a ld a, [hMathBuffer + 3] ld c, a ld a, [hMultiplicand + 1] adc c ld [hMathBuffer + 3], a ld a, [hMathBuffer + 2] ld c, a ld a, [hMultiplicand + 0] adc c ld [hMathBuffer + 2], a ld a, [hMathBuffer + 1] ld c, a ld a, [hMultiplicand - 1] adc c ld [hMathBuffer + 1], a .next dec b jr z, .done ; hMultiplicand <<= 1 ld a, [hMultiplicand + 2] add a ld [hMultiplicand + 2], a ld a, [hMultiplicand + 1] rla ld [hMultiplicand + 1], a ld a, [hMultiplicand + 0] rla ld [hMultiplicand + 0], a ld a, [hMultiplicand - 1] rla ld [hMultiplicand - 1], a jr .loop .done ld a, [hMathBuffer + 4] ld [hProduct + 3], a ld a, [hMathBuffer + 3] ld [hProduct + 2], a ld a, [hMathBuffer + 2] ld [hProduct + 1], a ld a, [hMathBuffer + 1] ld [hProduct + 0], a ret ; 673e _Divide:: ; 673e xor a ld [hMathBuffer + 0], a ld [hMathBuffer + 1], a ld [hMathBuffer + 2], a ld [hMathBuffer + 3], a ld [hMathBuffer + 4], a ld a, 9 ld e, a .loop ld a, [hMathBuffer + 0] ld c, a ld a, [hDividend + 1] sub c ld d, a ld a, [hDivisor] ld c, a ld a, [hDividend + 0] sbc c jr c, .asm_6767 ld [hDividend + 0], a ld a, d ld [hDividend + 1], a ld a, [hMathBuffer + 4] inc a ld [hMathBuffer + 4], a jr .loop .asm_6767 ld a, b cp 1 jr z, .done ld a, [hMathBuffer + 4] add a ld [hMathBuffer + 4], a ld a, [hMathBuffer + 3] rla ld [hMathBuffer + 3], a ld a, [hMathBuffer + 2] rla ld [hMathBuffer + 2], a ld a, [hMathBuffer + 1] rla ld [hMathBuffer + 1], a dec e jr nz, .asm_6798 ld e, 8 ld a, [hMathBuffer + 0] ld [hDivisor], a xor a ld [hMathBuffer + 0], a ld a, [hDividend + 1] ld [hDividend + 0], a ld a, [hDividend + 2] ld [hDividend + 1], a ld a, [hDividend + 3] ld [hDividend + 2], a .asm_6798 ld a, e cp 1 jr nz, .asm_679e dec b .asm_679e ld a, [hDivisor] srl a ld [hDivisor], a ld a, [hMathBuffer + 0] rr a ld [hMathBuffer + 0], a jr .loop .done ld a, [hDividend + 1] ld [hDivisor], a ld a, [hMathBuffer + 4] ld [hDividend + 3], a ld a, [hMathBuffer + 3] ld [hDividend + 2], a ld a, [hMathBuffer + 2] ld [hDividend + 1], a ld a, [hMathBuffer + 1] ld [hDividend + 0], a ret ; 67c1 ItemAttributes: ; 67c1 INCLUDE "items/item_attributes.asm" ; 6ec1 Function6ec1: ; 6ec1 ld hl, $0006 add hl, bc bit 5, [hl] jr z, .asm_6ed9 ld hl, $0004 add hl, bc bit 4, [hl] push hl push bc call Function6f2c pop bc pop hl ret c jr .asm_6ee9 .asm_6ed9 ld hl, $0004 add hl, bc bit 4, [hl] jr nz, .asm_6ee9 push hl push bc call Function6f07 pop bc pop hl ret c .asm_6ee9 bit 6, [hl] jr nz, .asm_6ef5 push hl push bc call Function7009 pop bc pop hl ret c .asm_6ef5 bit 5, [hl] jr nz, .asm_6f05 push hl call Function70a4 pop hl ret c push hl call Function70ed pop hl ret c .asm_6f05 and a ret ; 6f07 Function6f07: ; 6f07 call Function6f5f ret c ld hl, $0010 add hl, bc ld d, [hl] ld hl, $0011 add hl, bc ld e, [hl] ld hl, $0006 add hl, bc bit 7, [hl] jp nz, Function6fa1 ld hl, $000e add hl, bc ld a, [hl] ld d, a call GetTileCollision and a jr z, Function6f3e scf ret ; 6f2c Function6f2c: ; 6f2c call Function6f5f ret c ld hl, $000e add hl, bc ld a, [hl] call GetTileCollision cp $1 jr z, Function6f3e scf ret ; 6f3e Function6f3e: ; 6f3e ld hl, $000e add hl, bc ld a, [hl] call Function6f7f ret nc push af ld hl, $0007 add hl, bc ld a, [hl] and 3 ld e, a ld d, 0 ld hl, .data_6f5b add hl, de pop af and [hl] ret z scf ret ; 6f5b .data_6f5b db 1, 2, 8, 4 ; 6f5f Function6f5f: ; 6f5f ld hl, $000f add hl, bc ld a, [hl] call Function6f7f ret nc push af ld hl, $0007 add hl, bc and 3 ld e, a ld d, 0 ld hl, .data_6f7b add hl, de pop af and [hl] ret z scf ret ; 6f7b .data_6f7b db 2, 1, 4, 8 ; 6f7f Function6f7f: ; 6f7f ld d, a and $f0 cp $b0 jr z, .asm_6f8c cp $c0 jr z, .asm_6f8c xor a ret .asm_6f8c ld a, d and 7 ld e, a ld d, 0 ld hl, .data_6f99 add hl, de ld a, [hl] scf ret ; 6f99 .data_6f99 db 8, 4, 1, 2 db 10, 6, 9, 5 ; 6fa1 Function6fa1: ; 6fa1 ld hl, $0007 add hl, bc ld a, [hl] and 3 jr z, .asm_6fb2 dec a jr z, .asm_6fb7 dec a jr z, .asm_6fbb jr .asm_6fbf .asm_6fb2 inc e push de inc d jr .asm_6fc2 .asm_6fb7 push de inc d jr .asm_6fc2 .asm_6fbb push de inc e jr .asm_6fc2 .asm_6fbf inc d push de inc e .asm_6fc2 call Function2a3c call GetTileCollision pop de and a jr nz, .asm_6fd7 call Function2a3c call GetTileCollision and a jr nz, .asm_6fd7 xor a ret .asm_6fd7 scf ret ; 6fd9 CheckFacingObject:: ; 6fd9 call GetFacingTileCoord ; Double the distance for counter tiles. call CheckCounterTile jr nz, .asm_6ff1 ld a, [MapX] sub d cpl inc a add d ld d, a ld a, [MapY] sub e cpl inc a add e ld e, a .asm_6ff1 ld bc, $d4d6 ld a, 0 ld [hConnectionStripLength], a call Function7041 ret nc ld hl, $0007 add hl, bc ld a, [hl] cp $ff jr z, .asm_7007 xor a ret .asm_7007 scf ret ; 7009 Function7009: ; 7009 ld hl, $0010 add hl, bc ld d, [hl] ld hl, $0011 add hl, bc ld e, [hl] jr Function7041 ; 7015 Function7015: ; 7015 ld a, [hConnectionStripLength] call Function1ae5 call Function7021 call Function7041 ret Function7021: ; 7021 ld hl, $0010 add hl, bc ld d, [hl] ld hl, $0011 add hl, bc ld e, [hl] call GetSpriteDirection and a jr z, .asm_703b cp $4 jr z, .asm_703d cp $8 jr z, .asm_703f inc d ret .asm_703b inc e ret .asm_703d dec e ret .asm_703f dec d ret ; 7041 Function7041: ; 7041 ld bc, $d4d6 xor a .asm_7045 ld [hConnectedMapWidth], a call Function1af1 jr z, .asm_7093 ld hl, $0004 add hl, bc bit 7, [hl] jr nz, .asm_7093 ld hl, $0006 add hl, bc bit 7, [hl] jr z, .asm_7063 call Function7171 jr nc, .asm_707b jr .asm_7073 .asm_7063 ld hl, $0010 add hl, bc ld a, [hl] cp d jr nz, .asm_707b ld hl, $0011 add hl, bc ld a, [hl] cp e jr nz, .asm_707b .asm_7073 ld a, [hConnectionStripLength] ld l, a ld a, [hConnectedMapWidth] cp l jr nz, .asm_70a2 .asm_707b ld hl, $0012 add hl, bc ld a, [hl] cp d jr nz, .asm_7093 ld hl, $0013 add hl, bc ld a, [hl] cp e jr nz, .asm_7093 ld a, [hConnectionStripLength] ld l, a ld a, [hConnectedMapWidth] cp l jr nz, .asm_70a2 .asm_7093 ld hl, $0028 add hl, bc ld b, h ld c, l ld a, [hConnectedMapWidth] inc a cp $d jr nz, .asm_7045 and a ret .asm_70a2 scf ret ; 70a4 Function70a4: ; 70a4 ld hl, $0016 add hl, bc ld a, [hl] and a jr z, .asm_70e9 and $f jr z, .asm_70c7 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, .asm_70eb cp e jr z, .asm_70eb .asm_70c7 ld hl, $0016 add hl, bc ld a, [hl] swap a and $f jr z, .asm_70e9 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, .asm_70eb cp e jr z, .asm_70eb .asm_70e9 xor a ret .asm_70eb scf ret ; 70ed Function70ed: ; 70ed ld hl, $0010 add hl, bc ld a, [XCoord] cp [hl] jr z, .asm_70fe jr nc, .asm_7111 add $9 cp [hl] jr c, .asm_7111 .asm_70fe ld hl, $0011 add hl, bc ld a, [YCoord] cp [hl] jr z, .asm_710f jr nc, .asm_7111 add $8 cp [hl] jr c, .asm_7111 .asm_710f and a ret .asm_7111 scf ret ; 7113 Function7113: ; 7113 ld a, [MapX] ld d, a ld a, [MapY] ld e, a ld bc, $d4d6 xor a .asm_711f ld [hConnectedMapWidth], a call Function1af1 jr z, .asm_7160 ld hl, $0003 add hl, bc ld a, [hl] cp $15 jr nz, .asm_7136 call Function7171 jr c, .asm_716f jr .asm_7160 .asm_7136 ld hl, $0011 add hl, bc ld a, [hl] cp e jr nz, .asm_714e ld hl, $0010 add hl, bc ld a, [hl] cp d jr nz, .asm_714e ld a, [hConnectedMapWidth] cp $0 jr z, .asm_7160 jr .asm_716f .asm_714e ld hl, $0013 add hl, bc ld a, [hl] cp e jr nz, .asm_7160 ld hl, $0012 add hl, bc ld a, [hl] cp d jr nz, .asm_7160 jr .asm_716f .asm_7160 ld hl, $0028 add hl, bc ld b, h ld c, l ld a, [hConnectedMapWidth] inc a cp $d jr nz, .asm_711f xor a ret .asm_716f scf ret ; 7171 Function7171: ; 7171 ld hl, $0010 add hl, bc ld a, d sub [hl] jr c, .asm_718b cp $2 jr nc, .asm_718b ld hl, $0011 add hl, bc ld a, e sub [hl] jr c, .asm_718b cp $2 jr nc, .asm_718b scf ret .asm_718b and a ret ; 718d Function718d: ; 718d ld hl, PartyMon1Happiness ld bc, PartyMon2 - PartyMon1 ld de, PartySpecies .asm_7196 ld a, [de] cp EGG jr nz, .asm_719f inc de add hl, bc jr .asm_7196 .asm_719f ld [$d265], a ld a, [hl] ld [ScriptVar], a call GetPokemonName jp Function746e ; 71ac Function71ac: ; 71ac ld a, [PartySpecies] ld [$d265], a cp EGG ld a, $1 jr z, .asm_71b9 xor a .asm_71b9 ld [ScriptVar], a call GetPokemonName jp Function746e ; 71c2 ChangeHappiness: ; 71c2 ; Perform happiness action c on CurPartyMon ld a, [CurPartyMon] inc a ld e, a ld d, 0 ld hl, PartySpecies - 1 add hl, de ld a, [hl] cp EGG ret z push bc ld hl, PartyMon1Happiness ld bc, PartyMon2 - PartyMon1 ld a, [CurPartyMon] call AddNTimes pop bc ld d, h ld e, l push de ld a, [de] cp 100 ld e, 0 jr c, .asm_71ef inc e cp 200 jr c, .asm_71ef inc e .asm_71ef dec c ld b, 0 ld hl, .Actions add hl, bc add hl, bc add hl, bc ld d, 0 add hl, de ld a, [hl] cp 100 pop de ld a, [de] jr nc, .negative add [hl] jr nc, .asm_720d ld a, $ff jr .asm_720d .negative add [hl] jr c, .asm_720d xor a .asm_720d ld [de], a ld a, [IsInBattle] and a ret z ld a, [CurPartyMon] ld b, a ld a, [$d0d8] cp b ret nz ld a, [de] ld [BattleMonHappiness], a ret ; 7221 .Actions db +5, +3, +2 db +5, +3, +2 db +1, +1, +0 db +3, +2, +1 db +1, +1, +0 db -1, -1, -1 db -5, -5, -10 db -5, -5, -10 db +1, +1, +1 db +3, +3, +1 db +5, +5, +2 db +1, +1, +1 db +3, +3, +1 db +10, +10, +4 db -5, -5, -10 db -10, -10, -15 db -15, -15, -20 db +3, +3, +1 db +10, +6, +4 ; 725a StepHappiness:: ; 725a ; Raise the party's happiness by 1 point every other step cycle. ld hl, $dc77 ld a, [hl] inc a and 1 ld [hl], a ret nz ld de, PartyCount ld a, [de] and a ret z ld c, a ld hl, PartyMon1Happiness .loop inc de ld a, [de] cp EGG jr z, .next inc [hl] jr nz, .next ld [hl], $ff .next push de ld de, PartyMon2 - PartyMon1 add hl, de pop de dec c jr nz, .loop ret ; 7282 DaycareStep:: ; 7282 ld a, [DaycareMan] bit 0, a jr z, .asm_72a4 ld a, [$df2b] ; level cp 100 jr nc, .asm_72a4 ld hl, $df16 ; exp inc [hl] jr nz, .asm_72a4 dec hl inc [hl] jr nz, .asm_72a4 dec hl inc [hl] ld a, [hl] cp $50 jr c, .asm_72a4 ld a, $50 ld [hl], a .asm_72a4 ld a, [DaycareLady] bit 0, a jr z, .asm_72c6 ld a, [$df64] ; level cp 100 jr nc, .asm_72c6 ld hl, $df4f ; exp inc [hl] jr nz, .asm_72c6 dec hl inc [hl] jr nz, .asm_72c6 dec hl inc [hl] ld a, [hl] cp $50 jr c, .asm_72c6 ld a, $50 ld [hl], a .asm_72c6 ld hl, DaycareMan bit 5, [hl] ; egg ret z ld hl, StepsToEgg dec [hl] ret nz call Random ld [hl], a callab Function16e1d ld a, [$d265] cp $e6 ld b, $50 jr nc, .asm_72f8 ld a, [$d265] cp $aa ld b, $28 jr nc, .asm_72f8 ld a, [$d265] cp $6e ld b, $1e jr nc, .asm_72f8 ld b, $a .asm_72f8 call Random cp b ret nc ld hl, DaycareMan res 5, [hl] set 6, [hl] ret ; 7305 SpecialGiveShuckle: ; 7305 ; Adding to the party. xor a ld [MonType], a ; Level 15 Shuckle. ld a, SHUCKLE ld [CurPartySpecies], a ld a, 15 ld [CurPartyLevel], a ld a, PREDEF_ADDPARTYMON call Predef jr nc, .NotGiven ; Caught data. ld b, 0 callba Function4dba3 ; Holding a Berry. ld bc, PartyMon2 - PartyMon1 ld a, [PartyCount] dec a push af push bc ld hl, PartyMon1Item call AddNTimes ld [hl], BERRY pop bc pop af ; OT ID. ld hl, PartyMon1ID call AddNTimes ld a, $2 ld [hli], a ld [hl], $6 ; Nickname. ld a, [PartyCount] dec a ld hl, PartyMon1Nickname call SkipNames ld de, SpecialShuckleNick call CopyName2 ; OT. ld a, [PartyCount] dec a ld hl, PartyMon1OT call SkipNames ld de, SpecialShuckleOT call CopyName2 ; Engine flag for this event. ld hl, $dc1e set 5, [hl] ld a, 1 ld [ScriptVar], a ret .NotGiven xor a ld [ScriptVar], a ret SpecialShuckleOT: db "MANIA@" SpecialShuckleNick: db "SHUCKIE@" ; 737e SpecialReturnShuckle: ; 737e callba Function50000 jr c, .asm_73e6 ld a, [CurPartySpecies] cp SHUCKLE jr nz, .DontReturn ld a, [CurPartyMon] ld hl, PartyMon1ID ld bc, PartyMon2 - PartyMon1 call AddNTimes ; OT ID ld a, [hli] cp $2 jr nz, .DontReturn ld a, [hl] cp $6 jr nz, .DontReturn ; OT ld a, [CurPartyMon] ld hl, PartyMon1OT call SkipNames ld de, SpecialShuckleOT .CheckOT ld a, [de] cp [hl] jr nz, .DontReturn cp "@" jr z, .asm_73bb inc de inc hl jr .CheckOT .asm_73bb callba Functione538 jr c, .asm_73f1 ld a, [CurPartyMon] ld hl, PartyMon1Happiness ld bc, PartyMon2 - PartyMon1 call AddNTimes ld a, [hl] cp 150 ld a, $3 jr nc, .asm_73e2 xor a ld [$d10b], a callab Functione039 ld a, $2 .asm_73e2 ld [ScriptVar], a ret .asm_73e6 ld a, $1 ld [ScriptVar], a ret .DontReturn xor a ld [ScriptVar], a ret .asm_73f1 ld a, $4 ld [ScriptVar], a ret ; 73f7 Function73f7: ; 73f7 callba Function50000 jr c, .asm_740e ld a, [CurPartySpecies] ld [ScriptVar], a ld [$d265], a call GetPokemonName jp Function746e .asm_740e xor a ld [ScriptVar], a ret ; 7413 Function7413: ; 7413 ld hl, Data7459 jr Function7420 Function7418: ; 7418 ld hl, Data7462 jr Function7420 Function741d: ; 741d ld hl, Data746b Function7420: ; 7420 push hl callba Function50000 pop hl jr c, .asm_744e ld a, [CurPartySpecies] cp EGG jr z, .asm_7453 push hl call GetCurNick call Function746e pop hl call Random .next sub [hl] jr c, .asm_7444 inc hl inc hl inc hl jr .next .asm_7444 inc hl ld a, [hli] ld [ScriptVar], a ld c, [hl] call ChangeHappiness ret .asm_744e xor a ld [ScriptVar], a ret .asm_7453 ld a, $1 ld [ScriptVar], a ret ; 7459 Data7459: ; 7459 db $4c, $02, $09 db $80, $03, $0a db $ff, $04, $0b Data7462: ; 7462 db $9a, $02, $0c db $4c, $03, $0d db $ff, $04, $0e Data746b: ; 746b db $ff, $02, $12 ; 746e Function746e: ; 746e ld hl, StringBuffer1 ld de, StringBuffer3 ld bc, $000b jp CopyBytes ; 747a Function747a: ; 747a ret ; 747b SECTION "bank2", ROMX, BANK[$2] Function8000: ; 8000 call Function2ed3 xor a ld [hBGMapMode], a call WhiteBGMap call ClearSprites ld hl, TileMap ld bc, $0168 ld a, " " call ByteFill ld hl, AttrMap ld bc, $0168 ld a, $7 call ByteFill call Function3200 call Function32f9 ret ; 8029 Function8029: ; 8029 ld a, $ff ld [$d4cd], a ld [$d4ce], a ld a, $0 ld hl, Data8071 call Function19a6 ld b, $0 call Function808f ld a, $0 call GetMapObject ld hl, $0008 add hl, bc ld e, $80 ld a, [$d45b] bit 2, a jr nz, .asm_8059 ld a, [PlayerGender] bit 0, a jr z, .asm_8059 ld e, $90 .asm_8059 ld [hl], e ld a, $0 ld [hConnectionStripLength], a ld bc, MapObjects ld a, $0 ld [hConnectedMapWidth], a ld de, $d4d6 call Function8116 ld a, $0 ld [$d4cf], a ret ; 8071 Data8071: ; 8071 ; A dummy map object used to initialize the player object. ; Shorter than the actual amount copied by two bytes. ; Said bytes seem to be unused. db $01, $00, $00, $0b, $ff, $ff, $ff, $00, $00, $00, $00, $ff, $ff ; 807e Function807e:: ; 807e push de ld a, b call GetMapObject pop de ld hl, $0003 add hl, bc ld [hl], d ld hl, $0002 add hl, bc ld [hl], e ret ; 808f Function808f: ; 808f push bc ld a, [XCoord] add $4 ld d, a ld a, [YCoord] add $4 ld e, a pop bc call Function807e ret ; 80a1 Function80a1:: ; 80a1 ld a, b call Function18de ret c ld hl, $0010 add hl, bc ld d, [hl] ld hl, $0011 add hl, bc ld e, [hl] ld a, [hConnectionStripLength] ld b, a call Function807e and a ret ; 80b8 Function80b8: ; 80b8 ld a, [XCoord] add $4 ld d, a ld hl, MapX sub [hl] ld [hl], d ld hl, $d721 ld [hl], d ld hl, MapX2 ld [hl], d ld d, a ld a, [YCoord] add $4 ld e, a ld hl, MapY sub [hl] ld [hl], e ld hl, $d720 ld [hl], e ld hl, MapY2 ld [hl], e ld e, a ld a, [$d4cd] cp $0 ret nz ret ; 80e7 Function80e7:: ; 80e7 call Function2707 and a ret nz ld hl, $d4fe ld a, $1 ld de, $0028 .asm_80f4 ld [hConnectedMapWidth], a ld a, [hl] and a jr z, .asm_8104 add hl, de ld a, [hConnectedMapWidth] inc a cp $d jr nz, .asm_80f4 scf ret .asm_8104 ld d, h ld e, l call Function8116 ld hl, VramState bit 7, [hl] ret z ld hl, $0005 add hl, de set 5, [hl] ret ; 8116 Function8116: ; 8116 call Function811d call Function8286 ret ; 811d Function811d: ; 811d ld a, [hConnectedMapWidth] ld hl, $0000 add hl, bc ld [hl], a ld a, [hConnectionStripLength] ld [$c2f0], a ld hl, $0001 add hl, bc ld a, [hl] ld [$c2f1], a call Function180e ld [$c2f2], a ld a, [hl] call GetSpritePalette ld [$c2f3], a ld hl, $0008 add hl, bc ld a, [hl] and $f0 jr z, .asm_814e swap a and $7 ld [$c2f3], a .asm_814e ld hl, $0004 add hl, bc ld a, [hl] ld [$c2f4], a ld hl, $0009 add hl, bc ld a, [hl] ld [$c2f5], a ld hl, $0003 add hl, bc ld a, [hl] ld [$c2f6], a ld hl, $0002 add hl, bc ld a, [hl] ld [$c2f7], a ld hl, $0005 add hl, bc ld a, [hl] ld [$c2f8], a ret ; 8177 Function8177: ; 8177 ld bc, $d72e ld a, $1 .asm_817c ld [hConnectionStripLength], a ld hl, $0001 add hl, bc ld a, [hl] and a jr z, .asm_81bb ld hl, $0000 add hl, bc ld a, [hl] cp $ff jr nz, .asm_81bb ld a, [XCoord] ld d, a ld a, [YCoord] ld e, a ld hl, $0003 add hl, bc ld a, [hl] add $1 sub d jr c, .asm_81bb cp $c jr nc, .asm_81bb ld hl, $0002 add hl, bc ld a, [hl] add $1 sub e jr c, .asm_81bb cp $b jr nc, .asm_81bb push bc call Function80e7 pop bc jp c, Function81c9 .asm_81bb ld hl, $0010 add hl, bc ld b, h ld c, l ld a, [hConnectionStripLength] inc a cp $10 jr nz, .asm_817c ret ; 81c9 Function81c9: ; 81c9 ret ; 81ca Function81ca:: ; 81ca nop ld a, [$d151] cp $ff ret z ld hl, Table81d6 rst JumpTable ret ; 81d6 Table81d6: ; 81d6 dw Function81e5 dw Function81de dw Function8232 dw Function8239 ; 81de Function81de: ; 81de ld a, [YCoord] sub $1 jr Function81ea Function81e5: ; 81e5 ld a, [YCoord] add $9 Function81ea: ; 81ea ld d, a ld a, [XCoord] ld e, a ld bc, $d72e ld a, $1 .asm_81f4 ld [hConnectionStripLength], a ld hl, $0001 add hl, bc ld a, [hl] and a jr z, .asm_8224 ld hl, $0002 add hl, bc ld a, d cp [hl] jr nz, .asm_8224 ld hl, $0000 add hl, bc ld a, [hl] cp $ff jr nz, .asm_8224 ld hl, $0003 add hl, bc ld a, [hl] add $1 sub e jr c, .asm_8224 cp $c jr nc, .asm_8224 push de push bc call Function80e7 pop bc pop de .asm_8224 ld hl, $0010 add hl, bc ld b, h ld c, l ld a, [hConnectionStripLength] inc a cp $10 jr nz, .asm_81f4 ret ; 8232 Function8232: ; 8232 ld a, [XCoord] sub $1 jr Function823e Function8239: ; 8239 ld a, [XCoord] add $a Function823e: ; 823e ld e, a ld a, [YCoord] ld d, a ld bc, $d72e ld a, $1 .asm_8248 ld [hConnectionStripLength], a ld hl, $0001 add hl, bc ld a, [hl] and a jr z, .asm_8278 ld hl, $0003 add hl, bc ld a, e cp [hl] jr nz, .asm_8278 ld hl, $0000 add hl, bc ld a, [hl] cp $ff jr nz, .asm_8278 ld hl, $0002 add hl, bc ld a, [hl] add $1 sub d jr c, .asm_8278 cp $b jr nc, .asm_8278 push de push bc call Function80e7 pop bc pop de .asm_8278 ld hl, $0010 add hl, bc ld b, h ld c, l ld a, [hConnectionStripLength] inc a cp $10 jr nz, .asm_8248 ret ; 8286 Function8286: ; 8286 ld a, [$c2f0] ld hl, $0001 add hl, de ld [hl], a ld a, [$c2f4] call Function1a61 ld a, [$c2f3] ld hl, $0006 add hl, de or [hl] ld [hl], a ld a, [$c2f7] call Function82d5 ld a, [$c2f6] call Function82f1 ld a, [$c2f1] ld hl, $0000 add hl, de ld [hl], a ld a, [$c2f2] ld hl, $0002 add hl, de ld [hl], a ld hl, $0009 add hl, de ld [hl], $0 ld hl, $000d add hl, de ld [hl], $ff ld a, [$c2f8] call Function830d ld a, [$c2f5] ld hl, $0020 add hl, de ld [hl], a and a ret ; 82d5 Function82d5: ; 82d5 ld hl, $0015 add hl, de ld [hl], a ld hl, $0011 add hl, de ld [hl], a ld hl, YCoord sub [hl] and $f swap a ld hl, $d14d sub [hl] ld hl, $0018 add hl, de ld [hl], a ret ; 82f1 Function82f1: ; 82f1 ld hl, $0014 add hl, de ld [hl], a ld hl, $0010 add hl, de ld [hl], a ld hl, XCoord sub [hl] and $f swap a ld hl, $d14c sub [hl] ld hl, $0017 add hl, de ld [hl], a ret ; 830d Function830d: ; 830d ld h, a inc a and $f ld l, a ld a, h add $10 and $f0 or l ld hl, $0016 add hl, de ld [hl], a ret ; 831e Function831e: ; 831e ld a, [$ffe0] call Function1b1e ld a, $3e call Function1b3f ld a, [$d03f] dec a jr z, Function833b ld a, [$ffe0] ld b, a ld c, $0 ld d, $1 call Function8341 call Function1b35 Function833b ld a, $47 call Function1b3f ret ; 8341 Function8341: ; 8341 push de push bc ld a, c call GetMapObject ld hl, $0000 add hl, bc ld a, [hl] call Function1ae5 ld d, b ld e, c pop bc ld a, b call GetMapObject ld hl, $0000 add hl, bc ld a, [hl] call Function1ae5 ld hl, $0010 add hl, bc ld a, [hl] ld hl, $0011 add hl, bc ld c, [hl] ld b, a ld hl, $0010 add hl, de ld a, [hl] ld hl, $0011 add hl, de ld e, [hl] ld d, a pop af call Function1b5f ret ; 8379 Function8379: ; 8379 call Function1b1e call Function8388 call Function1b3f ld a, $47 call Function1b3f ret ; 8388 Function8388: ; 8388 ld a, [PlayerDirection] srl a srl a and 3 ld e, a ld d, 0 ld hl, .data_839a add hl, de ld a, [hl] ret ; 839a .data_839a db 8, 9, 10, 11 ; 839e Function839e:: ; 839e push bc ld a, c call Function18de ld d, b ld e, c pop bc ret c ld a, b call Function18de ret c ld hl, $0010 add hl, bc ld a, [hl] ld hl, $0011 add hl, bc ld c, [hl] ld b, a ld hl, $0010 add hl, de ld a, [hl] cp b jr z, .asm_83c7 jr c, .asm_83c4 inc b jr .asm_83d5 .asm_83c4 dec b jr .asm_83d5 .asm_83c7 ld hl, $0011 add hl, de ld a, [hl] cp c jr z, .asm_83d5 jr c, .asm_83d4 inc c jr .asm_83d5 .asm_83d4 dec c .asm_83d5 ld hl, $0010 add hl, de ld [hl], b ld a, b ld hl, XCoord sub [hl] and $f swap a ld hl, $d14c sub [hl] ld hl, $0017 add hl, de ld [hl], a ld hl, $0011 add hl, de ld [hl], c ld a, c ld hl, YCoord sub [hl] and $f swap a ld hl, $d14d sub [hl] ld hl, $0018 add hl, de ld [hl], a ld a, [hConnectedMapWidth] ld hl, $0020 add hl, de ld [hl], a ld hl, $0003 add hl, de ld [hl], $1a ld hl, $0009 add hl, de ld [hl], $0 ret ; 8417 Function8417:: ; 8417 ld a, d call GetMapObject ld hl, $0000 add hl, bc ld a, [hl] cp $d jr nc, .asm_8437 ld d, a ld a, e call GetMapObject ld hl, $0000 add hl, bc ld a, [hl] cp $d jr nc, .asm_8437 ld e, a call Function8439 ret .asm_8437 scf ret ; 8439 Function8439: ; 8439 ld a, d call Function1ae5 ld hl, $0010 add hl, bc ld a, [hl] ld hl, $0011 add hl, bc ld c, [hl] ld b, a push bc ld a, e call Function1ae5 ld hl, $0010 add hl, bc ld d, [hl] ld hl, $0011 add hl, bc ld e, [hl] pop bc ld a, b sub d jr z, .asm_846c jr nc, .asm_8460 cpl inc a .asm_8460 ld h, a ld a, c sub e jr z, .asm_847a jr nc, .asm_8469 cpl inc a .asm_8469 sub h jr c, .asm_847a .asm_846c ld a, c cp e jr z, .asm_8488 jr c, .asm_8476 ld d, $0 and a ret .asm_8476 ld d, $1 and a ret .asm_847a ld a, b cp d jr z, .asm_8488 jr c, .asm_8484 ld d, $3 and a ret .asm_8484 ld d, $2 and a ret .asm_8488 scf ret ; 848a Function848a: ; 848a call Function849d jr c, .asm_8497 ld [$d4d1], a xor a ld [$d4d0], a ret .asm_8497 ld a, $ff ld [$d4d0], a ret ; 849d Function849d: ; 849d ld a, [$d4cd] call Function1ae5 ld hl, $0010 add hl, bc ld d, [hl] ld hl, $0011 add hl, bc ld e, [hl] ld a, [$d4ce] call Function1ae5 ld hl, $0010 add hl, bc ld a, d cp [hl] jr z, .asm_84c5 jr c, .asm_84c1 and a ld a, $f ret .asm_84c1 and a ld a, $e ret .asm_84c5 ld hl, $0011 add hl, bc ld a, e cp [hl] jr z, .asm_84d7 jr c, .asm_84d3 and a ld a, $c ret .asm_84d3 and a ld a, $d ret .asm_84d7 scf ret ; 84d9 _Sine:: ; 84d9 ; A simple sine function. ; Return d * sin(e) in hl. ; e is a signed 6-bit value. ld a, e and %111111 cp %100000 jr nc, .negative call Function84ef ld a, h ret .negative and %011111 call Function84ef ld a, h xor $ff inc a ret ; 84ef Function84ef: ; 84ef ld e, a ld a, d ld d, 0 ld hl, SineWave add hl, de add hl, de ld e, [hl] inc hl ld d, [hl] ld hl, 0 ; Factor amplitude .multiply srl a jr nc, .even add hl, de .even sla e rl d and a jr nz, .multiply ret ; 850b SineWave: ; 850b ; A $20-word table representing a sine wave. ; 90 degrees is index $10 at a base amplitude of $100. x set 0 rept $20 dw (sin(x) + (sin(x) & $ff)) >> 8 ; round up x set x + $100 * $40000 endr ; 854b GetPredefPointer:: ; 854b ; Return the bank and address of PredefID in a and PredefAddress. ; Save hl for later (back in Predef) ld a, h ld [PredefTemp], a ld a, l ld [PredefTemp + 1], a push de ld a, [PredefID] ld e, a ld d, 0 ld hl, PredefPointers add hl, de add hl, de add hl, de pop de ld a, [hli] ld [PredefAddress + 1], a ld a, [hli] ld [PredefAddress], a ld a, [hl] ret ; 856b PredefPointers: ; 856b ; $4b Predef pointers ; address, bank dwb Function6508, BANK(Function6508) ; $0 dwb Function747a, BANK(Function747a) dwb Functionc658, BANK(Functionc658) dwb FlagPredef, BANK(FlagPredef) dwb Functionc699, BANK(Functionc699) dwb FillPP, BANK(FillPP) dwb Functiond88c, BANK(Functiond88c) dwb Functionda96, BANK(Functionda96) dwb Functiondb3f, BANK(Functiondb3f) ; $8 dwb Functionde6e, BANK(Functionde6e) dwb Functiondf8c, BANK(Functiondf8c) dwb Functionc6e0, BANK(Functionc6e0) dwb Functione167, BANK(Functione167) dwb Functione17b, BANK(Functione17b) dwb CanLearnTMHMMove, BANK(CanLearnTMHMMove) dwb GetTMHMMove, BANK(GetTMHMMove) dwb Function28eef, BANK(Function28eef) ; $ 10 dwb PrintMoveDesc, BANK(PrintMoveDesc) dwb Function3df48, BANK(Function3df48) ; UpdatePlayerHUD dwb FillBox, BANK(FillBox) dwb Function3d873, BANK(Function3d873) dwb Function3e036, BANK(Function3e036) ; UpdateEnemyHUD dwb StartBattle, BANK(StartBattle) dwb FillInExpBar, BANK(FillInExpBar) dwb Function3f43d, BANK(Function3f43d) ; $18 dwb Function3f47c, BANK(Function3f47c) dwb Function42487, BANK(Function42487) dwb FillMoves, BANK(FillMoves) dwb Function421e6, BANK(Function421e6) dwb Function28f63, BANK(Function28f63) dwb Function28f24, BANK(Function28f24) dwb Function5084a, BANK(Function5084a) dwb Function50d6f, BANK(Function50d6f) ; $20 dwb Function50d2e, BANK(Function50d2e) dwb Function50cdb, BANK(Function50cdb) dwb Function50c50, BANK(Function50c50) dwb GetGender, BANK(GetGender) dwb StatsScreenInit, BANK(StatsScreenInit) dwb DrawPlayerHP, BANK(DrawPlayerHP) dwb DrawEnemyHP, BANK(DrawEnemyHP) dwb Function50b7b, BANK(Function50b7b) ; $28 dwb GetTypeName, BANK(GetTypeName) dwb PrintMoveType, BANK(PrintMoveType) dwb PrintType, BANK(PrintType) dwb PrintMonTypes, BANK(PrintMonTypes) dwb GetUnownLetter, BANK(GetUnownLetter) dwb Functioncbcdd, BANK(Functioncbcdd) dwb Predef2F, BANK(Predef2F) dwb Function9853, BANK(Function9853) ; $30 dwb Function864c, BANK(Function864c) dwb Function91d11, BANK(Function91d11) dwb CheckContestMon, BANK(CheckContestMon) dwb Function8c20f, BANK(Function8c20f) dwb Function8c000, BANK(Function8c000) dwb Function8c000, BANK(Function8c000) dwb PlayBattleAnim, BANK(PlayBattleAnim) dwb Predef38, BANK(Predef38) ; $38 dwb Predef39, BANK(Predef39) dwb Functionfd1d0, BANK(Functionfd1d0) dwb PartyMonItemName, BANK(PartyMonItemName) dwb Function51077, BANK(Function51077) dwb Function5116c, BANK(Function5116c) dwb Function5108b, BANK(Function5108b) dwb Function5120d, BANK(Function5120d) dwb DecompressPredef, BANK(DecompressPredef) ; $40 dwb Function347d3, BANK(Function347d3) dwb Functionfb908, BANK(Functionfb908) dwb Functionfb877, BANK(Functionfb877) dwb Functiond0000, BANK(Functiond0000) dwb Function50d0a, BANK(Function50d0a) dwb Functiond00a3, BANK(Functiond00a3) dwb Functiond008e, BANK(Functiond008e) dwb Functiond0669, BANK(Functiond0669) ; $48 dwb Functiond066e, BANK(Functiond066e) dbw $ff, Function2d43 ; ???? ; 864c INCLUDE "engine/color.asm" SECTION "bank3", ROMX, BANK[$3] Functionc000:: ; c000 ld a, [TimeOfDay] ld hl, Datac012 ld de, 2 call IsInArray inc hl ld c, [hl] ret c xor a ld c, a ret ; c012 Datac012: ; c012 db MORN, 1 db DAY, 2 db NITE, 4 db NITE, 4 db $ff ; c01b Functionc01b:: ; c01b ld hl, SpecialsPointers add hl, de add hl, de add hl, de ld b, [hl] inc hl ld a, [hli] ld h, [hl] ld l, a ld a, b rst FarCall ret ; c029 SpecialsPointers: ; c029 dbw BANK(Function97c28), Function97c28 dbw BANK(Function29ce8), Function29ce8 dbw BANK(Function29d11), Function29d11 dbw BANK(Function29d92), Function29d92 dbw BANK(Function29e66), Function29e66 dbw BANK(Function29e82), Function29e82 dbw BANK(Function29efa), Function29efa dbw BANK(Function29eee), Function29eee dbw BANK(Function29c92), Function29c92 dbw BANK(Function29cf1), Function29cf1 dbw BANK(Function29cfa), Function29cfa dbw BANK(Function29bfb), Function29bfb dbw BANK(Function29c7b), Function29c7b dbw BANK(Function29ec4), Function29ec4 dbw BANK(Function29ed9), Function29ed9 dbw BANK(Function29eaf), Function29eaf dbw BANK(Function29f47), Function29f47 dbw BANK(Functionc2f6), Functionc2f6 dbw BANK(Functionc309), Functionc309 dbw BANK(Function1050b9), Function1050b9 dbw BANK(Functionc34a), Functionc34a dbw BANK(Function4d9e5), Function4d9e5 dbw BANK(Function13a12), Function13a12 dbw BANK(Function13a31), Function13a31 dbw BANK(Function135db), Function135db dbw BANK(Functionfbb32), Functionfbb32 dbw BANK(Functionfbcd2), Functionfbcd2 dbw BANK(Functionc658), Functionc658 dbw BANK(Function1559a), Function1559a dbw BANK(Functionc2e7), Functionc2e7 dbw BANK(Function166d6), Function166d6 dbw BANK(Function1672a), Function1672a dbw BANK(Function16936), Function16936 dbw BANK(Function2c547), Function2c547 dbw BANK(Function16218), Function16218 dbw BANK(Function8cc04), Function8cc04 dbw BANK(SpecialNameRival), SpecialNameRival dbw BANK(Function90913), Function90913 dbw BANK(Functionc2c0), Functionc2c0 dbw BANK(Functionc2cd), Functionc2cd dbw BANK(Functionc355), Functionc355 dbw BANK(Functionc360), Functionc360 dbw BANK(Functionc373), Functionc373 dbw BANK(Functionc380), Functionc380 dbw BANK(Functionc38d), Functionc38d dbw BANK(Functionc3db), Functionc3db dbw BANK(Function8c084), Function8c084 dbw BANK(Function8c092), Function8c092 dbw BANK(Function8c0b6), Function8c0b6 dbw BANK(Function8c079), Function8c079 dbw BANK(Function8c0ab), Function8c0ab dbw BANK(Functiond91), Functiond91 dbw BANK(WhiteBGMap), WhiteBGMap dbw BANK(UpdateTimePals), UpdateTimePals dbw BANK(ClearTileMap), ClearTileMap dbw BANK(Function1ad2), Function1ad2 dbw BANK(Functione4a), Functione4a dbw BANK(Functionc230), Functionc230 dbw BANK(SpecialSeenMon), SpecialSeenMon dbw BANK(WaitSFX),WaitSFX dbw BANK(Function3cdf), Function3cdf dbw BANK(Function3d47), Function3d47 dbw BANK(Function12324), Function12324 dbw BANK(Function8379), Function8379 dbw BANK(Functionc25a), Functionc25a dbw BANK(Functionc268), Functionc268 dbw BANK(Functionc276), Functionc276 dbw BANK(Functionc284), Functionc284 dbw BANK(Functionc3ef), Functionc3ef dbw BANK(Function17421), Function17421 dbw BANK(Function17440), Function17440 dbw BANK(Function139a8), Function139a8 dbw BANK(Functionc3fc), Functionc3fc dbw BANK(Function26feb), Function26feb dbw BANK(Function27043), Function27043 dbw BANK(SpecialGiveShuckle), SpecialGiveShuckle dbw BANK(SpecialReturnShuckle), SpecialReturnShuckle dbw BANK(Function73f7), Function73f7 dbw BANK(SpecialCheckPokerus),SpecialCheckPokerus dbw BANK(Function24b25), Function24b25 dbw BANK(Function24b4e), Function24b4e dbw BANK(Function24ae8), Function24ae8 dbw BANK(Function4d87a), Function4d87a dbw BANK(Functionc434), Functionc434 dbw BANK(Functionc422), Functionc422 dbw BANK(Function4d9d3), Function4d9d3 dbw BANK(Function88018), Function88018 dbw BANK(SpecialNameRater), SpecialNameRater dbw BANK(Functionc2da), Functionc2da dbw BANK(Function718d), Function718d dbw BANK(Function71ac), Function71ac dbw BANK(Function2a4ab), Function2a4ab dbw BANK(Function2a51f), Function2a51f dbw BANK(Function2a567), Function2a567 dbw BANK(Function14209), Function14209 dbw BANK(Functionfb841), Functionfb841 dbw BANK(SpecialSnorlaxAwake),SpecialSnorlaxAwake dbw BANK(Function7413), Function7413 dbw BANK(Function7418), Function7418 dbw BANK(Function741d), Function741d dbw BANK(Functionc472), Functionc472 dbw BANK(ProfOaksPCBoot), ProfOaksPCBoot dbw BANK(SpecialGameboyCheck),SpecialGameboyCheck dbw BANK(SpecialTrainerHouse),SpecialTrainerHouse dbw BANK(Function16dc7), Function16dc7 dbw BANK(InitRoamMons), InitRoamMons dbw BANK(Functionc48f), Functionc48f dbw BANK(Functionc49f), Functionc49f dbw BANK(Functionc4ac), Functionc4ac dbw BANK(Function11ac3e), Function11ac3e dbw BANK(Function11b444), Function11b444 dbw BANK(Function11b5e8), Function11b5e8 dbw BANK(Function11b7e5), Function11b7e5 dbw BANK(Function11b879), Function11b879 dbw BANK(Function11b920), Function11b920 dbw BANK(Function11b93b), Function11b93b dbw BANK(Function1700b0), Function1700b0 dbw BANK(Function1700ba), Function1700ba dbw BANK(Function170114), Function170114 dbw BANK(Function170215), Function170215 dbw BANK(Function1704e1), Function1704e1 dbw BANK(Function17021d), Function17021d dbw BANK(Function170b44), Function170b44 dbw BANK(Function11ba38), Function11ba38 dbw BANK(Function170bd3), Function170bd3 dbw BANK(Function117656), Function117656 dbw BANK(Reset), Reset dbw BANK(Function1011f1), Function1011f1 dbw BANK(Function101220), Function101220 dbw BANK(Function101225), Function101225 dbw BANK(Function101231), Function101231 dbw BANK(Function4925b), Function4925b dbw BANK(Function8adef), Function8adef dbw BANK(Function11c1ab), Function11c1ab dbw BANK(Function170687), Function170687 dbw BANK(Function8ae68), Function8ae68 dbw BANK(Function17d224), Function17d224 dbw BANK(Function17d2b6), Function17d2b6 dbw BANK(Function17d2ce), Function17d2ce dbw BANK(Function17f53d), Function17f53d dbw BANK(Function103612), Function103612 dbw BANK(SpecialHoOhChamber),SpecialHoOhChamber dbw BANK(Function102142), Function102142 dbw BANK(Function4989a), Function4989a dbw BANK(Function49bf9), Function49bf9 dbw BANK(SpecialPokeSeer), SpecialPokeSeer dbw BANK(Function8af6b), Function8af6b dbw BANK(Function8afd4), Function8afd4 dbw BANK(SpecialDratini),SpecialDratini dbw BANK(Function11485), Function11485 dbw BANK(SpecialBeastsCheck),SpecialBeastsCheck dbw BANK(SpecialMonCheck),SpecialMonCheck dbw BANK(Functionc225), Functionc225 dbw BANK(Function170bd2), Function170bd2 dbw BANK(Function10366e), Function10366e dbw BANK(Function1037eb), Function1037eb dbw BANK(Function10383c), Function10383c dbw BANK(Function1060a2), Function1060a2 dbw BANK(Function14168), Function14168 dbw BANK(Function1037c2), Function1037c2 dbw BANK(Function10630f), Function10630f dbw BANK(Function103780), Function103780 dbw BANK(Function10387b), Function10387b dbw BANK(Function4ae12), Function4ae12 dbw BANK(Function1047eb), Function1047eb dbw BANK(Function4a927), Function4a927 dbw BANK(Function90a54), Function90a54 dbw BANK(Function90a88), Function90a88 dbw BANK(SpecialNone), SpecialNone ; c224 SpecialNone: ; c224 ret ; c225 Functionc225: ; c225 ld a, [ScriptVar] ld d, a callba Function57e2 ret ; c230 Functionc230: ; c230 ld a, [ScriptVar] dec a call CheckCaughtMon ret nz ld a, [ScriptVar] dec a call SetSeenAndCaughtMon call FadeToMenu ld a, [ScriptVar] ld [$d265], a callba Functionfb877 call Function2b4d ret ; c252 SpecialSeenMon: ; c252 ld a, [ScriptVar] dec a call SetSeenMon ret ; c25a Functionc25a: ; c25a ld a, [ScriptVar] ld b, a callba Function4dbd2 jr z, Functionc298 jr Functionc292 Functionc268: ; c268 ld a, [ScriptVar] ld b, a callba Function4dbd9 jr z, Functionc298 jr Functionc292 Functionc276: ; c276 ld a, [ScriptVar] ld b, a callba Function4dbe0 jr z, Functionc298 jr Functionc292 Functionc284: ; c284 ld a, [ScriptVar] ld b, a callba Function4dbe6 jr z, Functionc298 jr Functionc292 Functionc292: ; c292 ld a, $1 ld [ScriptVar], a ret Functionc298: ; c298 xor a ld [ScriptVar], a ret ; c29d SpecialNameRival: ; 0xc29d ld b, $2 ; rival ld de, RivalName callba Function116b7 ; default to "SILVER" ld hl, RivalName ld de, DefaultRivalName call InitName ret ; 0xc2b2 DefaultRivalName: ; 0xc2b2 db "SILVER@" SpecialNameRater: ; c2b9 callba NameRater ret ; c2c0 Functionc2c0: ; c2c0 call FadeToMenu callba Function9191c call Function2b4d ret ; c2cd Functionc2cd: ; c2cd call FadeToMenu callba Function16be4 call Function2b4d ret ; c2da Functionc2da: ; c2da call FadeToMenu callba Function3f836 call Function2b4d ret ; c2e7 Functionc2e7: ; c2e7 xor a ld [ScriptVar], a callba Function156d9 ld a, c ld [ScriptVar], a ret ; c2f6 Functionc2f6: ; c2f6 ld a, $0 call GetSRAMBank ld a, [$abe2] and a jr z, .asm_c302 inc a .asm_c302 ld [ScriptVar], a call CloseSRAM ret ; c309 Functionc309: ; c309 ld a, $0 call GetSRAMBank ld a, [$abe2] ld [CurItem], a ld a, $1 ld [$d10c], a ld hl, NumItems call ReceiveItem jr nc, .asm_c33d xor a ld [$abe2], a call CloseSRAM ld a, [CurItem] ld [$d265], a call GetItemName ld hl, UnknownText_0xc345 call PrintText ld a, $1 ld [ScriptVar], a ret .asm_c33d call CloseSRAM xor a ld [ScriptVar], a ret ; c345 UnknownText_0xc345: ; 0xc345 ; received item text_jump UnknownText_0x1bd3be db "@" ; 0xc34a Functionc34a: ; c34a callba Function1369d ld a, b ld [ScriptVar], a ret ; c355 Functionc355: ; c355 ld a, [ScriptVar] ld e, a callba Function91a53 ret ; c360 Functionc360: ; c360 call FadeToMenu callba Functione1190 ld a, [$d0ec] ld [ScriptVar], a call Function2b4d ret ; c373 Functionc373: ; c373 call Functionc3ae ret c ld a, BANK(Function926c7) ld hl, Function926c7 call Functionc39a ret ; c380 Functionc380: ; c380 call Functionc3ae ret c ld a, BANK(Functione00ee) ld hl, Functione00ee call Functionc39a ret ; c38d Functionc38d: ; c38d call Functionc3ae ret c ld a, BANK(Functione1e5b) ld hl, Functione1e5b call Functionc39a ret ; c39a Functionc39a: ; c39a call Function31cf call FadeToMenu ld hl, $d0e8 ld a, [hli] push af ld a, [hli] ld h, [hl] ld l, a pop af rst FarCall call Function2b4d ret ; c3ae Functionc3ae: ; c3ae ld hl, Coins ld a, [hli] or [hl] jr z, .asm_c3c4 ld a, $36 ld [CurItem], a ld hl, NumItems call CheckItem jr nc, .asm_c3c9 and a ret .asm_c3c4 ld hl, UnknownText_0xc3d1 jr .asm_c3cc .asm_c3c9 ld hl, UnknownText_0xc3d6 .asm_c3cc call PrintText scf ret ; c3d1 UnknownText_0xc3d1: ; 0xc3d1 ; You have no coins. text_jump UnknownText_0x1bd3d7 db "@" ; 0xc3d6 UnknownText_0xc3d6: ; 0xc3d6 ; You don't have a COIN CASE. text_jump UnknownText_0x1bd3eb db "@" ; 0xc3db Functionc3db: ; c3db call WhiteBGMap call Function2879 ret ; c3e2 ScriptReturnCarry: ; c3e2 jr c, .carry xor a ld [ScriptVar], a ret .carry ld a, 1 ld [ScriptVar], a ret ; c3ef Functionc3ef: ; c3ef callba Function1150c ld a, [$dc3a] ld [ScriptVar], a ret ; c3fc Functionc3fc: ; c3fc ld a, [ScriptVar] ld [$dfce], a ret ; c403 Functionc403:: ; c403 ld a, c and a jr nz, .asm_c410 ld a, d ld [$dfcc], a ld a, e ld [$dfcd], a ret .asm_c410 ld a, d ld [$dc5a], a ld a, e ld [$dc5b], a ret ; c419 SpecialCheckPokerus: ; c419 ; Check if a monster in your party has Pokerus callba CheckPokerus jp ScriptReturnCarry ; c422 Functionc422: ; c422 callba Function1152b ld hl, $dc9d res 0, [hl] callba Function5d33 ret ; c434 Functionc434: ; c434 callba Function11542 jp ScriptReturnCarry ; c43d SpecialSnorlaxAwake: ; 0xc43d ; Check if the Poké Flute channel is playing, and if the player is standing ; next to Snorlax. ; outputs: ; ScriptVar is 1 if the conditions are met, otherwise 0. ; check background music ld a, [CurMusic] cp $40 ; Poké Flute Channel jr nz, .nope ld a, [XCoord] ld b, a ld a, [YCoord] ld c, a ld hl, .ProximityCoords .loop ld a, [hli] cp $ff jr z, .nope cp b jr nz, .nextcoord ld a, [hli] cp c jr nz, .loop ld a, $1 jr .done .nextcoord inc hl jr .loop .nope xor a .done ld [ScriptVar], a ret .ProximityCoords db $21, $08 db $22, $0a db $23, $0a db $24, $08 db $24, $09 db $ff Functionc472: ; c472 ld a, [CurPartySpecies] jp Function37ce ; c478 SpecialGameboyCheck: ; c478 ; check cgb ld a, [hCGB] and a jr nz, .cgb ; check sgb ld a, [hSGB] and a jr nz, .sgb ; gb xor a jr .done .sgb ld a, 1 jr .done .cgb ld a, 2 .done ld [ScriptVar], a ret Functionc48f: ; c48f ld a, $0 ld [MusicFadeIDLo], a ld a, $0 ld [MusicFadeIDHi], a ld a, $2 ld [MusicFade], a ret ; c49f Functionc49f: ; c49f call FadeToMenu callba Function1dd702 call Function2b4d ret ; c4ac Functionc4ac: ; c4ac call FadeToMenu callba Function84688 call Function2b4d ret ; c4b9 SpecialTrainerHouse: ; 0xc4b9 ld a, 0 call GetSRAMBank ld a, [$abfd] ; XXX what is this memory location? ld [ScriptVar], a jp CloseSRAM _PrintNum:: ; c4c7 push bc bit 5, b jr z, .asm_c4d9 bit 7, b jr nz, .asm_c4d4 bit 6, b jr z, .asm_c4d9 .asm_c4d4 ld a, $f0 ld [hli], a res 5, b .asm_c4d9 xor a ld [hProduct], a ld [hMultiplicand], a ld [$ffb5], a ld a, b and $f cp $1 jr z, .asm_c501 cp $2 jr z, .asm_c4f8 ld a, [de] ld [hMultiplicand], a inc de ld a, [de] ld [$ffb5], a inc de ld a, [de] ld [$ffb6], a jr .asm_c504 .asm_c4f8 ld a, [de] ld [$ffb5], a inc de ld a, [de] ld [$ffb6], a jr .asm_c504 .asm_c501 ld a, [de] ld [$ffb6], a .asm_c504 push de ld d, b ld a, c swap a and $f ld e, a ld a, c and $f ld b, a ld c, $0 cp $2 jr z, .asm_c57c cp $3 jr z, .asm_c56c cp $4 jr z, .asm_c55b cp $5 jr z, .asm_c54a cp $6 jr z, .asm_c538 ld a, $f ld [hMultiplier], a ld a, $42 ld [hMathBuffer], a ld a, $40 ld [$ffb9], a call Functionc5cb call PrintNumber_AdvancePointer .asm_c538 ld a, $1 ld [hMultiplier], a ld a, $86 ld [hMathBuffer], a ld a, $a0 ld [$ffb9], a call Functionc5cb call PrintNumber_AdvancePointer .asm_c54a xor a ld [hMultiplier], a ld a, $27 ld [hMathBuffer], a ld a, $10 ld [$ffb9], a call Functionc5cb call PrintNumber_AdvancePointer .asm_c55b xor a ld [hMultiplier], a ld a, $3 ld [hMathBuffer], a ld a, $e8 ld [$ffb9], a call Functionc5cb call PrintNumber_AdvancePointer .asm_c56c xor a ld [hMultiplier], a xor a ld [hMathBuffer], a ld a, $64 ld [$ffb9], a call Functionc5cb call PrintNumber_AdvancePointer .asm_c57c dec e jr nz, .asm_c583 ld a, $f6 ld [hProduct], a .asm_c583 ld c, $0 ld a, [$ffb6] .asm_c587 cp $a jr c, .asm_c590 sub $a inc c jr .asm_c587 .asm_c590 ld b, a ld a, [hProduct] or c jr nz, .asm_c59b call PrintNumber_PrintLeadingZero jr .asm_c5ad .asm_c59b call Functionc5ba push af ld a, $f6 add c ld [hl], a pop af ld [hProduct], a inc e dec e jr nz, .asm_c5ad inc hl ld [hl], $f2 .asm_c5ad call PrintNumber_AdvancePointer call Functionc5ba ld a, $f6 add b ld [hli], a pop de pop bc ret ; c5ba Functionc5ba: ; c5ba push af ld a, [hProduct] and a jr nz, .asm_c5c9 bit 5, d jr z, .asm_c5c9 ld a, $f0 ld [hli], a res 5, d .asm_c5c9 pop af ret ; c5cb ; known jump sources: c532 (3:4532), c544 (3:4544), c555 (3:4555), c566 (3:4566), c576 (3:4576) Functionc5cb: ; c5cb (3:45cb) dec e jr nz, PrintNumber_PrintDigit ld a, $f6 ld [hPastLeadingZeroes], a ; $ff00+$b3 (aliases: hDividend, hProduct) ; known jump sources: c5cc (3:45cc) PrintNumber_PrintDigit: ; c5d2 (3:45d2) ld c, $0 .asm_c5d4 ld a, [hDivisor] ; $ff00+$b7 (aliases: hMultiplier) ld b, a ld a, [hQuotient] ; $ff00+$b4 (aliases: hMultiplicand) ld [$FF00+$ba], a cp b jr c, .asm_c624 sub b ld [hQuotient], a ; $ff00+$b4 (aliases: hMultiplicand) ld a, [hMathBuffer] ; $ff00+$b8 ld b, a ld a, [$FF00+$b5] ld [$FF00+$bb], a cp b jr nc, .asm_c5f6 ld a, [hQuotient] ; $ff00+$b4 (aliases: hMultiplicand) or $0 jr z, .asm_c620 dec a ld [hQuotient], a ; $ff00+$b4 (aliases: hMultiplicand) ld a, [$FF00+$b5] .asm_c5f6 sub b ld [$FF00+$b5], a ld a, [$FF00+$b9] ld b, a ld a, [$FF00+$b6] ld [$FF00+$bc], a cp b jr nc, .asm_c616 ld a, [$FF00+$b5] and a jr nz, .asm_c611 ld a, [hQuotient] ; $ff00+$b4 (aliases: hMultiplicand) and a jr z, .asm_c61c dec a ld [hQuotient], a ; $ff00+$b4 (aliases: hMultiplicand) xor a .asm_c611 dec a ld [$FF00+$b5], a ld a, [$FF00+$b6] .asm_c616 sub b ld [$FF00+$b6], a inc c jr .asm_c5d4 .asm_c61c ld a, [$FF00+$bb] ld [$FF00+$b5], a .asm_c620 ld a, [$FF00+$ba] ld [hQuotient], a ; $ff00+$b4 (aliases: hMultiplicand) .asm_c624 ld a, [hPastLeadingZeroes] ; $ff00+$b3 (aliases: hDividend, hProduct) or c jr z, PrintNumber_PrintLeadingZero ld a, [hPastLeadingZeroes] ; $ff00+$b3 (aliases: hDividend, hProduct) and a jr nz, .asm_c637 bit 5, d jr z, .asm_c637 ld a, $f0 ld [hli], a res 5, d .asm_c637 ld a, $f6 add c ld [hl], a ld [hPastLeadingZeroes], a ; $ff00+$b3 (aliases: hDividend, hProduct) inc e dec e ret nz inc hl ld [hl], $f2 ret PrintNumber_PrintLeadingZero: ; c644 ; prints a leading zero unless they are turned off in the flags bit 7, d ; print leading zeroes? ret z ld [hl], "0" ret PrintNumber_AdvancePointer: ; c64a ; increments the pointer unless leading zeroes are not being printed, ; the number is left-aligned, and no nonzero digits have been printed yet bit 7, d ; print leading zeroes? jr nz, .incrementPointer bit 6, d ; left alignment or right alignment? jr z, .incrementPointer ld a, [hPastLeadingZeroes] and a ret z .incrementPointer inc hl ret ; 0xc658 Functionc658: ; c658 xor a ld [CurPartyMon], a ld hl, PartySpecies .asm_c65f ld a, [hli] cp $ff jr z, .asm_c676 cp $fd jr z, .asm_c66d push hl call Functionc677 pop hl .asm_c66d ld a, [CurPartyMon] inc a ld [CurPartyMon], a jr .asm_c65f .asm_c676 ret ; c677 Functionc677: ; c677 ld a, $0 call GetPartyParamLocation ld d, h ld e, l ld hl, $0020 add hl, de xor a ld [hli], a ld [hl], a ld hl, $0024 add hl, de ld b, h ld c, l dec bc dec bc ld a, [hli] ld [bc], a inc bc ld a, [hl] ld [bc], a callba Functionf8b9 ret ; c699 Functionc699: ; c699 ld a, b or c jr z, .asm_c6dd push hl xor a ld [hMultiplicand], a ld a, b ld [$ffb5], a ld a, c ld [$ffb6], a ld a, $30 ld [hMultiplier], a call Multiply ld a, d and a jr z, .asm_c6cc srl d rr e srl d rr e ld a, [$ffb5] ld b, a ld a, [$ffb6] srl b rr a srl b rr a ld [$ffb6], a ld a, b ld [$ffb5], a .asm_c6cc ld a, e ld [hMultiplier], a ld b, $4 call Divide ld a, [$ffb6] ld e, a pop hl and a ret nz ld e, $1 ret .asm_c6dd ld e, $0 ret ; c6e0 Functionc6e0: ; c6e0 call WaitBGMap call Functiond627 call WaitBGMap ret ; c6ea Functionc6ea: ; c6ea xor a ld hl, MagikarpLength ld bc, $0007 call ByteFill ret ; c6f5 Functionc6f5: ; c6f5 ld a, [MagikarpLength] rst JumpTable ld [MagikarpLength], a bit 7, a jr nz, .asm_c702 and a ret .asm_c702 and $7f scf ret ; c706 GetPartyNick: ; c706 ; write CurPartyMon nickname to StringBuffer1-3 ld hl, PartyMon1Nickname ld a, BOXMON ld [MonType], a ld a, [CurPartyMon] call GetNick call CopyName1 ; copy text from StringBuffer2 to StringBuffer3 ld de, StringBuffer2 ld hl, StringBuffer3 call CopyName2 ret ; c721 CheckEngineFlag: ; c721 ; Check engine flag de ; Return carry if flag is not set ld b, CHECK_FLAG callba EngineFlagAction ld a, c and a jr nz, .isset scf ret .isset xor a ret ; c731 CheckBadge: ; c731 ; Check engine flag a (ENGINE_ZEPHYRBADGE thru ENGINE_EARTHBADGE) ; Display "Badge required" text and return carry if the badge is not owned call CheckEngineFlag ret nc ld hl, BadgeRequiredText call Function1d67 ; push text to queue scf ret ; c73d BadgeRequiredText: ; c73d ; Sorry! A new BADGE ; is required. TX_FAR _BadgeRequiredText db "@" ; c742 CheckPartyMove: ; c742 ; checks if a pokemon in your party has a move ; e = partymon being checked ; input: d = move id ld e, $00 ; mon # xor a ld [CurPartyMon], a .checkmon ; check for valid species ld c, e ld b, $00 ld hl, PartySpecies add hl, bc ld a, [hl] and a ; no id jr z, .quit cp a, $ff ; terminator jr z, .quit cp a, EGG jr z, .nextmon ; navigate to appropriate move table ld bc, PartyMon2 - PartyMon1 ld hl, PartyMon1Moves ld a, e call AddNTimes ld b, $04 ; number of moves .checkmove ld a, [hli] cp d ; move id jr z, .end dec b ; how many moves left? jr nz, .checkmove .nextmon inc e ; mon # jr .checkmon .end ld a, e ld [CurPartyMon], a ; which mon has the move xor a ret .quit scf ret ; c779 Functionc779: ; c779 ld hl, UnknownText_0xc780 call Function1d67 ret ; c780 UnknownText_0xc780: ; 0xc780 text_jump UnknownText_0x1c05c8 db "@" ; 0xc785 Functionc785: ; c785 call Functionc6ea .asm_c788 ld hl, Jumptable_c796 call Functionc6f5 jr nc, .asm_c788 and $7f ld [$d0ec], a ret ; c796 ; no known jump sources Jumptable_c796: ; c796 (3:4796) dw Functionc79c dw Functionc7b2 dw Functionc7bb ; no known jump sources Functionc79c: ; c79c (3:479c) ld de, ENGINE_HIVEBADGE call CheckBadge jr c, .asm_c7ac call Functionc7ce jr c, .asm_c7af ld a, $1 ret .asm_c7ac ld a, $80 ret .asm_c7af ld a, $2 ret ; no known jump sources Functionc7b2: ; c7b2 (3:47b2) ld hl, UnknownScript_0xc7fe call Function31cd ld a, $81 ret ; no known jump sources Functionc7bb: ; c7bb (3:47bb) ld hl, UnknownText_0xc7c9 call Function1d67 ld a, $80 ret UnknownText_0xc7c4: ; 0xc7c4 ; used CUT! text_jump UnknownText_0x1c05dd db "@" ; 0xc7c9 UnknownText_0xc7c9: ; 0xc7c9 ; There's nothing to CUT here. text_jump UnknownText_0x1c05ec db "@" ; 0xc7ce Functionc7ce: ; c7ce call GetFacingTileCoord ld c, a push de callba Function149f5 pop de jr nc, .asm_c7fc call Function2a66 ld c, [hl] push hl ld hl, Unknown_c862 call Functionc840 pop hl jr nc, .asm_c7fc ld a, l ld [$d1ec], a ld a, h ld [$d1ed], a ld a, b ld [$d1ee], a ld a, c ld [$d1ef], a xor a ret .asm_c7fc scf ret ; c7fe UnknownScript_0xc7fe: ; c7fe reloadmappart special $0035 UnknownScript_0xc802: ; 0xc802 3callasm GetPartyNick 2writetext UnknownText_0xc7c4 reloadmappart 3callasm Functionc810 loadmovesprites end ; 0xc810 Functionc810: ; c810 ld hl, $d1ec ld a, [hli] ld h, [hl] ld l, a ld a, [$d1ee] ld [hl], a xor a ld [hBGMapMode], a call Function2173 call Function1ad2 call DelayFrame ld a, [$d1ef] ld e, a callba Function8c940 call Function2879 call Function2914 call Function1ad2 call DelayFrame call Functione51 ret ; c840 Functionc840: ; c840 push bc ld a, [$d199] ld de, 3 call IsInArray pop bc jr nc, .asm_c860 inc hl ld a, [hli] ld h, [hl] ld l, a ld de, 3 ld a, c call IsInArray jr nc, .asm_c860 inc hl ld b, [hl] inc hl ld c, [hl] scf ret .asm_c860 xor a ret ; c862 Unknown_c862: ; c862 dbw $01, Unknown_c872 dbw $02, Unknown_c882 dbw $03, Unknown_c886 dbw $19, Unknown_c899 dbw $1f, Unknown_c8a0 db -1 ; c872 Unknown_c872: ; c872 db $03, $02, $01 db $5b, $3c, $00 db $5f, $3d, $00 db $63, $3f, $00 db $67, $3e, $00 db -1 ; c882 Unknown_c882: ; c882 db $03, $02, $01 db -1 ; c886 Unknown_c886: ; c886 db $0b, $0a, $01 db $32, $6d, $00 db $33, $6c, $00 db $34, $6f, $00 db $35, $4c, $00 db $60, $6e, $00 db -1 ; c899 Unknown_c899: ; c899 db $13, $03, $01 db $03, $04, $01 db -1 ; c8a0 Unknown_c8a0: ; c8a0 db $0f, $17, $00 db -1 ; c8a4 Unknown_c8a4: ; c8a4 dbw $01, Unknown_c8a8 db -1 ; c8a8 Unknown_c8a8: ; c8a8 db $07, $36, $00 db -1 ; c8ac Functionc8ac: ; c8ac call Functionc8b5 and $7f ld [$d0ec], a ret ; c8b5 Functionc8b5: ; c8b5 ; Flash ld de, ENGINE_ZEPHYRBADGE callba CheckBadge jr c, .asm_c8dd push hl callba Function8ae30 pop hl jr c, .asm_c8d1 ld a, [$d847] cp $ff jr nz, .asm_c8d7 .asm_c8d1 call Functionc8e0 ld a, $81 ret .asm_c8d7 call Functionc779 ld a, $80 ret .asm_c8dd ld a, $80 ret ; c8e0 Functionc8e0: ; c8e0 ld hl, UnknownScript_0xc8e6 jp Function31cd ; c8e6 UnknownScript_0xc8e6: ; 0xc8e6 reloadmappart special $0035 2writetext UnknownText_0xc8f3 3callasm Function8c7e1 loadmovesprites end ; 0xc8f3 UnknownText_0xc8f3: ; 0xc8f3 text_jump UnknownText_0x1c0609 start_asm ; 0xc8f8 Functionc8f8: ; c8f8 call WaitSFX ld de, SFX_FLASH call PlaySFX call WaitSFX ld hl, UnknownText_0xc908 ret ; c908 UnknownText_0xc908: ; 0xc908 db "@" ; 0xc909 Functionc909: ; c909 call Functionc6ea .asm_c90c ld hl, Jumptable_c91a call Functionc6f5 jr nc, .asm_c90c and $7f ld [$d0ec], a ret ; c91a ; no known jump sources Jumptable_c91a: ; c91a (3:491a) dw Functionc922 dw Functionc95f dw Functionc971 dw Functionc97a ; no known jump sources Functionc922: ; c922 (3:4922) ld de, $1e call CheckBadge jr c, .asm_c956 ld hl, BikeFlags ; $dbf5 bit 1, [hl] jr nz, .asm_c95c ld a, [PlayerState] ; $d95d cp $4 jr z, .asm_c959 cp $8 jr z, .asm_c959 call GetFacingTileCoord call GetTileCollision cp $1 jr nz, .asm_c95c call CheckDirection jr c, .asm_c95c callba CheckFacingObject jr c, .asm_c95c ld a, $1 ret .asm_c956 ld a, $80 ret .asm_c959 ld a, $3 ret .asm_c95c ld a, $2 ret ; no known jump sources Functionc95f: ; c95f (3:495f) call GetSurfType ld [Buffer2], a ; $d1eb (aliases: MovementType) call GetPartyNick ld hl, UnknownScript_0xc983 call Function31cd ld a, $81 ret ; no known jump sources Functionc971: ; c971 (3:4971) ld hl, CantSurfText call Function1d67 ld a, $80 ret ; no known jump sources Functionc97a: ; c97a (3:497a) ld hl, AlreadySurfingText call Function1d67 ld a, $80 ret ; c983 (3:4983) UnknownScript_0xc983: ; c983 special $0035 UsedSurfScript: ; c986 2writetext UsedSurfText ; "used SURF!" closetext loadmovesprites 3callasm Functionc9a2 ; empty function copybytetovar Buffer2 writevarcode VAR_MOVEMENT special SPECIAL_UPDATESPRITETILES special SPECIAL_BIKESURFMUSIC ; step into the water special SPECIAL_LOADFACESTEP ; (slow_step_x, step_end) applymovement 0, MovementBuffer ; PLAYER, MovementBuffer end ; c9a2 Functionc9a2: ; c9a2 callba Function1060bb ; empty ret ; c9a9 UsedSurfText: ; c9a9 TX_FAR _UsedSurfText ; [MONSTER] used db "@" ; SURF! ; c9ae CantSurfText: ; c9ae TX_FAR _CantSurfText ; You can't SURF db "@" ; here. ; c9b3 AlreadySurfingText: ; c9b3 TX_FAR _AlreadySurfingText ; You're already db "@" ; SURFING. ; c9b8 GetSurfType: ; c9b8 ; Surfing on Pikachu uses an alternate sprite. ; This is done by using a separate movement type. ld a, [CurPartyMon] ld e, a ld d, 0 ld hl, PartySpecies add hl, de ld a, [hl] cp PIKACHU ld a, PLAYER_SURF_PIKA ret z ld a, PLAYER_SURF ret ; c9cb CheckDirection: ; c9cb ; Return carry if a tile permission prevents you ; from moving in the direction you're facing. ; Get player direction ld a, [PlayerDirection] and a, %00001100 ; bits 2 and 3 contain direction rrca rrca ld e, a ld d, 0 ld hl, .Directions add hl, de ; Can you walk in this direction? ld a, [TilePermissions] and [hl] jr nz, .quit xor a ret .quit scf ret .Directions db FACE_DOWN db FACE_UP db FACE_LEFT db FACE_RIGHT ; c9e7 TrySurfOW:: ; c9e7 ; Checking a tile in the overworld. ; Return carry if surfing is allowed. ; Don't ask to surf if already surfing. ld a, [PlayerState] cp PLAYER_SURF_PIKA jr z, .quit cp PLAYER_SURF jr z, .quit ; Must be facing water. ld a, [EngineBuffer1] call GetTileCollision cp 1 ; surfable jr nz, .quit ; Check tile permissions. call CheckDirection jr c, .quit ld de, ENGINE_FOGBADGE call CheckEngineFlag jr c, .quit ld d, SURF call CheckPartyMove jr c, .quit ld hl, BikeFlags bit 1, [hl] ; always on bike (can't surf) jr nz, .quit call GetSurfType ld [MovementType], a call GetPartyNick ld a, BANK(AskSurfScript) ld hl, AskSurfScript call CallScript scf ret .quit xor a ret ; ca2c AskSurfScript: ; ca2c loadfont 2writetext AskSurfText yesorno iftrue UsedSurfScript loadmovesprites end ; ca36 AskSurfText: ; ca36 TX_FAR _AskSurfText ; The water is calm. db "@" ; Want to SURF? ; ca3b Functionca3b: ; ca3b call Functionc6ea .asm_ca3e ld hl, .data_ca4c call Functionc6f5 jr nc, .asm_ca3e and $7f ld [$d0ec], a ret ; ca4c .data_ca4c dw Functionca52 dw Functionca94 dw Functionca9d ; ca52 Functionca52: ; ca52 ; Fly ld de, ENGINE_STORMBADGE call CheckBadge jr c, .asm_ca85 call GetMapPermission call CheckOutdoorMap jr z, .asm_ca64 jr .indoors .asm_ca64 xor a ld [$ffde], a call Function1d6e call ClearSprites callba Function91af3 ld a, e cp $ff jr z, .asm_ca8b cp $1c jr nc, .asm_ca8b ld [$d001], a call Function1c17 ld a, $1 ret .asm_ca85 ld a, $82 ret .indoors ld a, $2 ret .asm_ca8b call Function1c17 call WaitBGMap ld a, $80 ret ; ca94 Functionca94: ; ca94 ld hl, UnknownScript_0xcaa3 call Function31cd ld a, $81 ret ; ca9d Functionca9d: ; ca9d call Functionc779 ld a, $82 ret ; caa3 UnknownScript_0xcaa3: ; 0xcaa3 reloadmappart 3callasm HideSprites special $0035 3callasm Function8caed 3call UnknownScript_0x122c1 special $0000 3callasm Function154f1 writecode $8, $0 newloadmap $fc 3callasm Function8cb33 special $003b 3callasm Functioncacb end ; 0xcacb Functioncacb: ; cacb callba Function561d call DelayFrame call Functione4a callba Function106594 ret ; cade Functioncade: ; cade call Functioncae7 and $7f ld [$d0ec], a ret ; cae7 Functioncae7: ; cae7 ; Waterfall ld de, ENGINE_RISINGBADGE callba CheckBadge ld a, $80 ret c call Functioncb07 jr c, .asm_cb01 ld hl, UnknownScript_0xcb1c call Function31cd ld a, $81 ret .asm_cb01 call Functionc779 ld a, $80 ret ; cb07 Functioncb07: ; cb07 ld a, [PlayerDirection] and $c cp FACE_UP jr nz, .asm_cb1a ld a, [TileUp] call CheckWaterfallTile jr nz, .asm_cb1a xor a ret .asm_cb1a scf ret ; cb1c UnknownScript_0xcb1c: ; 0xcb1c reloadmappart special $0035 UnknownScript_0xcb20: ; 0xcb20 3callasm GetPartyNick 2writetext UnknownText_0xcb51 closetext loadmovesprites playsound SFX_BUBBLEBEAM .loop applymovement $0, WaterfallStep 3callasm Functioncb38 iffalse .loop end ; 0xcb38 Functioncb38: ; cb38 xor a ld [ScriptVar], a ld a, [StandingTile] call CheckWaterfallTile ret z callba Function1060c1 ld a, $1 ld [ScriptVar], a ret ; cb4f WaterfallStep: ; cb4f turn_waterfall_up step_end ; cb51 UnknownText_0xcb51: ; 0xcb51 text_jump UnknownText_0x1c068e db "@" ; 0xcb56 TryWaterfallOW:: ; cb56 ld d, WATERFALL call CheckPartyMove jr c, .asm_cb74 ld de, ENGINE_RISINGBADGE call CheckEngineFlag jr c, .asm_cb74 call Functioncb07 jr c, .asm_cb74 ld a, BANK(UnknownScript_0xcb86) ld hl, UnknownScript_0xcb86 call CallScript scf ret .asm_cb74 ld a, BANK(UnknownScript_0xcb7e) ld hl, UnknownScript_0xcb7e call CallScript scf ret ; cb7e UnknownScript_0xcb7e: ; 0xcb7e jumptext UnknownText_0xcb81 ; 0xcb81 UnknownText_0xcb81: ; 0xcb81 text_jump UnknownText_0x1c06a3 db "@" ; 0xcb86 UnknownScript_0xcb86: ; 0xcb86 loadfont 2writetext UnknownText_0xcb90 yesorno iftrue UnknownScript_0xcb20 loadmovesprites end ; 0xcb90 UnknownText_0xcb90: ; 0xcb90 text_jump UnknownText_0x1c06bf db "@" ; 0xcb95 Functioncb95: ; cb95 call Functionc6ea ld a, $1 jr asm_cba1 Functioncb9c: ; cb9c call Functionc6ea ld a, $2 asm_cba1 ld [Buffer2], a .asm_cba4 ld hl, Tablecbb2 call Functionc6f5 jr nc, .asm_cba4 and $7f ld [$d0ec], a ret ; cbb2 Tablecbb2: ; cbb2 dw Functioncbb8 dw Functioncbd8 dw Functioncc06 ; cbb8 Functioncbb8: ; cbb8 call GetMapPermission cp $4 jr z, .asm_cbc6 cp $7 jr z, .asm_cbc6 .asm_cbc3 ld a, $2 ret .asm_cbc6 ld hl, $dca9 ld a, [hli] and a jr z, .asm_cbc3 ld a, [hli] and a jr z, .asm_cbc3 ld a, [hl] and a jr z, .asm_cbc3 ld a, $1 ret ; cbd8 Functioncbd8: ; cbd8 ld hl, $dca9 ld de, $d146 ld bc, $0003 call CopyBytes call GetPartyNick ld a, [Buffer2] cp $2 jr nz, .asm_cbf7 ld hl, UnknownScript_0xcc35 call Function31cd ld a, $81 ret .asm_cbf7 callba Function8ae4e ld hl, UnknownScript_0xcc2b call Function31cd ld a, $81 ret ; cc06 Functioncc06: ; cc06 ld a, [Buffer2] cp $2 jr nz, .asm_cc19 ld hl, UnknownText_0xcc26 call Function1d4f call Functiona80 call Function1c17 .asm_cc19 ld a, $80 ret ; cc1c UnknownText_0xcc1c: ; 0xcc1c ; used DIG! text_jump UnknownText_0x1c06de db "@" ; 0xcc21 UnknownText_0xcc21: ; 0xcc21 ; used an ESCAPE ROPE. text_jump UnknownText_0x1c06ed db "@" ; 0xcc26 UnknownText_0xcc26: ; 0xcc26 ; Can't use that here. text_jump UnknownText_0x1c0705 db "@" ; 0xcc2b UnknownScript_0xcc2b: ; 0xcc2b reloadmappart special $0035 2writetext UnknownText_0xcc21 2jump UnknownScript_0xcc3c ; 0xcc35 UnknownScript_0xcc35: ; 0xcc35 reloadmappart special $0035 2writetext UnknownText_0xcc1c UnknownScript_0xcc3c: ; 0xcc3c closetext loadmovesprites playsound SFX_WARP_TO applymovement $0, MovementData_0xcc59 3call UnknownScript_0x122c1 special $0000 writecode $8, $0 newloadmap $f5 playsound SFX_WARP_FROM applymovement $0, MovementData_0xcc5d end ; 0xcc59 MovementData_0xcc59: ; 0xcc59 step_wait5 turn_away_down hide_person step_end ; 0xcc5d MovementData_0xcc5d: ; 0xcc5d db $3c, $58 turn_away_down step_end ; 0xcc61 Functioncc61: ; cc61 call Functionc6ea .asm_cc64 ld hl, Tablecc72 call Functionc6f5 jr nc, .asm_cc64 and $7f ld [$d0ec], a ret ; cc72 Tablecc72: ; cc72 dw Functioncc78 dw Functioncc9c dw Functioncca8 ; cc78 Functioncc78: ; cc78 call GetMapPermission call CheckOutdoorMap jr z, .asm_cc82 jr .asm_cc99 .asm_cc82 ld a, [$dcb2] ld d, a ld a, [$dcb3] ld e, a callba IsSpawnPoint jr nc, .asm_cc99 ld a, c ld [$d001], a ld a, $1 ret .asm_cc99 ld a, $2 ret ; cc9c Functioncc9c: ; cc9c call GetPartyNick ld hl, UnknownScript_0xccbb call Function31cd ld a, $81 ret ; cca8 Functioncca8: ; cca8 ld hl, UnknownText_0xccb6 call Function1d67 ld a, $80 ret ; ccb1 UnknownText_0xccb1: ; 0xccb1 ; Return to the last #MON CENTER. text_jump UnknownText_0x1c071a db "@" ; 0xccb6 UnknownText_0xccb6: ; 0xccb6 ; Can't use that here. text_jump UnknownText_0x1c073b db "@" ; 0xccbb UnknownScript_0xccbb: ; 0xccbb reloadmappart special $0035 2writetext UnknownText_0xccb1 pause 60 reloadmappart loadmovesprites playsound SFX_WARP_TO applymovement $0, MovementData_0xcce1 3call UnknownScript_0x122c1 special $0000 writecode $8, $0 newloadmap $f4 playsound SFX_WARP_FROM applymovement $0, MovementData_0xcce3 end ; 0xcce1 MovementData_0xcce1: ; cce1 teleport_from step_end ; cce3 MovementData_0xcce3: ; cce3 teleport_to step_end ; cce5 Functioncce5: ; cce5 call Functionccee and $7f ld [$d0ec], a ret ; ccee Functionccee: ; ccee ; Strength ld de, ENGINE_PLAINBADGE call CheckBadge jr c, Functioncd06 jr Functioncd09 ; ccf8 Functionccf8: ; ccf8 ld hl, UnknownText_0xcd01 call Function1d67 ld a, $80 ret ; cd01 UnknownText_0xcd01: ; 0xcd01 text_jump UnknownText_0x1c0751 db "@" ; 0xcd06 Functioncd06: ; cd06 ld a, $80 ret ; cd09 Functioncd09: ; cd09 ld hl, UnknownScript_0xcd29 call Function31cd ld a, $81 ret ; cd12 Functioncd12: ; cd12 ld hl, BikeFlags set 0, [hl] ld a, [CurPartyMon] ld e, a ld d, 0 ; fallthrough ; cd1d Functioncd1d: ; cd1d ld hl, PartySpecies add hl, de ld a, [hl] ld [$d1ef], a call GetPartyNick ret ; cd29 UnknownScript_0xcd29: ; 0xcd29 reloadmappart special $0035 UnknownScript_0xcd2d: ; 0xcd2d 3callasm Functioncd12 2writetext UnknownText_0xcd41 copybytetovar $d1ef cry $0000 pause 3 2writetext UnknownText_0xcd46 loadmovesprites end ; 0xcd41 UnknownText_0xcd41: ; 0xcd41 text_jump UnknownText_0x1c0774 db $50 ; 0xcd46 UnknownText_0xcd46: ; 0xcd46 text_jump UnknownText_0x1c0788 db $50 ; 0xcd4b UnknownScript_0xcd4b: ; 0xcd4b 3callasm Functioncd78 iffalse UnknownScript_0xcd5f if_equal $1, UnknownScript_0xcd59 2jump UnknownScript_0xcd5c ; 0xcd59 UnknownScript_0xcd59: ; 0xcd59 jumptext UnknownText_0xcd73 ; 0xcd5c UnknownScript_0xcd5c: ; 0xcd5c jumptext UnknownText_0xcd6e ; 0xcd5f UnknownScript_0xcd5f: ; 0xcd5f loadfont 2writetext UnknownText_0xcd69 yesorno iftrue UnknownScript_0xcd2d loadmovesprites end ; 0xcd69 UnknownText_0xcd69: ; 0xcd69 ; A #MON may be able to move this. Want to use STRENGTH? text_jump UnknownText_0x1c07a0 db "@" ; 0xcd6e UnknownText_0xcd6e: ; 0xcd6e ; Boulders may now be moved! text_jump UnknownText_0x1c07d8 db "@" ; 0xcd73 UnknownText_0xcd73: ; 0xcd73 ; A #MON may be able to move this. text_jump UnknownText_0x1c07f4 db "@" ; 0xcd78 Functioncd78: ; cd78 ld d, $46 call CheckPartyMove jr c, .asm_cd92 ld de, $1d call CheckEngineFlag jr c, .asm_cd92 ld hl, BikeFlags ; $dbf5 bit 0, [hl] jr z, .asm_cd96 ld a, $2 jr .asm_cd99 .asm_cd92 ld a, $1 jr .asm_cd99 .asm_cd96 xor a jr .asm_cd99 .asm_cd99 ld [ScriptVar], a ; $c2dd ret ; cd9d Functioncd9d: ; cd9d call Functionc6ea .asm_cda0 ld hl, Jumptable_cdae call Functionc6f5 jr nc, .asm_cda0 and $7f ld [$d0ec], a ret ; cdae Jumptable_cdae: ; cdae dw Functioncdb4 dw Functioncdca dw Functioncdd3 ; cdb4 Functioncdb4: ; cdb4 ld de, ENGINE_GLACIERBADGE call CheckBadge jr c, .asm_cdc7 call Functioncdde jr c, .asm_cdc4 ld a, $1 ret .asm_cdc4 ld a, $2 ret .asm_cdc7 ld a, $80 ret ; cdca Functioncdca: ; cdca ld hl, UnknownScript_0xce0b call Function31cd ld a, $81 ret ; cdd3 Functioncdd3: ; cdd3 call Functionc779 ld a, $80 ret ; cdd9 UnknownText_0xcdd9: ; 0xcdd9 ; used WHIRLPOOL! text_jump UnknownText_0x1c0816 db "@" ; 0xcdde Functioncdde: ; cdde call GetFacingTileCoord ld c, a push de call CheckWhirlpoolTile pop de jr c, .asm_ce09 call Function2a66 ld c, [hl] push hl ld hl, Unknown_c8a4 call Functionc840 pop hl jr nc, .asm_ce09 ld a, l ld [$d1ec], a ld a, h ld [$d1ed], a ld a, b ld [$d1ee], a ld a, c ld [$d1ef], a xor a ret .asm_ce09 scf ret ; ce0b UnknownScript_0xce0b: ; 0xce0b reloadmappart special $0035 UnknownScript_0xce0f: ; 0xce0f 3callasm GetPartyNick 2writetext UnknownText_0xcdd9 reloadmappart 3callasm Functionce1d loadmovesprites end ; 0xce1d Functionce1d: ; ce1d ld hl, $d1ec ld a, [hli] ld h, [hl] ld l, a ld a, [$d1ee] ld [hl], a xor a ld [hBGMapMode], a call Function2173 ld a, [$d1ef] ld e, a callba Function8c7d4 call Function2879 call Function2914 ret ; ce3e TryWhirlpoolOW:: ; ce3e ld d, WHIRLPOOL call CheckPartyMove jr c, .asm_ce5c ld de, ENGINE_GLACIERBADGE call CheckEngineFlag jr c, .asm_ce5c call Functioncdde jr c, .asm_ce5c ld a, BANK(UnknownScript_0xce6e) ld hl, UnknownScript_0xce6e call CallScript scf ret .asm_ce5c ld a, BANK(UnknownScript_0xce66) ld hl, UnknownScript_0xce66 call CallScript scf ret ; ce66 UnknownScript_0xce66: ; 0xce66 jumptext UnknownText_0xce69 ; 0xce69 UnknownText_0xce69: ; 0xce69 text_jump UnknownText_0x1c082b db "@" ; 0xce6e UnknownScript_0xce6e: ; 0xce6e loadfont 2writetext UnknownText_0xce78 yesorno iftrue UnknownScript_0xce0f loadmovesprites end ; 0xce78 UnknownText_0xce78: ; 0xce78 text_jump UnknownText_0x1c0864 db "@" ; 0xce7d Functionce7d: ; ce7d call Functionce86 and $7f ld [$d0ec], a ret ; ce86 Functionce86: ; ce86 call GetFacingTileCoord call CheckHeadbuttTreeTile jr nz, .asm_ce97 ld hl, UnknownScript_0xcea7 call Function31cd ld a, $81 ret .asm_ce97 call Functionc779 ld a, $80 ret ; ce9d UnknownText_0xce9d: ; 0xce9d ; did a HEADBUTT! text_jump UnknownText_0x1c0897 db "@" ; 0xcea2 UnknownText_0xcea2: ; 0xcea2 ; Nope. Nothing… text_jump UnknownText_0x1c08ac db "@" ; 0xcea7 UnknownScript_0xcea7: ; 0xcea7 reloadmappart special $0035 UnknownScript_0xceab: ; 0xceab 3callasm GetPartyNick 2writetext UnknownText_0xce9d reloadmappart 3callasm Function8c80a 3callasm Functionb81ea iffalse UnknownScript_0xcec3 loadmovesprites battlecheck startbattle returnafterbattle end ; 0xcec3 UnknownScript_0xcec3: ; 0xcec3 2writetext UnknownText_0xcea2 closetext loadmovesprites end ; 0xcec9 TryHeadbuttOW:: ; cec9 ld d, HEADBUTT call CheckPartyMove jr c, .asm_ceda ld a, BANK(UnknownScript_0xcedc) ld hl, UnknownScript_0xcedc call CallScript scf ret .asm_ceda xor a ret ; cedc UnknownScript_0xcedc: ; 0xcedc loadfont 2writetext UnknownText_0xcee6 yesorno iftrue UnknownScript_0xceab loadmovesprites end ; 0xcee6 UnknownText_0xcee6: ; 0xcee6 ; A #MON could be in this tree. Want to HEADBUTT it? text_jump UnknownText_0x1c08bc db "@" ; 0xceeb Functionceeb: ; ceeb call Functioncef4 and $7f ld [$d0ec], a ret ; cef4 Functioncef4: ; cef4 call Functioncf0d jr c, .asm_cf07 ld a, d cp $18 jr nz, .asm_cf07 ld hl, UnknownScript_0xcf2e call Function31cd ld a, $81 ret .asm_cf07 call Functionc779 ld a, $80 ret ; cf0d Functioncf0d: ; cf0d callba CheckFacingObject jr nc, .asm_cf2c ld a, [hConnectedMapWidth] call Function1ae5 ld hl, $0001 add hl, bc ld a, [hl] ld [$ffe0], a call GetMapObject ld hl, $0004 add hl, bc ld a, [hl] ld d, a and a ret .asm_cf2c scf ret ; cf2e UnknownScript_0xcf2e: ; 0xcf2e reloadmappart special $0035 UnknownScript_0xcf32: ; cf32 3callasm GetPartyNick 2writetext UnknownText_0xcf58 loadmovesprites special $003b playsound SFX_STRENGTH earthquake 84 applymovement2 MovementData_0xcf55 disappear $fe 3callasm Functionb8219 copybytetovar $d22e iffalse .done battlecheck startbattle returnafterbattle .done end ; 0xcf55 MovementData_0xcf55: ; 0xcf55 db $57, $0a step_end UnknownText_0xcf58: ; 0xcf58 text_jump UnknownText_0x1c08f0 db $50 ; 0xcf5d UnknownScript_0xcf5d: ; 0xcf5d 3callasm Functioncf7c if_equal $1, UnknownScript_0xcf6f loadfont 2writetext UnknownText_0xcf77 yesorno iftrue UnknownScript_0xcf32 loadmovesprites end ; 0xcf6f UnknownScript_0xcf6f: ; 0xcf6f jumptext UnknownText_0xcf72 ; 0xcf72 UnknownText_0xcf72: ; 0xcf72 ; Maybe a #MON can break this. text_jump UnknownText_0x1c0906 db "@" ; 0xcf77 UnknownText_0xcf77: ; 0xcf77 ; This rock looks breakable. Want to use ROCK SMASH? text_jump UnknownText_0x1c0924 db "@" ; 0xcf7c Functioncf7c: ; cf7c ld d, $f9 call CheckPartyMove jr nc, .asm_cf87 ld a, $1 jr .asm_cf8a .asm_cf87 xor a jr .asm_cf8a .asm_cf8a ld [ScriptVar], a ; $c2dd ret Functioncf8e: ; cf8e ld a, e push af call Functionc6ea pop af ld [Buffer2], a .asm_cf97 ld hl, Jumptable_cfa5 call Functionc6f5 jr nc, .asm_cf97 and $7f ld [$d0ec], a ret ; cfa5 Jumptable_cfa5: ; cfa5 dw Functioncfaf dw Functiond002 dw Functioncff4 dw Functioncff1 dw Functiond010 ; cfaf Functioncfaf: ; cfaf ld a, [PlayerState] cp $4 jr z, .asm_cfc4 cp $8 jr z, .asm_cfc4 call GetFacingTileCoord call GetTileCollision cp $1 jr z, .asm_cfc7 .asm_cfc4 ld a, $3 ret .asm_cfc7 call Function2d19 and a jr nz, .asm_cfd0 ld a, $4 ret .asm_cfd0 ld d, a ld a, [Buffer2] ld e, a callba FishAction ld a, d and a jr z, .asm_cfee ld [$d22e], a ld a, e ld [CurPartyLevel], a ld a, $4 ld [BattleType], a ld a, $2 ret .asm_cfee ld a, $1 ret ; cff1 Functioncff1: ; cff1 ld a, $80 ret ; cff4 Functioncff4: ; cff4 ld a, $1 ld [$d1ef], a ld hl, UnknownScript_0xd035 call Function31cd ld a, $81 ret ; d002 Functiond002: ; d002 ld a, $2 ld [$d1ef], a ld hl, UnknownScript_0xd01e call Function31cd ld a, $81 ret ; d010 Functiond010: ; d010 ld a, $0 ld [$d1ef], a ld hl, UnknownScript_0xd027 call Function31cd ld a, $81 ret ; d01e UnknownScript_0xd01e: ; 0xd01e 2call UnknownScript_0xd07c 2writetext UnknownText_0xd0a9 2jump UnknownScript_0xd02d ; 0xd027 UnknownScript_0xd027: ; 0xd027 2call UnknownScript_0xd07c 2writetext UnknownText_0xd0a9 UnknownScript_0xd02d: ; 0xd02d loademote $8 3callasm Functiond095 loadmovesprites end ; 0xd035 UnknownScript_0xd035: ; 0xd035 2call UnknownScript_0xd07c 3callasm Functiond06c iffalse UnknownScript_0xd046 applymovement $0, MovementData_0xd062 2jump UnknownScript_0xd04a ; 0xd046 UnknownScript_0xd046: ; 0xd046 applymovement $0, MovementData_0xd05c UnknownScript_0xd04a: ; 0xd04a pause 40 applymovement $0, MovementData_0xd069 2writetext UnknownText_0xd0a4 3callasm Functiond095 loadmovesprites battlecheck startbattle returnafterbattle end ; 0xd05c MovementData_0xd05c: ; d05c db $51 db $51 db $51 db $51 show_emote step_end ; d062 MovementData_0xd062: ; d062 db $51 db $51 db $51 db $51 show_person show_emote step_end ; d069 MovementData_0xd069: ; d069 hide_emote db $52 step_end ; d06c Functiond06c: ; d06c ld a, [PlayerDirection] and $c cp $4 ld a, $1 jr z, .asm_d078 xor a .asm_d078 ld [ScriptVar], a ret ; d07c UnknownScript_0xd07c: ; 0xd07c reloadmappart loadvar $ffd4, $0 special $0035 loademote $9 3callasm Functionb84b3 loademote $0 applymovement $0, MovementData_0xd093 pause 40 end ; 0xd093 MovementData_0xd093: ; d093 db $52 step_end ; d095 Functiond095: ; d095 xor a ld [hBGMapMode], a ld a, $1 ld [PlayerAction], a call Function1ad2 call Functione4a ret ; d0a4 UnknownText_0xd0a4: ; 0xd0a4 ; Oh! A bite! text_jump UnknownText_0x1c0958 db "@" ; 0xd0a9 UnknownText_0xd0a9: ; 0xd0a9 ; Not even a nibble! text_jump UnknownText_0x1c0965 db "@" ; 0xd0ae UnknownText_0xd0ae: ; 0xd0ae ; Looks like there's nothing here. text_jump UnknownText_0x1c0979 db "@" ; 0xd0b3 Functiond0b3: ; d0b3 call Functiond0bc and $7f ld [$d0ec], a ret ; d0bc Functiond0bc: ; d0bc call Functiond121 jr c, .asm_d110 ld a, [PlayerState] cp $0 jr z, .asm_d0ce cp $1 jr z, .asm_d0f7 jr .asm_d110 .asm_d0ce ld hl, UnknownScript_0xd13e ld de, UnknownScript_0xd14e call Functiond119 call Function31cd xor a ld [MusicFade], a ld de, MUSIC_NONE call PlayMusic call DelayFrame call MaxVolume ld de, MUSIC_BICYCLE ld a, e ld [CurMusic], a call PlayMusic ld a, $1 ret .asm_d0f7 ld hl, BikeFlags bit 1, [hl] jr nz, .asm_d10b ld hl, UnknownScript_0xd158 ld de, UnknownScript_0xd16b call Functiond119 ld a, $3 jr .asm_d113 .asm_d10b ld hl, UnknownScript_0xd171 jr .asm_d113 .asm_d110 ld a, $0 ret .asm_d113 call Function31cd ld a, $1 ret ; d119 Functiond119: ; d119 ld a, [$d0ef] and a ret z ld h, d ld l, e ret ; d121 Functiond121: ; d121 call GetMapPermission call CheckOutdoorMap jr z, .asm_d133 cp CAVE jr z, .asm_d133 cp GATE jr z, .asm_d133 jr .asm_d13c .asm_d133 call Function184a and $f jr nz, .asm_d13c xor a ret .asm_d13c scf ret ; d13e UnknownScript_0xd13e: ; 0xd13e reloadmappart special $0035 writecode $8, $1 2writetext UnknownText_0xd17c closetext loadmovesprites special $0038 end ; 0xd14e UnknownScript_0xd14e: ; 0xd14e writecode $8, $1 loadmovesprites special $0038 end ; 0xd156 INCBIN "baserom.gbc", $d156, $d158 - $d156 UnknownScript_0xd158: ; 0xd158 reloadmappart special $0035 writecode $8, $0 2writetext UnknownText_0xd181 closetext UnknownScript_0xd163 loadmovesprites special $0038 special $003c end ; 0xd16b UnknownScript_0xd16b: ; 0xd16b writecode $8, $0 2jump UnknownScript_0xd163 ; 0xd171 UnknownScript_0xd171: ; 0xd171 2writetext UnknownText_0xd177 closetext loadmovesprites end ; 0xd177 UnknownText_0xd177: ; 0xd177 ; You can't get off here! text_jump UnknownText_0x1c099a db "@" ; 0xd17c UnknownText_0xd17c: ; 0xd17c ; got on the @ . text_jump UnknownText_0x1c09b2 db "@" ; 0xd181 UnknownText_0xd181: ; 0xd181 ; got off the @ . text_jump UnknownText_0x1c09c7 db "@" ; 0xd186 TryCutOW:: ; d186 ld d, CUT call CheckPartyMove jr c, .asm_d19f ld de, ENGINE_HIVEBADGE call CheckEngineFlag jr c, .asm_d19f ld a, BANK(UnknownScript_0xd1a9) ld hl, UnknownScript_0xd1a9 call CallScript scf ret .asm_d19f ld a, BANK(UnknownScript_0xd1cd) ld hl, UnknownScript_0xd1cd call CallScript scf ret ; d1a9 UnknownScript_0xd1a9: ; 0xd1a9 loadfont 2writetext UnknownText_0xd1c8 yesorno iffalse .script_d1b8 3callasm Functiond1ba iftrue UnknownScript_0xc802 .script_d1b8 loadmovesprites end ; 0xd1ba Functiond1ba: ; d1ba xor a ld [ScriptVar], a call Functionc7ce ret c ld a, $1 ld [ScriptVar], a ret ; d1c8 UnknownText_0xd1c8: ; 0xd1c8 text_jump UnknownText_0x1c09dd db "@" ; 0xd1cd UnknownScript_0xd1cd: ; 0xd1cd jumptext UnknownText_0xd1d0 ; 0xd1d0 UnknownText_0xd1d0: ; 0xd1d0 text_jump UnknownText_0x1c0a05 db "@" ; 0xd1d5 _ReceiveItem:: ; d1d5 call Functiond27b jp nz, Functiond29c push hl call CheckItemPocket pop de ld a, [$d142] dec a ld hl, Tabled1e9 rst JumpTable ret ; d1e9 Tabled1e9: ; d1e9 dw Functiond1f1 dw Functiond1f6 dw Functiond1fb dw Functiond201 ; d1f1 Functiond1f1: ; d1f1 ld h, d ld l, e jp Functiond29c ; d1f6 Functiond1f6: ; d1f6 ld h, d ld l, e jp Functiond35a ; d1fb Functiond1fb: ; d1fb ld hl, NumBalls jp Functiond29c ; d201 Functiond201: ; d201 ld h, d ld l, e ld a, [CurItem] ld c, a call GetTMHMNumber jp Functiond3c4 ; d20d _TossItem:: ; d20d call Functiond27b jr nz, .asm_d241 push hl call CheckItemPocket pop de ld a, [$d142] dec a ld hl, .data_d220 rst JumpTable ret .data_d220 dw .Item dw .KeyItem dw .Ball dw .TMHM ; d228 .Ball ; d228 ld hl, NumBalls jp Functiond2ff ; d22e .TMHM ; d22e ld h, d ld l, e ld a, [CurItem] ld c, a call GetTMHMNumber jp Functiond3d8 ; d23a .KeyItem ; d23a ld h, d ld l, e jp Functiond374 ; d23f .Item ; d23f ld h, d ld l, e ; d241 .asm_d241 jp Functiond2ff ; d244 _CheckItem:: ; d244 call Functiond27b jr nz, .asm_d278 push hl call CheckItemPocket pop de ld a, [$d142] dec a ld hl, .data_d257 rst JumpTable ret .data_d257 dw .Item dw .KeyItem dw .Ball dw .TMHM ; d25f .Ball ; d25f ld hl, NumBalls jp Functiond349 ; d265 .TMHM ; d265 ld h, d ld l, e ld a, [CurItem] ld c, a call GetTMHMNumber jp Functiond3fb ; d271 .KeyItem ; d271 ld h, d ld l, e jp Functiond3b1 ; d276 .Item ; d276 ld h, d ld l, e ; d278 .asm_d278 jp Functiond349 ; d27b Functiond27b: ; d27b ld a, l cp TMsHMsEnd % $100 ret nz ld a, h cp TMsHMsEnd / $100 ret ; d283 Functiond283: ; d283 ld c, 20 ld a, e cp TMsHMsEnd % $100 jr nz, .asm_d28e ld a, d cp TMsHMsEnd / $100 ret z .asm_d28e ld c, 50 ld a, e cp BallsEnd % $100 jr nz, .asm_d299 ld a, d cp BallsEnd / $100 ret z .asm_d299 ld c, $c ret ; d29c Functiond29c: ; d29c ld d, h ld e, l inc hl ld a, [CurItem] ld c, a ld b, 0 .asm_d2a5 ld a, [hli] cp $ff jr z, .asm_d2bd cp c jr nz, .asm_d2ba ld a, $63 sub [hl] add b ld b, a ld a, [$d10c] cp b jr z, .asm_d2c6 jr c, .asm_d2c6 .asm_d2ba inc hl jr .asm_d2a5 .asm_d2bd call Functiond283 ld a, [de] cp c jr c, .asm_d2c6 and a ret .asm_d2c6 ld h, d ld l, e ld a, [CurItem] ld c, a ld a, [$d10c] ld [$d10d], a .asm_d2d2 inc hl ld a, [hli] cp $ff jr z, .asm_d2ef cp c jr nz, .asm_d2d2 ld a, [$d10d] add [hl] cp $64 jr nc, .asm_d2e6 ld [hl], a jr .asm_d2fd .asm_d2e6 ld [hl], $63 sub $63 ld [$d10d], a jr .asm_d2d2 .asm_d2ef dec hl ld a, [CurItem] ld [hli], a ld a, [$d10d] ld [hli], a ld [hl], $ff ld h, d ld l, e inc [hl] .asm_d2fd scf ret ; d2ff Functiond2ff: ; d2ff ld d, h ld e, l ld a, [hli] ld c, a ld a, [$d107] cp c jr nc, .asm_d318 ld c, a ld b, $0 add hl, bc add hl, bc ld a, [CurItem] cp [hl] inc hl jr z, .asm_d327 ld h, d ld l, e inc hl .asm_d318 ld a, [CurItem] ld b, a .asm_d31c ld a, [hli] cp b jr z, .asm_d327 cp $ff jr z, .asm_d347 inc hl jr .asm_d31c .asm_d327 ld a, [$d10c] ld b, a ld a, [hl] sub b jr c, .asm_d347 ld [hl], a ld [$d10d], a and a jr nz, .asm_d345 dec hl ld b, h ld c, l inc hl inc hl .asm_d33b ld a, [hli] ld [bc], a inc bc cp $ff jr nz, .asm_d33b ld h, d ld l, e dec [hl] .asm_d345 scf ret .asm_d347 and a ret ; d349 Functiond349: ; d349 ld a, [CurItem] ld c, a .asm_d34d inc hl ld a, [hli] cp $ff jr z, .asm_d358 cp c jr nz, .asm_d34d scf ret .asm_d358 and a ret ; d35a Functiond35a: ; d35a ld hl, NumKeyItems ld a, [hli] cp $19 jr nc, .asm_d372 ld c, a ld b, $0 add hl, bc ld a, [CurItem] ld [hli], a ld [hl], $ff ld hl, NumKeyItems inc [hl] scf ret .asm_d372 and a ret ; d374 Functiond374: ; d374 ld a, [$d107] ld e, a ld d, $0 ld hl, NumKeyItems ld a, [hl] cp e jr nc, .asm_d387 call Functiond396 ret nc jr .asm_d38a .asm_d387 dec [hl] inc hl add hl, de .asm_d38a ld d, h ld e, l inc hl .asm_d38d ld a, [hli] ld [de], a inc de cp $ff jr nz, .asm_d38d scf ret ; d396 Functiond396: ; d396 ld hl, NumKeyItems ld a, [CurItem] ld c, a .asm_d39d inc hl ld a, [hl] cp c jr z, .asm_d3a8 cp $ff jr nz, .asm_d39d xor a ret .asm_d3a8 ld a, [NumKeyItems] dec a ld [NumKeyItems], a scf ret ; d3b1 Functiond3b1: ; d3b1 ld a, [CurItem] ld c, a ld hl, KeyItems .asm_d3b8 ld a, [hli] cp c jr z, .asm_d3c2 cp $ff jr nz, .asm_d3b8 and a ret .asm_d3c2 scf ret ; d3c4 Functiond3c4: ; d3c4 dec c ld b, $0 ld hl, TMsHMs add hl, bc ld a, [$d10c] add [hl] cp $64 jr nc, .asm_d3d6 ld [hl], a scf ret .asm_d3d6 and a ret ; d3d8 Functiond3d8: ; d3d8 dec c ld b, $0 ld hl, TMsHMs add hl, bc ld a, [$d10c] ld b, a ld a, [hl] sub b jr c, .asm_d3f9 ld [hl], a ld [$d10d], a jr nz, .asm_d3f7 ld a, [$d0e2] and a jr z, .asm_d3f7 dec a ld [$d0e2], a .asm_d3f7 scf ret .asm_d3f9 and a ret ; d3fb Functiond3fb: ; d3fb dec c ld b, $0 ld hl, TMsHMs add hl, bc ld a, [hl] and a ret z scf ret ; d407 GetTMHMNumber:: ; d407 ; Return the number of a TM/HM by item id c. ld a, c ; Skip any dummy items. cp $c3 ; TM04-05 jr c, .done cp $dc ; TM28-29 jr c, .skip dec a .skip dec a .done sub TM_01 inc a ld c, a ret ; d417 GetNumberedTMHM: ; d417 ; Return the item id of a TM/HM by number c. ld a, c ; Skip any gaps. cp 5 jr c, .done cp 29 jr c, .skip inc a .skip inc a .done add TM_01 dec a ld c, a ret ; d427 _CheckTossableItem:: ; d427 ; Return 1 in $d142 and carry if CurItem can't be removed from the bag. ld a, 4 call GetItemAttr bit 7, a jr nz, Functiond47f and a ret ; d432 CheckSelectableItem: ; d432 ; Return 1 in $d142 and carry if CurItem can't be selected. ld a, 4 call GetItemAttr bit 6, a jr nz, Functiond47f and a ret ; d43d CheckItemPocket:: ; d43d ; Return the pocket for CurItem in $d142. ld a, 5 call GetItemAttr and $f ld [$d142], a ret ; d448 CheckItemContext: ; d448 ; Return the context for CurItem in $d142. ld a, 6 call GetItemAttr and $f ld [$d142], a ret ; d453 CheckItemMenu: ; d453 ; Return the menu for CurItem in $d142. ld a, 6 call GetItemAttr swap a and $f ld [$d142], a ret ; d460 GetItemAttr: ; d460 ; Get attribute a of CurItem. push hl push bc ld hl, ItemAttributes ld c, a ld b, 0 add hl, bc xor a ld [$d142], a ld a, [CurItem] dec a ld c, a ld a, 7 call AddNTimes ld a, BANK(ItemAttributes) call GetFarByte pop bc pop hl ret ; d47f Functiond47f: ; d47f ld a, 1 ld [$d142], a scf ret ; d486 GetItemPrice: ; d486 ; Return the price of CurItem in de. push hl push bc ld a, $0 call GetItemAttr ld e, a ld a, $1 call GetItemAttr ld d, a pop bc pop hl ret ; d497 ; no known jump sources Functiond497:: ; d497 (3:5497) ld a, [$d150] and a ret z bit 7, a jr nz, .asm_d4a9 bit 6, a jr nz, .asm_d4b3 bit 5, a jr nz, .asm_d4b8 ret .asm_d4a9 ld a, $4 ld [$d13f], a call Functiond536 jr .asm_d4b8 .asm_d4b3 call Functiond511 jr .asm_d4b8 .asm_d4b8 call Functiond4e5 ld a, [$d14e] ld d, a ld a, [$d14f] ld e, a ld a, [$d14c] sub d ld [$d14c], a ld a, [$d14d] sub e ld [$d14d], a ret ; no known jump sources Functiond4d2:: ; d4d2 (3:54d2) ld a, [$d14e] ld d, a ld a, [$d14f] ld e, a ld a, [hSCX] ; $ff00+$cf add d ld [hSCX], a ; $ff00+$cf ld a, [hSCY] ; $ff00+$d0 add e ld [hSCY], a ; $ff00+$d0 ret ; known jump sources: d4b8 (3:54b8) Functiond4e5: ; d4e5 (3:54e5) ld hl, $d13f ld a, [hl] and a ret z dec [hl] ld a, [hl] ld hl, Jumptable_d4f2 rst JumpTable ret ; no known jump sources Jumptable_d4f2: ; d4f2 (3:54f2) dw Function2914 dw Function2879 dw Functiond509 dw Functiond510 dw Functiond508 dw Functiond508 dw Functiond508 dw Functiond508 dw Functiond508 dw Functiond508 dw Functiond508 ; no known jump sources Functiond508: ; d508 (3:5508) ret ; no known jump sources Functiond509: ; d509 (3:5509) callba Function10602e ret ; no known jump sources Functiond510: ; d510 (3:5510) ret ; known jump sources: d4b3 (3:54b3) Functiond511: ; d511 (3:5511) ld a, [$d151] and a jr nz, .asm_d51c ld hl, YCoord ; $dcb7 inc [hl] ret .asm_d51c cp $1 jr nz, .asm_d525 ld hl, YCoord ; $dcb7 dec [hl] ret .asm_d525 cp $2 jr nz, .asm_d52e ld hl, XCoord ; $dcb8 dec [hl] ret .asm_d52e cp $3 ret nz ld hl, XCoord ; $dcb8 inc [hl] ret ; known jump sources: d4ae (3:54ae) Functiond536: ; d536 (3:5536) ld a, [$d151] and a jr z, .asm_d549 cp $1 jr z, .asm_d553 cp $2 jr z, .asm_d55d cp $3 jr z, .asm_d567 ret .asm_d549 call Functiond571 call Function217a call Function2748 ret .asm_d553 call Functiond5a2 call Function217a call Function272a ret .asm_d55d call Functiond5d5 call Function217a call Function2771 ret .asm_d567 call Functiond5fe call Function217a call Function278f ret ; known jump sources: d549 (3:5549) Functiond571: ; d571 (3:5571) ld a, [$d152] add $40 ld [$d152], a jr nc, .asm_d586 ld a, [$d153] inc a and $3 or $98 ld [$d153], a .asm_d586 ld hl, $d196 inc [hl] ld a, [hl] cp $2 jr nz, .asm_d594 ld [hl], $0 call Functiond595 .asm_d594 ret ; known jump sources: d591 (3:5591) Functiond595: ; d595 (3:5595) ld hl, $d194 ld a, [MapWidth] add $6 add [hl] ld [hli], a ret nc inc [hl] ret ; known jump sources: d553 (3:5553) Functiond5a2: ; d5a2 (3:55a2) ld a, [$d152] sub $40 ld [$d152], a jr nc, .asm_d5b7 ld a, [$d153] dec a and $3 or $98 ld [$d153], a .asm_d5b7 ld hl, $d196 dec [hl] ld a, [hl] cp $ff jr nz, .asm_d5c5 ld [hl], $1 call Functiond5c6 .asm_d5c5 ret ; known jump sources: d5c2 (3:55c2) Functiond5c6: ; d5c6 (3:55c6) ld hl, $d194 ld a, [MapWidth] add $6 ld b, a ld a, [hl] sub b ld [hli], a ret nc dec [hl] ret ; known jump sources: d55d (3:555d) Functiond5d5: ; d5d5 (3:55d5) ld a, [$d152] ld e, a and $e0 ld d, a ld a, e sub $2 and $1f or d ld [$d152], a ld hl, $d197 dec [hl] ld a, [hl] cp $ff jr nz, .asm_d5f3 ld [hl], $1 call Functiond5f4 .asm_d5f3 ret ; known jump sources: d5f0 (3:55f0) Functiond5f4: ; d5f4 (3:55f4) ld hl, $d194 ld a, [hl] sub $1 ld [hli], a ret nc dec [hl] ret ; known jump sources: d567 (3:5567) Functiond5fe: ; d5fe (3:55fe) ld a, [$d152] ld e, a and $e0 ld d, a ld a, e add $2 and $1f or d ld [$d152], a ld hl, $d197 inc [hl] ld a, [hl] cp $2 jr nz, .asm_d61c ld [hl], $0 call Functiond61d .asm_d61c ret ; known jump sources: d619 (3:5619) Functiond61d: ; d61d (3:561d) ld hl, $d194 ld a, [hl] add $1 ld [hli], a ret nc inc [hl] ret Functiond627: ; d627 call Functiond65f jr c, .asm_d645 call Functiond670 .asm_d62f push bc push hl call Functiond6e2 pop hl pop bc push af push bc push hl call Functiond730 call Functiond7c9 pop hl pop bc pop af jr nc, .asm_d62f ret .asm_d645 call Functiond670 .asm_d648 push bc push hl call Functiond6f5 pop hl pop bc ret c push af push bc push hl call Functiond749 call Functiond7c9 pop hl pop bc pop af jr nc, .asm_d648 ret ; d65f Functiond65f: ; d65f ld a, [Buffer2] and a jr nz, .asm_d66e ld a, [Buffer1] cp $30 jr nc, .asm_d66e and a ret .asm_d66e scf ret ; d670 Functiond670: ; d670 push hl ld hl, Buffer1 ld a, [hli] ld e, a ld a, [hli] ld d, a ld a, [hli] ld c, a ld a, [hli] ld b, a pop hl call Functionc699 ld a, e ld [$d1f1], a ld a, [$d1ee] ld c, a ld a, [$d1ef] ld b, a ld a, [Buffer1] ld e, a ld a, [Buffer2] ld d, a call Functionc699 ld a, e ld [$d1f2], a push hl ld hl, $d1ec ld a, [hli] ld c, a ld a, [hli] ld b, a ld a, [hli] ld e, a ld a, [hli] ld d, a pop hl ld a, e sub c ld e, a ld a, d sbc b ld d, a jr c, .asm_d6c1 ld a, [$d1ec] ld [$d1f5], a ld a, [$d1ee] ld [$d1f6], a ld bc, $0001 jr .asm_d6d9 .asm_d6c1 ld a, [$d1ec] ld [$d1f6], a ld a, [$d1ee] ld [$d1f5], a ld a, e xor $ff inc a ld e, a ld a, d xor $ff ld d, a ld bc, rIE .asm_d6d9 ld a, d ld [$d1f3], a ld a, e ld [$d1f4], a ret ; d6e2 Functiond6e2: ; d6e2 ld hl, $d1f1 ld a, [$d1f2] cp [hl] jr nz, .asm_d6ed scf ret .asm_d6ed ld a, c add [hl] ld [hl], a call Functiond839 and a ret ; d6f5 Functiond6f5: ; d6f5 .asm_d6f5 ld hl, $d1ec ld a, [hli] ld e, a ld a, [hli] ld d, a ld a, e cp [hl] jr nz, .asm_d707 inc hl ld a, d cp [hl] jr nz, .asm_d707 scf ret .asm_d707 ld l, e ld h, d add hl, bc ld a, l ld [$d1ec], a ld a, h ld [$d1ed], a push hl push de push bc ld hl, Buffer1 ld a, [hli] ld e, a ld a, [hli] ld d, a ld a, [hli] ld c, a ld a, [hli] ld b, a call Functionc699 pop bc pop de pop hl ld a, e ld hl, $d1f1 cp [hl] jr z, .asm_d6f5 ld [hl], a and a ret ; d730 Functiond730: ; d730 call Functiond784 ld d, $6 ld a, [$d10a] and $1 ld b, a ld a, [$d1f1] ld e, a ld c, a push de call Functiond771 pop de call Functiond7b4 ret ; d749 Functiond749: ; d749 call Functiond784 ld a, [$d1ec] ld c, a ld a, [$d1ed] ld b, a ld a, [Buffer1] ld e, a ld a, [Buffer2] ld d, a call Functionc699 ld c, e ld d, $6 ld a, [$d10a] and $1 ld b, a push de call Functiond771 pop de call Functiond7b4 ret ; d771 Functiond771: ; d771 ld a, [$d10a] cp $2 jr nz, .asm_d780 ld a, $28 add l ld l, a ld a, $0 adc h ld h, a .asm_d780 call DrawHPBar ret ; d784 Functiond784: ; d784 ld a, [$d10a] and a ret z cp $1 jr z, .asm_d792 ld de, $0016 jr .asm_d795 .asm_d792 ld de, $0015 .asm_d795 push hl add hl, de ld a, $7f ld [hli], a ld [hli], a ld [hld], a dec hl ld a, [$d1ec] ld [$d087], a ld a, [$d1ed] ld [StringBuffer2], a ld de, StringBuffer2 ld bc, $0203 call PrintNum pop hl ret ; d7b4 Functiond7b4: ; d7b4 ld a, [hCGB] and a ret z ld hl, $d1f0 call SetHPPal ld a, [$d1f0] ld c, a callba Function8c43 ret ; d7c9 Functiond7c9: ; d7c9 ld a, [hCGB] and a jr nz, .asm_d7d5 call DelayFrame call DelayFrame ret .asm_d7d5 ld a, [$d10a] and a jr z, .asm_d829 cp $1 jr z, .asm_d82d ld a, [CurPartyMon] cp $3 jr nc, .asm_d7ea ld c, $0 jr .asm_d7ec .asm_d7ea ld c, $1 .asm_d7ec push af cp $2 jr z, .asm_d7ff cp $5 jr z, .asm_d7ff ld a, $2 ld [hBGMapMode], a ld a, c ld [hBGMapThird], a call DelayFrame .asm_d7ff ld a, $1 ld [hBGMapMode], a ld a, c ld [hBGMapThird], a call DelayFrame pop af cp $2 jr z, .asm_d813 cp $5 jr z, .asm_d813 ret .asm_d813 inc c ld a, $2 ld [hBGMapMode], a ld a, c ld [hBGMapThird], a call DelayFrame ld a, $1 ld [hBGMapMode], a ld a, c ld [hBGMapThird], a call DelayFrame ret .asm_d829 ld c, $0 jr .asm_d82f .asm_d82d ld c, $1 .asm_d82f call DelayFrame ld a, c ld [hBGMapThird], a call DelayFrame ret ; d839 Functiond839: ; d839 ld a, [Buffer1] ld c, a ld b, $0 ld hl, $0000 ld a, [$d1f1] cp $30 jr nc, .asm_d885 and a jr z, .asm_d880 call AddNTimes ld b, $0 .asm_d851 ld a, l sub $30 ld l, a ld a, h sbc $0 ld h, a jr c, .asm_d85e inc b jr .asm_d851 .asm_d85e push bc ld bc, $0080 add hl, bc pop bc ld a, l sub $30 ld l, a ld a, h sbc $0 ld h, a jr c, .asm_d86f inc b .asm_d86f ld a, [$d1f5] cp b jr nc, .asm_d87c ld a, [$d1f6] cp b jr c, .asm_d87c ld a, b .asm_d87c ld [$d1ec], a ret .asm_d880 xor a ld [$d1ec], a ret .asm_d885 ld a, [Buffer1] ld [$d1ec], a ret ; d88c Functiond88c: ; d88c ld de, PartyCount ld a, [MonType] and $f jr z, .asm_d899 ld de, OTPartyCount .asm_d899 ld a, [de] inc a cp $7 ret nc ld [de], a ld a, [de] ld [$ffae], a add e ld e, a jr nc, .asm_d8a7 inc d .asm_d8a7 ld a, [CurPartySpecies] ld [de], a inc de ld a, $ff ld [de], a ld hl, PartyMon1OT ld a, [MonType] and $f jr z, .asm_d8bc ld hl, OTPartyMon1OT .asm_d8bc ld a, [$ffae] dec a call SkipNames ld d, h ld e, l ld hl, PlayerName ld bc, $000b call CopyBytes ld a, [MonType] and a jr nz, .asm_d8f0 ld a, [CurPartySpecies] ld [$d265], a call GetPokemonName ld hl, PartyMon1Nickname ld a, [$ffae] dec a call SkipNames ld d, h ld e, l ld hl, StringBuffer1 ld bc, $000b call CopyBytes .asm_d8f0 ld hl, PartyMon1Species ld a, [MonType] and $f jr z, .asm_d8fd ld hl, OTPartyMon1Species .asm_d8fd ld a, [$ffae] dec a ld bc, $0030 call AddNTimes Functiond906: ; d906 ld e, l ld d, h push hl ld a, [CurPartySpecies] ld [CurSpecies], a call GetBaseData ld a, [BaseDexNo] ld [de], a inc de ld a, [IsInBattle] and a ld a, $0 jr z, .asm_d922 ld a, [EnemyMonItem] .asm_d922 ld [de], a inc de push de ld h, d ld l, e ld a, [IsInBattle] and a jr z, .asm_d943 ld a, [MonType] and a jr nz, .asm_d943 ld de, EnemyMonMove1 ld a, [de] inc de ld [hli], a ld a, [de] inc de ld [hli], a ld a, [de] inc de ld [hli], a ld a, [de] ld [hl], a jr .asm_d950 .asm_d943 xor a ld [hli], a ld [hli], a ld [hli], a ld [hl], a ld [MagikarpLength], a ld a, $1b call Predef .asm_d950 pop de inc de inc de inc de inc de ld a, [PlayerID] ld [de], a inc de ld a, [$d47c] ld [de], a inc de push de ld a, [CurPartyLevel] ld d, a callab Function50e47 pop de ld a, [hMultiplicand] ld [de], a inc de ld a, [$ffb5] ld [de], a inc de ld a, [$ffb6] ld [de], a inc de xor a ld b, $a .asm_d97a ld [de], a inc de dec b jr nz, .asm_d97a pop hl push hl ld a, [MonType] and $f jr z, .asm_d992 push hl callba GetTrainerDVs pop hl jr .asm_d9b5 .asm_d992 ld a, [CurPartySpecies] ld [$d265], a dec a push de call CheckCaughtMon ld a, [$d265] dec a call SetSeenAndCaughtMon pop de pop hl push hl ld a, [IsInBattle] and a jr nz, .asm_d9f3 call Random ld b, a call Random ld c, a .asm_d9b5 ld a, b ld [de], a inc de ld a, c ld [de], a inc de push hl push de inc hl inc hl call FillPP pop de pop hl inc de inc de inc de inc de ld a, $46 ld [de], a inc de xor a ld [de], a inc de ld [de], a inc de ld [de], a inc de ld a, [CurPartyLevel] ld [de], a inc de xor a ld [de], a inc de ld [de], a inc de ld bc, $000a add hl, bc ld a, $1 ld c, a ld b, $0 call Functione17b ld a, [$ffb5] ld [de], a inc de ld a, [$ffb6] ld [de], a inc de jr .asm_da29 .asm_d9f3 ld a, [EnemyMonAtkDefDV] ld [de], a inc de ld a, [EnemyMonSpdSpclDV] ld [de], a inc de push hl ld hl, EnemyMonPPMove1 ld b, $4 .asm_da03 ld a, [hli] ld [de], a inc de dec b jr nz, .asm_da03 pop hl ld a, $46 ld [de], a inc de xor a ld [de], a inc de ld [de], a inc de ld [de], a inc de ld a, [CurPartyLevel] ld [de], a inc de ld hl, EnemyMonStatus ld a, [hli] ld [de], a inc de ld a, [hli] ld [de], a inc de ld a, [hli] ld [de], a inc de ld a, [hl] ld [de], a inc de .asm_da29 ld a, [IsInBattle] dec a jr nz, .asm_da3b ld hl, EnemyMonMaxHPHi ld bc, $000c call CopyBytes pop hl jr .asm_da45 .asm_da3b pop hl ld bc, $000a add hl, bc ld b, $0 call Functione167 .asm_da45 ld a, [MonType] and $f jr nz, .asm_da6b ld a, [CurPartySpecies] cp $c9 jr nz, .asm_da6b ld hl, PartyMon1DVs ld a, [PartyCount] dec a ld bc, $0030 call AddNTimes ld a, $2d call Predef callab Functionfba18 .asm_da6b scf ret ; da6d FillPP: ; da6d push bc ld b, $4 .asm_da70 ld a, [hli] and a jr z, .asm_da8f dec a push hl push de push bc ld hl, Moves ld bc, Move2 - Move1 call AddNTimes ld de, StringBuffer1 ld a, BANK(Moves) call FarCopyBytes pop bc pop de pop hl ld a, [$d078] .asm_da8f ld [de], a inc de dec b jr nz, .asm_da70 pop bc ret ; da96 Functionda96: ; da96 ld hl, PartyCount ld a, [hl] cp $6 scf ret z inc a ld [hl], a ld c, a ld b, $0 add hl, bc ld a, [CurPartySpecies] ld [hli], a ld [hl], $ff ld hl, PartyMon1Species ld a, [PartyCount] dec a ld bc, $0030 call AddNTimes ld e, l ld d, h ld hl, TempMonSpecies call CopyBytes ld hl, PartyMon1OT ld a, [PartyCount] dec a call SkipNames ld d, h ld e, l ld hl, OTPartyMon1OT ld a, [CurPartyMon] call SkipNames ld bc, $000b call CopyBytes ld hl, PartyMon1Nickname ld a, [PartyCount] dec a call SkipNames ld d, h ld e, l ld hl, OTPartyMon1Nickname ld a, [CurPartyMon] call SkipNames ld bc, $000b call CopyBytes ld a, [CurPartySpecies] ld [$d265], a cp $fd jr z, .asm_db12 dec a call SetSeenAndCaughtMon ld hl, PartyMon1Happiness ld a, [PartyCount] dec a ld bc, $0030 call AddNTimes ld [hl], $46 .asm_db12 ld a, [CurPartySpecies] cp $c9 jr nz, .asm_db3d ld hl, PartyMon1DVs ld a, [PartyCount] dec a ld bc, $0030 call AddNTimes ld a, $2d call Predef callab Functionfba18 ld a, [$def4] and a jr nz, .asm_db3d ld a, [UnownLetter] ld [$def4], a .asm_db3d and a ret ; db3f Functiondb3f: ; db3f ld a, $1 call GetSRAMBank ld a, [$d10b] and a jr z, .asm_db60 cp $2 jr z, .asm_db60 cp $3 ld hl, BreedMon1Species jr z, .asm_db9b ld hl, BoxCount ld a, [hl] cp $14 jr nz, .asm_db69 jp Functiondcb1 .asm_db60 ld hl, PartyCount ld a, [hl] cp $6 jp z, Functiondcb1 .asm_db69 inc a ld [hl], a ld c, a ld b, $0 add hl, bc ld a, [$d10b] cp $2 ld a, [BreedMon1Species] jr z, .asm_db7c ld a, [CurPartySpecies] .asm_db7c ld [hli], a ld [hl], $ff ld a, [$d10b] dec a ld hl, PartyMon1Species ld bc, $0030 ld a, [PartyCount] jr nz, .asm_db97 ld hl, BoxMon1Species ld bc, $0020 ld a, [BoxCount] .asm_db97 dec a call AddNTimes .asm_db9b push hl ld e, l ld d, h ld a, [$d10b] and a ld hl, BoxMon1Species ld bc, $0020 jr z, .asm_dbb7 cp $2 ld hl, BreedMon1Species jr z, .asm_dbbd ld hl, PartyMon1Species ld bc, $0030 .asm_dbb7 ld a, [CurPartyMon] call AddNTimes .asm_dbbd ld bc, $0020 call CopyBytes ld a, [$d10b] cp $3 ld de, BreedMon1OT jr z, .asm_dbe2 dec a ld hl, PartyMon1OT ld a, [PartyCount] jr nz, .asm_dbdc ld hl, BoxMon1OT ld a, [BoxCount] .asm_dbdc dec a call SkipNames ld d, h ld e, l .asm_dbe2 ld hl, BoxMon1OT ld a, [$d10b] and a jr z, .asm_dbf5 ld hl, BreedMon1OT cp $2 jr z, .asm_dbfb ld hl, PartyMon1OT .asm_dbf5 ld a, [CurPartyMon] call SkipNames .asm_dbfb ld bc, $000b call CopyBytes ld a, [$d10b] cp $3 ld de, BreedMon1Nick jr z, .asm_dc20 dec a ld hl, PartyMon1Nickname ld a, [PartyCount] jr nz, .asm_dc1a ld hl, BoxMon1Nickname ld a, [BoxCount] .asm_dc1a dec a call SkipNames ld d, h ld e, l .asm_dc20 ld hl, BoxMon1Nickname ld a, [$d10b] and a jr z, .asm_dc33 ld hl, BreedMon1Nick cp $2 jr z, .asm_dc39 ld hl, PartyMon1Nickname .asm_dc33 ld a, [CurPartyMon] call SkipNames .asm_dc39 ld bc, $000b call CopyBytes pop hl ld a, [$d10b] cp $1 jr z, .asm_dca4 cp $3 jp z, .asm_dcac push hl srl a add $2 ld [MonType], a ld a, $1f call Predef callab Function50e1b ld a, d ld [CurPartyLevel], a pop hl ld b, h ld c, l ld hl, $001f add hl, bc ld [hl], a ld hl, $0024 add hl, bc ld d, h ld e, l ld hl, $000a add hl, bc push bc ld b, $1 call Functione167 pop bc ld a, [$d10b] and a jr nz, .asm_dcac ld hl, $0020 add hl, bc xor a ld [hl], a ld hl, $0022 add hl, bc ld d, h ld e, l ld a, [CurPartySpecies] cp $fd jr z, .asm_dc9e inc hl inc hl ld a, [hli] ld [de], a ld a, [hl] inc de ld [de], a jr .asm_dcac .asm_dc9e xor a ld [de], a inc de ld [de], a jr .asm_dcac .asm_dca4 ld a, [BoxCount] dec a ld b, a call Functiondcb6 .asm_dcac call CloseSRAM and a ret ; dcb1 Functiondcb1: ; dcb1 call CloseSRAM scf ret ; dcb6 Functiondcb6: ; dcb6 ld a, b ld hl, BoxMons ld bc, BoxMon2 - BoxMon1 call AddNTimes ld b, h ld c, l ld hl, BoxMon1PP - BoxMon1 add hl, bc push hl push bc ld de, TempMonPP ld bc, NUM_MOVES call CopyBytes pop bc ld hl, BoxMon1Moves - BoxMon1 add hl, bc push hl ld de, TempMonMoves ld bc, NUM_MOVES call CopyBytes pop hl pop de ld a, [$cfa9] push af ld a, [MonType] push af ld b, 0 .asm_dcec ld a, [hli] and a jr z, .asm_dd18 ld [TempMonMove1], a ld a, BOXMON ld [MonType], a ld a, b ld [$cfa9], a push bc push hl push de callba Functionf8ec pop de pop hl ld a, [$d265] ld b, a ld a, [de] and $c0 add b ld [de], a pop bc inc de inc b ld a, b cp NUM_MOVES jr c, .asm_dcec .asm_dd18 pop af ld [MonType], a pop af ld [$cfa9], a ret ; dd21 Functiondd21: ; dd21 ld a, [BreedMon1Species] ld [CurPartySpecies], a ld de, SFX_TRANSACTION call PlaySFX call WaitSFX call Functione698 ld a, b ld [DefaultFlypoint], a ld a, e ld [CurPartyLevel], a xor a ld [$d10b], a jp Functiondd64 ; dd42 Functiondd42: ; dd42 ld a, [BreedMon2Species] ld [CurPartySpecies], a ld de, SFX_TRANSACTION call PlaySFX call WaitSFX call Functione6b3 ld a, b ld [DefaultFlypoint], a ld a, e ld [CurPartyLevel], a ld a, $1 ld [$d10b], a jp Functiondd64 ; dd64 Functiondd64: ; dd64 ld hl, PartyCount ld a, [hl] cp $6 jr nz, .asm_dd6e scf ret .asm_dd6e inc a ld [hl], a ld c, a ld b, $0 add hl, bc ld a, [$d10b] and a ld a, [BreedMon1Species] ld de, BreedMon1Nick jr z, .asm_dd86 ld a, [BreedMon2Species] ld de, BreedMon2Nick .asm_dd86 ld [hli], a ld [CurSpecies], a ld a, $ff ld [hl], a ld hl, PartyMon1Nickname ld a, [PartyCount] dec a call SkipNames push hl ld h, d ld l, e pop de call CopyBytes push hl ld hl, PartyMon1OT ld a, [PartyCount] dec a call SkipNames ld d, h ld e, l pop hl call CopyBytes push hl call Functionde1a pop hl ld bc, $0020 call CopyBytes call GetBaseData call Functionde1a ld b, d ld c, e ld hl, $001f add hl, bc ld a, [CurPartyLevel] ld [hl], a ld hl, $0024 add hl, bc ld d, h ld e, l ld hl, $000a add hl, bc push bc ld b, $1 call Functione167 ld hl, PartyMon1Move1 ld a, [PartyCount] dec a ld bc, $0030 call AddNTimes ld d, h ld e, l ld a, $1 ld [Buffer1], a ld a, $1b call Predef ld a, [PartyCount] dec a ld [CurPartyMon], a callba Functionc677 ld a, [CurPartyLevel] ld d, a callab Function50e47 pop bc ld hl, $0008 add hl, bc ld a, [hMultiplicand] ld [hli], a ld a, [$ffb5] ld [hli], a ld a, [$ffb6] ld [hl], a and a ret ; de1a Functionde1a: ; de1a ld a, [PartyCount] dec a ld hl, PartyMon1Species ld bc, $0030 call AddNTimes ld d, h ld e, l ret ; de2a Functionde2a: ; de2a ld de, BreedMon1Nick call Functionde44 xor a ld [$d10b], a jp Functione039 ; de37 Functionde37: ; de37 ld de, BreedMon2Nick call Functionde44 xor a ld [$d10b], a jp Functione039 ; de44 Functionde44: ; de44 ld a, [CurPartyMon] ld hl, PartyMon1Nickname call SkipNames call CopyBytes ld a, [CurPartyMon] ld hl, PartyMon1OT call SkipNames call CopyBytes ld a, [CurPartyMon] ld hl, PartyMon1Species ld bc, $0030 call AddNTimes ld bc, $0020 jp CopyBytes ; de6e Functionde6e: ; de6e ld a, 1 ; BANK(BoxCount) call GetSRAMBank ld de, BoxCount ld a, [de] cp 20 jp nc, Functiondf42 inc a ld [de], a ld a, [CurPartySpecies] ld [CurSpecies], a ld c, a .asm_de85 inc de ld a, [de] ld b, a ld a, c ld c, b ld [de], a inc a jr nz, .asm_de85 call GetBaseData call ShiftBoxMon ld hl, PlayerName ld de, BoxMonOT ld bc, BoxMon2OT - BoxMon1OT call CopyBytes ld a, [CurPartySpecies] ld [$d265], a call GetPokemonName ld de, BoxMon1Nickname ld hl, StringBuffer1 ld bc, BoxMon2Nickname - BoxMon1Nickname call CopyBytes ld hl, EnemyMon ld de, BoxMon1 ld bc, 6 ; species + item + moves call CopyBytes ld hl, PlayerID ld a, [hli] ld [de], a inc de ld a, [hl] ld [de], a inc de push de ld a, [CurPartyLevel] ld d, a callab Function50e47 pop de ld a, [hMultiplicand] ld [de], a inc de ld a, [$ffb5] ld [de], a inc de ld a, [$ffb6] ld [de], a inc de xor a ld b, $a .asm_dee5 ld [de], a inc de dec b jr nz, .asm_dee5 ld hl, EnemyMonAtkDefDV ld b, $6 .asm_deef ld a, [hli] ld [de], a inc de dec b jr nz, .asm_deef ld a, $46 ld [de], a inc de xor a ld [de], a inc de ld [de], a inc de ld [de], a inc de ld a, [CurPartyLevel] ld [de], a ld a, [CurPartySpecies] dec a call SetSeenAndCaughtMon ld a, [CurPartySpecies] cp UNOWN jr nz, .asm_df20 ld hl, BoxMon1DVs ld a, $2d call Predef callab Functionfba18 .asm_df20 ld hl, BoxMon1Moves ld de, TempMonMove1 ld bc, NUM_MOVES call CopyBytes ld hl, BoxMon1PP ld de, TempMonPP ld bc, NUM_MOVES call CopyBytes ld b, 0 call Functiondcb6 call CloseSRAM scf ret ; df42 Functiondf42: ; df42 call CloseSRAM and a ret ; df47 ShiftBoxMon: ; df47 ld hl, BoxMonOT ld bc, BoxMon2OT - BoxMon1OT call .asm_df5f ld hl, BoxMonNicknames ld bc, BoxMon2Nickname - BoxMon1Nickname call .asm_df5f ld hl, BoxMons ld bc, BoxMon2 - BoxMon1 .asm_df5f ld a, [BoxCount] cp 2 ret c push hl call AddNTimes dec hl ld e, l ld d, h pop hl ld a, [BoxCount] dec a call AddNTimes dec hl push hl ld a, [BoxCount] dec a ld hl, 0 call AddNTimes ld c, l ld b, h pop hl .loop ld a, [hld] ld [de], a dec de dec bc ld a, c or b jr nz, .loop ret ; df8c Functiondf8c:: ; df8c ld a, [CurPartySpecies] push af callab GetPreEvolution callab GetPreEvolution ld a, [CurPartySpecies] dec a push af call CheckCaughtMon pop af push bc call CheckSeenMon push bc call Functiond88c pop bc ld a, c and a jr nz, .asm_dfc3 ld a, [CurPartySpecies] dec a ld c, a ld d, $0 ld hl, PokedexCaught ld b, $0 ld a, $3 call Predef .asm_dfc3 pop bc ld a, c and a jr nz, .asm_dfd9 ld a, [CurPartySpecies] dec a ld c, a ld d, $0 ld hl, PokedexSeen ld b, $0 ld a, $3 call Predef .asm_dfd9 pop af ld [CurPartySpecies], a ld a, [PartyCount] dec a ld bc, $0030 ld hl, PartyMon1Species call AddNTimes ld a, [CurPartySpecies] ld [hl], a ld hl, PartyCount ld a, [hl] ld b, $0 ld c, a add hl, bc ld a, $fd ld [hl], a ld a, [PartyCount] dec a ld hl, PartyMon1Nickname call SkipNames ld de, Stringe035 call CopyName2 ld a, [PartyCount] dec a ld hl, PartyMon1Happiness ld bc, $0030 call AddNTimes ld a, [$c2cc] bit 1, a ld a, $1 jr nz, .asm_e022 ld a, [BaseEggSteps] .asm_e022 ld [hl], a ld a, [PartyCount] dec a ld hl, PartyMon1HP ld bc, $0030 call AddNTimes xor a ld [hli], a ld [hl], a and a ret ; e035 Stringe035: ; e035 db "EGG@" ; e039 Functione039: ; e039 ld hl, PartyCount ld a, [$d10b] and a jr z, .asm_e04a ld a, 1 ; BANK(BoxCount) call GetSRAMBank ld hl, BoxCount .asm_e04a ld a, [hl] dec a ld [hli], a ld a, [CurPartyMon] ld c, a ld b, 0 add hl, bc ld e, l ld d, h inc de .asm_e057 ld a, [de] inc de ld [hli], a inc a jr nz, .asm_e057 ld hl, PartyMon1OT ld d, $5 ld a, [$d10b] and a jr z, .asm_e06d ld hl, BoxMonOT ld d, $13 .asm_e06d ld a, [CurPartyMon] call SkipNames ld a, [CurPartyMon] cp d jr nz, .asm_e07e ld [hl], $ff jp .asm_60f0 .asm_e07e ld d, h ld e, l ld bc, $000b add hl, bc ld bc, PartyMon1Nickname ld a, [$d10b] and a jr z, .asm_e090 ld bc, BoxMonNicknames .asm_e090 call CopyDataUntil ld hl, PartyMons ld bc, PartyMon2 - PartyMon1 ld a, [$d10b] and a jr z, .asm_e0a5 ld hl, BoxMons ld bc, BoxMon2 - BoxMon1 .asm_e0a5 ld a, [CurPartyMon] call AddNTimes ld d, h ld e, l ld a, [$d10b] and a jr z, .asm_e0bc ld bc, BoxMon2 - BoxMon1 add hl, bc ld bc, BoxMonOT jr .asm_e0c3 .asm_e0bc ld bc, PartyMon2 - PartyMon1 add hl, bc ld bc, PartyMon1OT .asm_e0c3 call CopyDataUntil ld hl, PartyMon1Nickname ld a, [$d10b] and a jr z, .asm_e0d2 ld hl, BoxMonNicknames .asm_e0d2 ld bc, BoxMon2Nickname - BoxMon1Nickname ld a, [CurPartyMon] call AddNTimes ld d, h ld e, l ld bc, BoxMon2Nickname - BoxMon1Nickname add hl, bc ld bc, PartyMonNicknamesEnd ld a, [$d10b] and a jr z, .asm_e0ed ld bc, BoxMonNicknamesEnd .asm_e0ed call CopyDataUntil .asm_60f0 ld a, [$d10b] and a jp nz, CloseSRAM ld a, [InLinkBattle] and a ret nz ld a, $0 call GetSRAMBank ld hl, PartyCount ld a, [CurPartyMon] cp [hl] jr z, .asm_e131 ld hl, $a600 ld bc, $002f call AddNTimes push hl add hl, bc pop de ld a, [CurPartyMon] ld b, a .asm_e11a push bc push hl ld bc, $002f call CopyBytes pop hl push hl ld bc, $002f add hl, bc pop de pop bc inc b ld a, [PartyCount] cp b jr nz, .asm_e11a .asm_e131 jp CloseSRAM ; e134 Functione134: ; e134 ld a, $1f call GetPartyParamLocation ld a, [hl] ld [$001f], a ld a, $0 call GetPartyParamLocation ld a, [hl] ld [CurSpecies], a call GetBaseData ld a, $24 call GetPartyParamLocation ld d, h ld e, l push de ld a, $a call GetPartyParamLocation ld b, $1 call Functione167 pop de ld a, $22 call GetPartyParamLocation ld a, [de] inc de ld [hli], a ld a, [de] ld [hl], a ret ; e167 Functione167: ; e167 ld c, $0 .asm_e169 inc c call Functione17b ld a, [$ffb5] ld [de], a inc de ld a, [$ffb6] ld [de], a inc de ld a, c cp $6 jr nz, .asm_e169 ret ; e17b Functione17b: ; e17b push hl push de push bc ld a, b ld d, a push hl ld hl, BaseHP dec hl ld b, $0 add hl, bc ld a, [hl] ld e, a pop hl push hl ld a, c cp $6 jr nz, .asm_e193 dec hl dec hl .asm_e193 sla c ld a, d and a jr z, .asm_e1a5 add hl, bc push de ld a, [hld] ld e, a ld d, [hl] callba GetSquareRoot pop de .asm_e1a5 srl c pop hl push bc ld bc, $000b add hl, bc pop bc ld a, c cp $2 jr z, .asm_e1e3 cp $3 jr z, .asm_e1ea cp $4 jr z, .asm_e1ef cp $5 jr z, .asm_e1f7 cp $6 jr z, .asm_e1f7 push bc ld a, [hl] swap a and $1 add a add a add a ld b, a ld a, [hli] and $1 add a add a add b ld b, a ld a, [hl] swap a and $1 add a add b ld b, a ld a, [hl] and $1 add b pop bc jr .asm_e1fb .asm_e1e3 ld a, [hl] swap a and $f jr .asm_e1fb .asm_e1ea ld a, [hl] and $f jr .asm_e1fb .asm_e1ef inc hl ld a, [hl] swap a and $f jr .asm_e1fb .asm_e1f7 inc hl ld a, [hl] and $f .asm_e1fb ld d, $0 add e ld e, a jr nc, .asm_e202 inc d .asm_e202 sla e rl d srl b srl b ld a, b add e jr nc, .asm_e20f inc d .asm_e20f ld [$ffb6], a ld a, d ld [$ffb5], a xor a ld [hMultiplicand], a ld a, [CurPartyLevel] ld [hMultiplier], a call Multiply ld a, [hMultiplicand] ld [hProduct], a ld a, [$ffb5] ld [hMultiplicand], a ld a, [$ffb6] ld [$ffb5], a ld a, $64 ld [hMultiplier], a ld a, $3 ld b, a call Divide ld a, c cp $1 ld a, $5 jr nz, .asm_e24e ld a, [CurPartyLevel] ld b, a ld a, [$ffb6] add b ld [$ffb6], a jr nc, .asm_e24c ld a, [$ffb5] inc a ld [$ffb5], a .asm_e24c ld a, $a .asm_e24e ld b, a ld a, [$ffb6] add b ld [$ffb6], a jr nc, .asm_e25b ld a, [$ffb5] inc a ld [$ffb5], a .asm_e25b ld a, [$ffb5] cp $4 jr nc, .asm_e26b cp $3 jr c, .asm_e273 ld a, [$ffb6] cp $e8 jr c, .asm_e273 .asm_e26b ld a, $3 ld [$ffb5], a ld a, $e7 ld [$ffb6], a .asm_e273 pop bc pop de pop hl ret ; e277 Functione277:: ; e277 push de push bc xor a ld [MonType], a call Functiond88c jr nc, .asm_e2b0 ld hl, PartyMon1Nickname ld a, [PartyCount] dec a ld [CurPartyMon], a call SkipNames ld d, h ld e, l pop bc ld a, b ld b, $0 push bc push de push af ld a, [CurItem] and a jr z, .asm_e2e1 ld a, [CurPartyMon] ld hl, PartyMon1Item ld bc, $0030 call AddNTimes ld a, [CurItem] ld [hl], a jr .asm_e2e1 .asm_e2b0 ld a, [CurPartySpecies] ld [TempEnemyMonSpecies], a callab LoadEnemyMon call Functionde6e jp nc, Functione3d4 ld a, $2 ld [MonType], a xor a ld [CurPartyMon], a ld de, $d050 pop bc ld a, b ld b, $1 push bc push de push af ld a, [CurItem] and a jr z, .asm_e2e1 ld a, [CurItem] ld [BoxMon1Item], a .asm_e2e1 ld a, [CurPartySpecies] ld [$d265], a ld [TempEnemyMonSpecies], a call GetPokemonName ld hl, StringBuffer1 ld de, $d050 ld bc, $000b call CopyBytes pop af and a jp z, .asm_e390 pop de pop bc pop hl push bc push hl ld a, [ScriptBank] call GetFarHalfword ld bc, $000b ld a, [ScriptBank] call FarCopyBytes pop hl inc hl inc hl ld a, [ScriptBank] call GetFarHalfword pop bc ld a, b and a push de push bc jr nz, .asm_e35e push hl ld a, [CurPartyMon] ld hl, PartyMon1OT call SkipNames ld d, h ld e, l pop hl .asm_e32f ld a, [ScriptBank] call GetFarByte ld [de], a inc hl inc de cp $50 jr nz, .asm_e32f ld a, [ScriptBank] call GetFarByte ld b, a push bc ld a, [CurPartyMon] ld hl, PartyMon1ID ld bc, $0030 call AddNTimes ld a, $3 ld [hli], a ld [hl], $e9 pop bc callba Function4dba3 jr .asm_e3b2 .asm_e35e ld a, $1 call GetSRAMBank ld de, BoxMon1OT .asm_e366 ld a, [ScriptBank] call GetFarByte ld [de], a inc hl inc de cp $50 jr nz, .asm_e366 ld a, [ScriptBank] call GetFarByte ld b, a ld hl, BoxMon1ID call Random ld [hli], a call Random ld [hl], a call CloseSRAM callba Function4db92 jr .asm_e3b2 .asm_e390 pop de pop bc push bc push de ld a, b and a jr z, .asm_e3a0 callba Function4db83 jr .asm_e3a6 .asm_e3a0 callba Function4db49 .asm_e3a6 callba Function4db3b pop de jr c, .asm_e3b2 call Functione3de .asm_e3b2 pop bc pop de ld a, b and a ret z ld hl, UnknownText_0xe3d9 call PrintText ld a, $1 call GetSRAMBank ld hl, $d050 ld de, BoxMon1Nickname ld bc, $000b call CopyBytes call CloseSRAM ld b, $1 ret ; e3d4 Functione3d4: ; e3d4 pop bc pop de ld b, $2 ret ; e3d9 UnknownText_0xe3d9: ; 0xe3d9 ; was sent to BILL's PC. text_jump UnknownText_0x1c0feb db "@" ; 0xe3de Functione3de: ; e3de push de call Function1d6e call Function2ed3 pop de push de ld b, $0 callba Function116c1 pop hl ld de, StringBuffer1 call InitName ld a, $4 ld hl, Function2b4d rst FarCall ret ; e3fd Functione3fd: ; e3fd call Functione40a ret c call Functione41c call Functione443 jp Functione43f ; known jump sources: e3fd (3:63fd) Functione40a: ; e40a (3:640a) ld a, [PartyCount] ; $dcd7 and a ret nz ld hl, UnknownText_0xe417 call Function1d67 scf ret ; e417 (3:6417) UnknownText_0xe417: ; 0xe417 ; You gotta have #MON to call! text_jump UnknownText_0x1c1006 db "@" ; 0xe41c ; known jump sources: e401 (3:6401) Functione41c: ; e41c (3:641c) xor a ld [hBGMapMode], a ; $ff00+$d4 call Function1d6e call ClearPCItemScreen ld hl, Options ; $cfcc ld a, [hl] push af set 4, [hl] ld hl, UnknownText_0xe43a call PrintText pop af ld [Options], a ; $cfcc call Functione58 ret ; e43a (3:643a) UnknownText_0xe43a: ; 0xe43a ; What? text_jump UnknownText_0x1c1024 db "@" ; 0xe43f ; known jump sources: e407 (3:6407) Functione43f: ; e43f (3:643f) call Function2b3c ret ; known jump sources: e404 (3:6404) Functione443: ; e443 (3:6443) ld hl, MenuDataHeader_0xe46f call LoadMenuDataHeader ld a, $1 .asm_e44b ld [$cf88], a call Function32f9 xor a ld [$cf76], a ld [hBGMapMode], a ; $ff00+$d4 call Function1e5d jr c, .asm_e46b ld a, [$cf88] push af ld a, [MenuSelection] ; $cf74 ld hl, Jumptable_e4ba rst JumpTable pop bc ld a, b jr nc, .asm_e44b .asm_e46b call Function1c17 ret ; e46f (3:646f) MenuDataHeader_0xe46f: ; 0xe46f db $40 ; flags db 00, 00 ; start coords db 17, 19 ; end coords dw MenuData2_0xe477 db 1 ; default option ; 0xe477 MenuData2_0xe477: ; 0xe477 db $80 ; flags db 0 ; items dw MenuItems_e4c4 dw Function1f79 dw Strings_e47f ; 0xe47f Strings_e47f: ; e47f db "WITHDRAW ", $e1, $e2, "@" db "DEPOSIT ", $e1, $e2, "@" db "CHANGE BOX@" db "MOVE ", $e1, $e2, " W/O MAIL@" db "SEE YA!@" ; no known jump sources Jumptable_e4ba: ; e4ba (3:64ba) dw Functione559 dw Functione4fe dw Functione583 dw Functione4cd dw Functione4cb ; e4c4 MenuItems_e4c4: ; e4c4 db 5 db 0 ; WITHDRAW db 1; DEPOSIT db 2 ; CHANGE BOX db 3 ; MOVE PKMN db 4 ; SEE YA! db -1 ; e4cb Functione4cb: ; e4cb scf ret ; e4cd Functione4cd: ; e4cd call Function1d6e callba Function44781 jr nc, .asm_e4e0 ld hl, UnknownText_0xe4f9 call PrintText jr .asm_e4f4 .asm_e4e0 callba Function14b34 jr c, .asm_e4f4 callba Functione2759 call Function222a call ClearPCItemScreen .asm_e4f4 call Function1c17 and a ret ; e4f9 UnknownText_0xe4f9: ; 0xe4f9 ; There is a #MON holding MAIL. Please remove the MAIL. text_jump UnknownText_0x1c102b db "@" ; 0xe4fe ; no known jump sources Functione4fe: ; e4fe (3:64fe) call Function1d6e callba Functione2391 call Function222a call ClearPCItemScreen call Function1c17 and a ret ; e512 (3:6512) Functione512: ; e512 ld a, [PartyCount] and a jr z, .asm_e51e cp $2 jr c, .asm_e526 and a ret .asm_e51e ld hl, UnknownText_0xe52e call Function1d67 scf ret .asm_e526 ld hl, UnknownText_0xe533 call Function1d67 scf ret ; e52e UnknownText_0xe52e: ; 0xe52e ; You don't have a single #MON! text_jump UnknownText_0x1c1062 db "@" ; 0xe533 UnknownText_0xe533: ; 0xe533 ; You can't deposit your last #MON! text_jump UnknownText_0x1c1080 db "@" ; 0xe538 Functione538: ; e538 ld hl, PartyMon1HP ld de, $0030 ld b, $0 .asm_e540 ld a, [CurPartyMon] cp b jr z, .asm_e54b ld a, [hli] or [hl] jr nz, .asm_e557 dec hl .asm_e54b inc b ld a, [PartyCount] cp b jr z, .asm_e555 add hl, de jr .asm_e540 .asm_e555 scf ret .asm_e557 and a ret ; e559 ; no known jump sources Functione559: ; e559 (3:6559) call Function1d6e callba Functione2583 call Function222a call ClearPCItemScreen call Function1c17 and a ret ; e56d (3:656d) Functione56d: ; e56d ld a, [PartyCount] cp $6 jr nc, .asm_e576 and a ret .asm_e576 ld hl, UnknownText_0xe57e call Function1d67 scf ret ; e57e UnknownText_0xe57e: ; 0xe57e ; You can't take any more #MON. text_jump UnknownText_0x1c10a2 db "@" ; 0xe583 ; no known jump sources Functione583: ; e583 (3:6583) callba Functione35aa and a ret ClearPCItemScreen: ; e58b call Function2ed3 xor a ld [hBGMapMode], a call WhiteBGMap call ClearSprites ld hl, TileMap ld bc, 18 * 20 ld a, " " call ByteFill hlcoord 0,0 ld bc, $0a12 call TextBox hlcoord 0,12 ld bc, $0412 call TextBox call Function3200 call Function32f9 ; load regular palettes? ret ; 0xe5bb Functione5bb: ; e5bb ld a, [CurPartyMon] ld hl, BoxMon1Species ld bc, $0020 call AddNTimes ld de, TempMonSpecies ld bc, $0020 ld a, $1 call GetSRAMBank call CopyBytes call CloseSRAM ret ; e5d9 Functione5d9: ; e5d9 ld a, [wCurBox] cp b jr z, .asm_e5f1 ld a, b ld hl, Unknown_e66e ld bc, $0003 call AddNTimes ld a, [hli] push af ld a, [hli] ld h, [hl] ld l, a pop af jr .asm_e5f6 .asm_e5f1 ld a, $1 ld hl, BoxCount .asm_e5f6 call GetSRAMBank ld a, [hl] ld bc, $0016 add hl, bc ld b, a ld c, $0 ld de, EnemyMoveAnimation ld a, b and a jr z, .asm_e66a .asm_e608 push hl push bc ld a, c ld bc, $0000 add hl, bc ld bc, $0020 call AddNTimes ld a, [hl] ld [de], a inc de ld [CurSpecies], a call GetBaseData pop bc pop hl push hl push bc ld a, c ld bc, $035c add hl, bc call SkipNames call CopyBytes pop bc pop hl push hl push bc ld a, c ld bc, $001f add hl, bc ld bc, $0020 call AddNTimes ld a, [hl] ld [de], a inc de pop bc pop hl push hl push bc ld a, c ld bc, $0015 add hl, bc ld bc, $0020 call AddNTimes ld a, [hli] and $f0 ld b, a ld a, [hl] and $f0 swap a or b ld b, a ld a, [BaseGender] cp b ld a, $1 jr c, .asm_e662 xor a .asm_e662 ld [de], a inc de pop bc pop hl inc c dec b jr nz, .asm_e608 .asm_e66a call CloseSRAM ret ; e66e Unknown_e66e: ; e66e dbw 2, $a000 dbw 2, $a450 dbw 2, $a8a0 dbw 2, $acf0 dbw 2, $b140 dbw 2, $b590 dbw 2, $b9e0 dbw 3, $a000 dbw 3, $a450 dbw 3, $a8a0 dbw 3, $acf0 dbw 3, $b140 dbw 3, $b590 dbw 3, $b9e0 ; e698 Functione698: ; e698 ld hl, BreedMon1Species ld de, TempMonSpecies ld bc, $0020 call CopyBytes callab Function50e1b ld a, [$df2b] ld b, a ld a, d ld e, a sub b ld d, a ret ; e6b3 Functione6b3: ; e6b3 ld hl, BreedMon2Species ld de, TempMonSpecies ld bc, $0020 call CopyBytes callab Function50e1b ld a, [$df64] ld b, a ld a, d ld e, a sub b ld d, a ret ; e6ce Functione6ce: ; e6ce ld a, [$df9c] and a jr z, .asm_e6ea ld [$d265], a callba Functioncc0c7 callba Functioncc000 lb bc, 14, 7 call PlaceYesNoBox ret c .asm_e6ea call Functione6fd ld a, [TempEnemyMonSpecies] ld [$d265], a call GetPokemonName ld hl, UnknownText_0xe71d call PrintText ret ; e6fd Functione6fd: ; e6fd ld a, [TempEnemyMonSpecies] ld [CurSpecies], a ld [CurPartySpecies], a call GetBaseData xor a ld bc, $0030 ld hl, $df9c call ByteFill xor a ld [MonType], a ld hl, $df9c jp Functiond906 ; e71d UnknownText_0xe71d: ; 0xe71d ; Caught @ ! text_jump UnknownText_0x1c10c0 db "@" ; 0xe722 INCLUDE "items/item_effects.asm" ; no known jump sources GetPokeBallWobble: ; f971 (3:7971) ; Returns whether a Poke Ball will wobble in the catch animation. ; Whether a Pokemon is caught is determined beforehand. push de ld a, [rSVBK] ld d, a push de ld a, 1 ; BANK(Buffer2) ld [rSVBK], a ld a, [Buffer2] inc a ld [Buffer2], a ; Wobble up to 3 times. cp 3 + 1 jr z, .finished ld a, [$c64e] and a ld c, 0 ; next jr nz, .done ld hl, WobbleChances ld a, [Buffer1] ld b, a .loop ld a, [hli] cp b jr nc, .checkwobble inc hl jr .loop .checkwobble ld b, [hl] call Random cp b ld c, 0 ; next jr c, .done ld c, 2 ; escaped jr .done .finished ld a, [$c64e] and a ld c, 1 ; caught jr nz, .done ld c, 2 ; escaped .done pop de ld e, a ld a, d ld [rSVBK], a ld a, e pop de ret ; f9ba (3:79ba) WobbleChances: ; f9ba ; catch rate, chance of wobbling / 255 db 1, 63 db 2, 75 db 3, 84 db 4, 90 db 5, 95 db 7, 103 db 10, 113 db 15, 126 db 20, 134 db 30, 149 db 40, 160 db 50, 169 db 60, 177 db 80, 191 db 100, 201 db 120, 211 db 140, 220 db 160, 227 db 180, 234 db 200, 240 db 220, 246 db 240, 251 db 254, 253 db 255, 255 ; f9ea Functionf9ea: ; f9ea ld a, $2 call GetPartyParamLocation ld a, [$d262] ld b, a ld c, $4 .asm_f9f5 ld a, [hli] cp b jr z, .asm_f9fe dec c jr nz, .asm_f9f5 and a ret .asm_f9fe ld hl, UnknownText_0xfa06 call PrintText scf ret ; fa06 UnknownText_0xfa06: ; 0xfa06 ; knows @ . text_jump UnknownText_0x1c5ea8 db "@" ; 0xfa0b SECTION "bank4", ROMX, BANK[$4] Function10000: ; 10000 ld hl, Options set 4, [hl] call Function1068a .asm_10008 call Functiona57 ld a, [$cf63] bit 7, a jr nz, .asm_1001a call Function10026 call DelayFrame jr .asm_10008 .asm_1001a ld a, [$cf65] ld [$d0d6], a ld hl, Options res 4, [hl] ret ; 10026 Function10026: ; 10026 ld a, [$cf63] ld hl, Jumptable_10030 call Function1086b jp [hl] ; 10030 ; no known jump sources Jumptable_10030: ; 10030 (4:4030) dw Function10046 dw Function10056 dw Function10067 dw Function10186 dw Function10198 dw Function10094 dw Function100a6 dw Function100d3 dw Function100e8 dw Function10874 dw Function1087e ; no known jump sources Function10046: ; 10046 (4:4046) xor a ld [hBGMapMode], a ; $ff00+$d4 call Function10955 ld a, [$cf64] ld [$cf63], a call Function10a40 ret ; no known jump sources Function10056: ; 10056 (4:4056) xor a ld [$cf65], a call Function10a36 call Function109bb call Function1089a call Function10866 ret ; no known jump sources Function10067: ; 10067 (4:4067) ld hl, MenuDataHeader_0x10a4f call Function1d3c ld a, [$d0d9] ld [$cf88], a ld a, [$d0df] ld [$d0e4], a call Function350c ld a, [$d0e4] ld [$d0df], a ld a, [$cfa9] ld [$d0d9], a ld b, $7 ld c, $3 call Function108d4 ret c call Function101c5 ret ; no known jump sources Function10094: ; 10094 (4:4094) ld a, $2 ld [$cf65], a call Function10a36 call Function109bb call Function1089a call Function10866 ret ; no known jump sources Function100a6: ; 100a6 (4:40a6) ld hl, MenuDataHeader_0x10a7f call Function1d3c ld a, [$d0da] ld [$cf88], a ld a, [$d0e0] ld [$d0e4], a call Function350c ld a, [$d0e4] ld [$d0e0], a ld a, [$cfa9] ld [$d0da], a ld b, $3 ld c, $7 call Function108d4 ret c call Function101c5 ret ; no known jump sources Function100d3: ; 100d3 (4:40d3) ld a, $3 ld [$cf65], a call Function10a36 call Function109bb xor a ld [hBGMapMode], a ; $ff00+$d4 call Function1089a call Function10866 ret ; no known jump sources Function100e8: ; 100e8 (4:40e8) callba Function2c76f ld b, $5 ld c, $1 call Function108d4 ret c callba _CheckTossableItem ld a, [$d142] and a jr nz, .asm_1010a ld hl, MenuDataHeader_0x1013b ld de, Jumptable_10153 jr .asm_10110 .asm_1010a ld hl, MenuDataHeader_0x10124 ld de, Jumptable_10137 .asm_10110 push de call LoadMenuDataHeader call Function1d81 call Function1c07 pop hl ret c ld a, [$cfa9] dec a call Function1086b jp [hl] ; 10124 (4:4124) MenuDataHeader_0x10124: ; 0x10124 db $40 ; flags db 07, 13 ; start coords db 11, 19 ; end coords dw MenuData2_0x1012c db 1 ; default option ; 0x1012c MenuData2_0x1012c: ; 0x1012c db $c0 ; flags db 2 ; items db "USE@" db "QUIT@" ; 0x10137 Jumptable_10137: ; 10137 dw Function10159 dw Function10492 ; 1013b MenuDataHeader_0x1013b: ; 0x1013b db $40 ; flags db 05, 13 ; start coords db 11, 19 ; end coords dw MenuData2_0x10143 db 1 ; default option ; 0x10143 MenuData2_0x10143: ; 0x10143 db $c0 ; flags db 3 ; items db "USE@" db "GIVE@" db "QUIT@" ; 0x10153 Jumptable_10153: ; 10153 dw Function10159 dw Function103fd dw Function10492 ; 10159 Function10159: ; 10159 callba Function2c7bf ret c callba Function2c7fb jr c, .asm_10179 ld hl, Options ; $cfcc ld a, [hl] push af res 4, [hl] callba Function2c867 pop af ld [Options], a ; $cfcc .asm_10179 xor a ld [hBGMapMode], a ; $ff00+$d4 call Function10955 call Function1089a call Function10a40 ret ; no known jump sources Function10186: ; 10186 (4:4186) ld a, $1 ld [$cf65], a call Function10a36 call Function109bb call Function1089a call Function10866 ret ; no known jump sources Function10198: ; 10198 (4:4198) ld hl, MenuDataHeader_0x10aaf call Function1d3c ld a, [$d0db] ld [$cf88], a ld a, [$d0e1] ld [$d0e4], a call Function350c ld a, [$d0e4] ld [$d0e1], a ld a, [$cfa9] ld [$d0db], a ld b, $1 ld c, $5 call Function108d4 ret c call Function101c5 ret ; known jump sources: 10090 (4:4090), 100cf (4:40cf), 101c1 (4:41c1) Function101c5: ; 101c5 (4:41c5) callba _CheckTossableItem ld a, [$d142] and a jr nz, .asm_101f9 callba CheckSelectableItem ld a, [$d142] and a jr nz, .asm_101eb callba CheckItemMenu ld a, [$d142] and a jr nz, .asm_10207 jr .asm_10227 .asm_101eb callba CheckItemMenu ld a, [$d142] and a jr nz, .asm_1020f jr .asm_1022f .asm_101f9 callba CheckSelectableItem ld a, [$d142] and a jr nz, .asm_10217 jr .asm_1021f .asm_10207 ld hl, MenuDataHeader_0x10249 ld de, Jumptable_1026a jr .asm_10235 .asm_1020f ld hl, MenuDataHeader_0x10274 ld de, Jumptable_10291 jr .asm_10235 .asm_10217 ld hl, MenuDataHeader_0x10299 ld de, Jumptable_102ac jr .asm_10235 .asm_1021f ld hl, MenuDataHeader_0x102b0 ld de, Jumptable_102c7 jr .asm_10235 .asm_10227 ld hl, MenuDataHeader_0x102cd ld de, Jumptable_102ea jr .asm_10235 .asm_1022f ld hl, MenuDataHeader_0x102f2 ld de, Jumptable_1030b .asm_10235 push de call LoadMenuDataHeader call Function1d81 call Function1c07 pop hl ret c ld a, [$cfa9] dec a call Function1086b jp [hl] ; 10249 (4:4249) MenuDataHeader_0x10249: ; 0x10249 db $40 ; flags db 01, 13 ; start coords db 11, 19 ; end coords dw MenuData2_0x10251 db 1 ; default option ; 0x10251 MenuData2_0x10251: ; 0x10251 db $c0 ; flags db 5 ; items db "USE@" db "GIVE@" db "TOSS@" db "SEL@" db "QUIT@" ; 0x1026a Jumptable_1026a: ; 1026a dw Function10311 dw Function103fd dw Function10364 dw Function103c2 dw Function10492 ; 10274 MenuDataHeader_0x10274: ; 0x10274 db $40 ; flags db 03, 13 ; start coords db 11, 19 ; end coords dw MenuData2_0x1027c db 1 ; default option ; 0x1027c MenuData2_0x1027c: ; 0x1027c db $c0 ; flags db 4 ; items db "USE@" db "GIVE@" db "TOSS@" db "QUIT@" ; 0x10291 Jumptable_10291: ; 10291 dw Function10311 dw Function103fd dw Function10364 dw Function10492 ; 10299 MenuDataHeader_0x10299: ; 0x10299 db $40 ; flags db 07, 13 ; start coords db 11, 19 ; end coords dw MenuData2_0x102a1 db 1 ; default option ; 0x102a1 MenuData2_0x102a1: ; 0x102a1 db $c0 ; flags db 2 ; items db "USE@" db "QUIT@" ; 0x102ac Jumptable_102ac: ; 102ac dw Function10311 dw Function10492 ; 102b0 MenuDataHeader_0x102b0: ; 0x102b0 db $40 ; flags db 05, 13 ; start coords db 11, 19 ; end coords dw MenuData2_0x102b8 db 1 ; default option ; 0x102b8 MenuData2_0x102b8: ; 0x102b8 db $c0 ; flags db 3 ; items db "USE@" db "SEL@" db "QUIT@" ; 0x102c7 Jumptable_102c7: ; 102c7 dw Function10311 dw Function103c2 dw Function10492 ; 102cd MenuDataHeader_0x102cd: ; 0x102cd db $40 ; flags db 03, 13 ; start coords db 11, 19 ; end coords dw MenuData2_0x102d5 db 1 ; default option ; 0x102d5 MenuData2_0x102d5: ; 0x102d5 db $c0 ; flags db 4 ; items db "GIVE@" db "TOSS@" db "SEL@" db "QUIT@" ; 0x102ea Jumptable_102ea: ; 102ea dw Function103fd dw Function10364 dw Function103c2 dw Function10492 ; 102f2 MenuDataHeader_0x102f2: ; 0x102f2 db $40 ; flags db 05, 13 ; start coords db 11, 19 ; end coords dw MenuData2_0x102fa db 1 ; default option ; 0x102fa MenuData2_0x102fa: ; 0x102fa db $c0 ; flags db 3 ; items db "GIVE@" db "TOSS@" db "QUIT@" ; 0x1030b Jumptable_1030b: ; 1030b dw Function103fd dw Function10364 dw Function10492 ; 10311 Function10311: ; 10311 callba CheckItemMenu ld a, [$d142] ld hl, Jumptable_1031f rst JumpTable ret ; 1031f ; no known jump sources Jumptable_1031f: ; 1031f (4:431f) dw Function1032d dw Function1032d dw Function1032d dw Function1032d dw Function10334 dw Function10338 dw Function10355 ; 1035c ; known jump sources: 1035c (4:435c) Function1032d: ; 1032d (4:432d) ld hl, UnknownText_0x10af3 call Function10889 ret ; no known jump sources Function10334: ; 10334 (4:4334) call DoItemEffect ret ; no known jump sources Function10338: ; 10338 (4:4338) ld a, [PartyCount] ; $dcd7 and a jr z, .asm_1034e call DoItemEffect xor a ld [hBGMapMode], a ; $ff00+$d4 call Function10955 call Function1089a call Function10a40 ret .asm_1034e ld hl, UnknownText_0x10af8 call Function10889 ret ; no known jump sources Function10355: ; 10355 (4:4355) call DoItemEffect ld a, [$d0ec] and a jr z, Function1032d ld a, $a ld [$cf63], a ret ; 10364 (4:4364) Function10364: ; 10364 ld hl, UnknownText_0x10ae4 call Function10889 callba Function24fbf push af call Function1c07 pop af jr c, .asm_1039c call Function10a1d ld hl, UnknownText_0x10ae9 call Function1d4f call YesNoBox push af call Function1c07 pop af jr c, .asm_1039c ld hl, NumItems ld a, [$d107] call TossItem call Function10a1d ld hl, UnknownText_0x10aee call Function10889 .asm_1039c ret ; 1039d Function1039d: ; 1039d ld a, [$cf65] and a jr z, .asm_103b2 dec a jr z, .asm_103aa dec a jr z, .asm_103ba ret .asm_103aa xor a ld [$d0db], a ld [$d0e1], a ret .asm_103b2 xor a ld [$d0d9], a ld [$d0df], a ret .asm_103ba xor a ld [$d0da], a ld [$d0e0], a ret ; 103c2 Function103c2: ; 103c2 callba CheckSelectableItem ld a, [$d142] and a jr nz, .asm_103f6 ld a, [$cf65] rrca rrca and $c0 ld b, a ld a, [$d107] inc a and $3f or b ld [WhichRegisteredItem], a ld a, [CurItem] ld [RegisteredItem], a call Function10a1d ld de, SFX_FULL_HEAL call WaitPlaySFX ld hl, UnknownText_0x10afd call Function10889 ret .asm_103f6 ld hl, UnknownText_0x10b02 call Function10889 ret ; 103fd Function103fd: ; 103fd ld a, [PartyCount] ; $dcd7 and a jp z, Function10486 ld a, [Options] ; $cfcc push af res 4, a ld [Options], a ; $cfcc ld a, $8 ld [PartyMenuActionText], a ; $d141 call WhiteBGMap callba Function5004f callba Function50405 callba Function503e0 .asm_10427 callba WritePartyMenuTilemap callba PrintPartyMenuText call WaitBGMap call Function32f9 call DelayFrame callba PartyMenuSelect jr c, .asm_10475 ld a, [CurPartySpecies] ; $d108 cp $fd jr nz, .asm_10453 ld hl, UnknownText_0x1048d call PrintText jr .asm_10427 .asm_10453 ld a, [$cf63] push af ld a, [$cf64] push af call GetCurNick ld hl, StringBuffer1 ; $d073 ld de, $d050 ld bc, $b call CopyBytes call Function12bd9 pop af ld [$cf64], a pop af ld [$cf63], a .asm_10475 pop af ld [Options], a ; $cfcc xor a ld [hBGMapMode], a ; $ff00+$d4 call Function10955 call Function1089a call Function10a40 ret ; known jump sources: 10401 (4:4401) Function10486: ; 10486 (4:4486) ld hl, UnknownText_0x10af8 call Function10889 ret ; 1048d (4:448d) UnknownText_0x1048d: ; 0x1048d ; An EGG can't hold an item. text_jump UnknownText_0x1c0b7f db "@" ; 0x10492 Function10492: ; 10492 ret ; 10493 Function10493: ; 10493 ld hl, Options set 4, [hl] call Function1068a .asm_1049b call Functiona57 ld a, [$cf63] bit 7, a jr nz, .asm_104ad call Function104b9 call DelayFrame jr .asm_1049b .asm_104ad ld a, [$cf65] ld [$d0d6], a ld hl, Options res 4, [hl] ret ; 104b9 Function104b9: ; 104b9 ld a, [$cf63] ld hl, Jumptable_104c3 call Function1086b jp [hl] ; 104c3 ; no known jump sources Jumptable_104c3: ; 104c3 (4:44c3) dw Function104d9 dw Function104e9 dw Function104fa dw Function10594 dw Function105a6 dw Function10527 dw Function10539 dw Function10566 dw Function10581 dw Function10874 dw Function1087e ; no known jump sources Function104d9: ; 104d9 (4:44d9) xor a ld [hBGMapMode], a ; $ff00+$d4 call Function10955 ld a, [$cf64] ld [$cf63], a call Function10a40 ret ; no known jump sources Function104e9: ; 104e9 (4:44e9) xor a ld [$cf65], a call Function10a36 call Function109bb call Function1089a call Function10866 ret ; no known jump sources Function104fa: ; 104fa (4:44fa) ld hl, MenuDataHeader_0x10a4f call Function1d3c ld a, [$d0d9] ld [$cf88], a ld a, [$d0df] ld [$d0e4], a call Function350c ld a, [$d0e4] ld [$d0df], a ld a, [$cfa9] ld [$d0d9], a ld b, $7 ld c, $3 call Function108d4 ret c call Function105d3 ret ; no known jump sources Function10527: ; 10527 (4:4527) ld a, $2 ld [$cf65], a call Function10a36 call Function109bb call Function1089a call Function10866 ret ; no known jump sources Function10539: ; 10539 (4:4539) ld hl, MenuDataHeader_0x10a7f call Function1d3c ld a, [$d0da] ld [$cf88], a ld a, [$d0e0] ld [$d0e4], a call Function350c ld a, [$d0e4] ld [$d0e0], a ld a, [$cfa9] ld [$d0da], a ld b, $3 ld c, $7 call Function108d4 ret c call Function105d3 ret ; no known jump sources Function10566: ; 10566 (4:4566) ld a, $3 ld [$cf65], a call Function10a36 call Function109bb xor a ld [hBGMapMode], a ; $ff00+$d4 call Function1089a ld hl, UnknownText_0x10b0c call Function10889 call Function10866 ret ; no known jump sources Function10581: ; 10581 (4:4581) callba Function2c76f ld b, $5 ld c, $1 call Function108d4 ret c xor a call Function105dc ret ; no known jump sources Function10594: ; 10594 (4:4594) ld a, $1 ld [$cf65], a call Function10a36 call Function109bb call Function1089a call Function10866 ret ; no known jump sources Function105a6: ; 105a6 (4:45a6) ld hl, MenuDataHeader_0x10aaf call Function1d3c ld a, [$d0db] ld [$cf88], a ld a, [$d0e1] ld [$d0e4], a call Function350c ld a, [$d0e4] ld [$d0e1], a ld a, [$cfa9] ld [$d0db], a ld b, $1 ld c, $5 call Function108d4 ret c call Function105d3 ret ; known jump sources: 10523 (4:4523), 10562 (4:4562), 105cf (4:45cf) Function105d3: ; 105d3 (4:45d3) callba CheckItemContext ld a, [$d142] ; known jump sources: 10590 (4:4590) Function105dc: ; 105dc (4:45dc) and a jr z, .asm_105e7 ld hl, MenuDataHeader_0x10601 ld de, Jumptable_10614 jr .asm_105ed .asm_105e7 ld hl, MenuDataHeader_0x10618 ld de, Jumptable_10627 .asm_105ed push de call LoadMenuDataHeader call Function1d81 call Function1c07 pop hl ret c ld a, [$cfa9] dec a call Function1086b jp [hl] ; 10601 (4:4601) MenuDataHeader_0x10601: ; 0x10601 db $40 ; flags db 07, 13 ; start coords db 11, 19 ; end coords dw MenuData2_0x10609 db 1 ; default option ; 0x10609 MenuData2_0x10609: ; 0x10609 db $c0 ; flags db 2 ; items db "USE@" db "QUIT@" ; 0x10614 Jumptable_10614: ; 10614 dw Function10629 dw Function10689 ; 10618 MenuDataHeader_0x10618: ; 0x10618 db $40 ; flags db 09, 13 ; start coords db 11, 19 ; end coords dw MenuData2_0x10620 db 1 ; default option ; 0x10620 MenuData2_0x10620: ; 0x10620 db $c0 ; flags db 1 ; items db "QUIT@" ; 0x10627 Jumptable_10627: ; 10627 dw Function10689 ; 10629 Function10629: ; 10629 callba CheckItemContext ld a, [$d142] ld hl, Jumptable_10637 rst JumpTable ret ; no known jump sources Jumptable_10637: ; 10637 (4:4637) dw Function10645 dw Function10645 dw Function10645 dw Function10645 dw Function1064c dw Function10656 dw Function10671 ; known jump sources: 10678 (4:4678) Function10645: ; 10645 (4:4645) ld hl, UnknownText_0x10af3 call Function10889 ret ; no known jump sources Function1064c: ; 1064c (4:464c) call DoItemEffect ld a, [$d0ec] and a jr nz, asm_1066c ret ; no known jump sources Function10656: ; 10656 (4:4656) call DoItemEffect ld a, [$d0ec] and a jr nz, asm_1067e xor a ld [hBGMapMode], a ; $ff00+$d4 call Function10955 call Function1089a call Function10a40 ret asm_1066c: ; 1066c (4:466c) call WhiteBGMap jr asm_1067e ; no known jump sources Function10671: ; 10671 (4:4671) call DoItemEffect ld a, [$d0ec] and a jr z, Function10645 cp $2 jr z, asm_10684 asm_1067e: ; 1067e (4:467e) ld a, $a ld [$cf63], a ret asm_10684: ; 10684 (4:4684) xor a ld [$d0ec], a ret ; 10689 (4:4689) Function10689: ; 10689 ret ; 1068a Function1068a: ; 1068a xor a ld [$cf63], a ld a, [$d0d6] and $3 ld [$cf65], a inc a add a dec a ld [$cf64], a xor a ld [$cf66], a xor a ld [$d0e3], a ret ; 106a5 Function106a5: ; 106a5 xor a ld [hBGMapMode], a ld [$cf63], a ld [$cf64], a ld [$cf65], a ld [$cf66], a ld [$d0e3], a call Function10955 call Function10a40 ret ; 106be Function106be: ; 106be .asm_106be call Function106c7 call Function1076f jr c, .asm_106be ret ; 106c7 Function106c7: ; 106c7 ld a, [$cf63] ld hl, Jumptable_106d1 call Function1086b jp [hl] ; 106d1 ; no known jump sources Jumptable_106d1: ; 106d1 (4:46d1) dw Function106d9 dw Function1073b dw Function106ff dw Function10726 ; no known jump sources Function106d9: ; 106d9 (4:46d9) xor a call Function10762 ld hl, MenuDataHeader_0x10a67 call Function1d3c ld a, [$d0d9] ld [$cf88], a ld a, [$d0df] ld [$d0e4], a call Function350c ld a, [$d0e4] ld [$d0df], a ld a, [$cfa9] ld [$d0d9], a ret ; no known jump sources Function106ff: ; 106ff (4:46ff) ld a, $2 call Function10762 ld hl, MenuDataHeader_0x10a97 call Function1d3c ld a, [$d0da] ld [$cf88], a ld a, [$d0e0] ld [$d0e4], a call Function350c ld a, [$d0e4] ld [$d0e0], a ld a, [$cfa9] ld [$d0da], a ret ; no known jump sources Function10726: ; 10726 (4:4726) ld a, $3 call Function10762 call Function1089a callba Function2c76f ld a, [CurItem] ; $d106 ld [CurItem], a ; $d106 ret ; no known jump sources Function1073b: ; 1073b (4:473b) ld a, $1 call Function10762 ld hl, MenuDataHeader_0x10ac7 call Function1d3c ld a, [$d0db] ld [$cf88], a ld a, [$d0e1] ld [$d0e4], a call Function350c ld a, [$d0e4] ld [$d0e1], a ld a, [$cfa9] ld [$d0db], a ret ; known jump sources: 106da (4:46da), 10701 (4:4701), 10728 (4:4728), 1073d (4:473d), 10828 (4:4828), 1085b (4:485b) Function10762: ; 10762 (4:4762) ld [$cf65], a call Function10a36 call Function109bb call Function1089a ret Function1076f: ; 1076f ld hl, $cf73 ld a, [hl] and $1 jr nz, .asm_10788 ld a, [hl] and $2 jr nz, .asm_1078f ld a, [hl] and $20 jr nz, .asm_10795 ld a, [hl] and $10 jr nz, .asm_107a8 scf ret .asm_10788 ld a, $1 ld [$cf66], a and a ret .asm_1078f xor a ld [$cf66], a and a ret .asm_10795 ld a, [$cf63] dec a and $3 ld [$cf63], a push de ld de, SFX_UNKNOWN_62 call PlaySFX pop de scf ret .asm_107a8 ld a, [$cf63] inc a and $3 ld [$cf63], a push de ld de, SFX_UNKNOWN_62 call PlaySFX pop de scf ret ; 107bb Function107bb: ; 107bb call Function106a5 ld a, [InputType] or a jr z, .asm_107ca callba Function1de28f .asm_107ca call Function107d7 call Function1076f jr c, .asm_107ca xor a ld [$cf66], a ret ; 107d7 Function107d7: ; 107d7 ld a, [$cf63] ld hl, Jumptable_107e1 call Function1086b jp [hl] ; 107e1 ; no known jump sources Jumptable_107e1: ; 107e1 (4:47e1) dw Function107e9 dw Function1083b dw Function10807 dw Function10826 ; no known jump sources Function107e9: ; 107e9 (4:47e9) xor a ld hl, MenuDataHeader_0x107ef jr Function1085a ; 107ef (4:47ef) MenuDataHeader_0x107ef: ; 0x107ef db $40 ; flags db 01, 07 ; start coords db 11, 19 ; end coords dw MenuData2_0x107f7 db 1 ; default option ; 0x107f7 MenuData2_0x107f7: ; 0x107f7 db $ae ; flags db 5, 8 ; rows, columns db 2 ; horizontal spacing dbw 0, $d288 dbw BANK(Function24ab4), Function24ab4 dbw BANK(Function24ac3), Function24ac3 dbw BANK(Function244c3), Function244c3 ; 10807 ; no known jump sources Function10807: ; 10807 (4:4807) ld a, $2 ld hl, MenuDataHeader_0x1080e jr Function1085a ; 1080e (4:480e) MenuDataHeader_0x1080e: ; 0x1080e db $40 ; flags db 01, 07 ; start coords db 11, 19 ; end coords dw MenuData2_0x10816 db 1 ; default option ; 0x10816 MenuData2_0x10816: ; 0x10816 db $ae ; flags db 5, 8 ; rows, columns db 1 ; horizontal spacing dbw 0, $d292 dbw BANK(Function24ab4), Function24ab4 dbw BANK(Function24ac3), Function24ac3 dbw BANK(Function244c3), Function244c3 ; 10826 ; no known jump sources Function10826: ; 10826 (4:4826) ld a, $3 call Function10762 call Function1089a callba Function2c76f ld a, [CurItem] ; $d106 ld [CurItem], a ; $d106 ret ; no known jump sources Function1083b: ; 1083b (4:483b) ld a, $1 ld hl, MenuDataHeader_0x10842 jr Function1085a ; 10842 (4:4842) MenuDataHeader_0x10842: ; 0x10842 db $40 ; flags db 01, 07 ; start coords db 11, 19 ; end coords dw MenuData2_0x1084a db 1 ; default option ; 0x1084a MenuData2_0x1084a: ; 0x1084a db $ae ; flags db 5, 8 ; rows, columns db 2 ; horizontal spacing dbw 0, $d2a6 dbw BANK(Function24ab4), Function24ab4 dbw BANK(Function24ac3), Function24ac3 dbw BANK(Function244c3), Function244c3 ; 1085a Function1085a: ; 1085a (4:485a) push hl call Function10762 pop hl call Function1d3c call Function350c ret ; known jump sources: 10063 (4:4063), 100a2 (4:40a2), 100e4 (4:40e4), 10194 (4:4194), 104f6 (4:44f6), 10535 (4:4535), 1057d (4:457d), 105a2 (4:45a2) Function10866: ; 10866 (4:4866) ld hl, $cf63 inc [hl] ret Function1086b: ; 1086b ld e, a ld d, 0 add hl, de add hl, de ld a, [hli] ld h, [hl] ld l, a ret ; 10874 ; no known jump sources Function10874: ; 10874 (4:4874) ld hl, $cf63 set 7, [hl] xor a ld [$cf66], a ret ; no known jump sources Function1087e: ; 1087e (4:487e) ld hl, $cf63 set 7, [hl] ld a, $1 ld [$cf66], a ret ; known jump sources: 10330 (4:4330), 10351 (4:4351), 10489 (4:4489), 1057a (4:457a), 10648 (4:4648), 1092c (4:492c) Function10889: ; 10889 (4:4889) ld a, [Options] ; $cfcc push af set 4, a ld [Options], a ; $cfcc call PrintText pop af ld [Options], a ; $cfcc ret ; known jump sources: 10060 (4:4060), 1009f (4:409f), 100e1 (4:40e1), 1017f (4:417f), 10191 (4:4191), 10347 (4:4347), 1047f (4:447f), 104f3 (4:44f3), 10532 (4:4532), 10574 (4:4574), 1059f (4:459f), 10665 (4:4665), 1072b (4:472b), 1076b (4:476b), 1082b (4:482b) Function1089a: ; 1089a (4:489a) call WaitBGMap Function1089d: ; 1089d ld a, [$cf65] and $3 ld e, a ld d, $0 ld a, [BattleType] cp $3 jr z, .asm_108b3 ld a, [PlayerGender] bit 0, a jr nz, .asm_108c5 .asm_108b3 ld hl, PackGFXPointers add hl, de add hl, de ld a, [hli] ld e, a ld d, [hl] ld hl, $9500 lb bc, BANK(PackGFX), 15 call Request2bpp ret .asm_108c5 callba Function48e81 ret ; 108cc PackGFXPointers: ; 108cc dw PackGFX + $f0 * 1 dw PackGFX + $f0 * 3 dw PackGFX + $f0 * 0 dw PackGFX + $f0 * 2 ; 108d4 ; known jump sources: 1008c (4:408c), 100cb (4:40cb), 100f2 (4:40f2), 101bd (4:41bd), 1051f (4:451f), 1055e (4:455e), 1058b (4:458b), 105cb (4:45cb) Function108d4: ; 108d4 (4:48d4) ld hl, $cf73 ld a, [$d0e3] and a jr nz, .asm_10931 ld a, [hl] and $1 jr nz, .asm_108f8 ld a, [hl] and $2 jr nz, .asm_108fa ld a, [hl] and $20 jr nz, .asm_10901 ld a, [hl] and $10 jr nz, .asm_10912 ld a, [hl] and $4 jr nz, .asm_10923 scf ret .asm_108f8 and a ret .asm_108fa ld a, $9 ld [$cf63], a scf ret .asm_10901 ld a, b ld [$cf63], a ld [$cf64], a push de ld de, SFX_UNKNOWN_62 call PlaySFX pop de scf ret .asm_10912 ld a, c ld [$cf63], a ld [$cf64], a push de ld de, SFX_UNKNOWN_62 call PlaySFX pop de scf ret .asm_10923 callba Function2490c ld hl, UnknownText_0x10b07 call Function10889 scf ret .asm_10931 ld a, [hl] and $5 jr nz, .asm_1093d ld a, [hl] and $2 jr nz, .asm_1094f scf ret .asm_1093d callba Function2490c ld de, SFX_SWITCH_POKEMON call WaitPlaySFX ld de, SFX_SWITCH_POKEMON call WaitPlaySFX .asm_1094f xor a ld [$d0e3], a scf ret Function10955: ; 10955 call WhiteBGMap call ClearTileMap call ClearSprites call DisableLCD ld hl, PackMenuGFX ld de, VTiles2 ld bc, $0600 ld a, BANK(PackMenuGFX) call FarCopyBytes ld hl, $c4b4 ld bc, $00dc ld a, $24 call ByteFill ld hl, $c4b9 ld bc, $0b0f call ClearBox ld hl, TileMap ld a, $28 ld c, $14 .asm_1098a ld [hli], a inc a dec c jr nz, .asm_1098a call Function109bb call Function109a5 ld hl, $c590 ld bc, $0412 call TextBox call EnableLCD call Function1089d ret ; 109a5 Function109a5: ; 109a5 ld hl, $c4dc ld a, $50 ld de, 15 ld b, 3 .asm_109af ld c, 5 .asm_109b1 ld [hli], a inc a dec c jr nz, .asm_109b1 add hl, de dec b jr nz, .asm_109af ret ; 109bb Function109bb: ; 109bb ld a, [$cf65] ; * 15 ld d, a swap a sub d ld d, 0 ld e, a ld hl, Tilemap_109e1 add hl, de ld d, h ld e, l ld hl, $c52c ld c, 3 .asm_109d0 ld b, 5 .asm_109d2 ld a, [de] inc de ld [hli], a dec b jr nz, .asm_109d2 ld a, c ld c, 15 add hl, bc ld c, a dec c jr nz, .asm_109d0 ret ; 109e1 Tilemap_109e1: ; 109e1 db $00, $04, $04, $04, $01, $06, $07, $08, $09, $0a, $02, $05, $05, $05, $03 db $00, $04, $04, $04, $01, $15, $16, $17, $18, $19, $02, $05, $05, $05, $03 db $00, $04, $04, $04, $01, $0b, $0c, $0d, $0e, $0f, $02, $05, $05, $05, $03 db $00, $04, $04, $04, $01, $10, $11, $12, $13, $14, $02, $05, $05, $05, $03 ; 10a1d Function10a1d: ; 10a1d ld a, [CurItem] ld [$d265], a call GetItemName call CopyName1 ret ; 10a2a Function10a2a: ; 10a2a ld hl, TileMap ld bc, $0168 ld a, $7f call ByteFill ret ; 10a36 ; known jump sources: 1005a (4:405a), 10099 (4:4099), 100d8 (4:40d8), 1018b (4:418b), 104ed (4:44ed), 1052c (4:452c), 1056b (4:456b), 10599 (4:4599), 10765 (4:4765) Function10a36: ; 10a36 (4:4a36) ld hl, $c4cd ld bc, $a0f call ClearBox ret Function10a40: ; 10a40 call WaitBGMap ld b, $14 call GetSGBLayout call Function32f9 call DelayFrame ret ; 10a4f MenuDataHeader_0x10a4f: ; 0x10a4f db $40 ; flags db 01, 07 ; start coords db 11, 19 ; end coords dw MenuData2_0x10a57 db 1 ; default option ; 0x10a57 MenuData2_0x10a57: ; 0x10a57 db $ae ; flags db 5, 8 ; rows, columns db 2 ; horizontal spacing dbw 0, $d892 dbw BANK(Function24ab4), Function24ab4 dbw BANK(Function24ac3), Function24ac3 dbw BANK(Function244c3), Function244c3 ; 10a67 MenuDataHeader_0x10a67: ; 0x10a67 db $40 ; flags db 01, 07 ; start coords db 11, 19 ; end coords dw MenuData2_0x10a6f db 1 ; default option ; 0x10a6f MenuData2_0x10a6f: ; 0x10a6f db $2e ; flags db 5, 8 ; rows, columns db 2 ; horizontal spacing dbw 0, $d892 dbw BANK(Function24ab4), Function24ab4 dbw BANK(Function24ac3), Function24ac3 dbw BANK(Function244c3), Function244c3 ; 10a7f MenuDataHeader_0x10a7f: ; 0x10a7f db $40 ; flags db 01, 07 ; start coords db 11, 19 ; end coords dw MenuData2_0x10a87 db 1 ; default option ; 0x10a87 MenuData2_0x10a87: ; 0x10a87 db $ae ; flags db 5, 8 ; rows, columns db 1 ; horizontal spacing dbw 0, $d8bc dbw BANK(Function24ab4), Function24ab4 dbw BANK(Function24ac3), Function24ac3 dbw BANK(Function244c3), Function244c3 ; 10a97 MenuDataHeader_0x10a97: ; 0x10a97 db $40 ; flags db 01, 07 ; start coords db 11, 19 ; end coords dw MenuData2_0x10a9f db 1 ; default option ; 0x10a9f MenuData2_0x10a9f: ; 0x10a9f db $2e ; flags db 5, 8 ; rows, columns db 1 ; horizontal spacing dbw 0, $d8bc dbw BANK(Function24ab4), Function24ab4 dbw BANK(Function24ac3), Function24ac3 dbw BANK(Function244c3), Function244c3 ; 10aaf MenuDataHeader_0x10aaf: ; 0x10aaf db $40 ; flags db 01, 07 ; start coords db 11, 19 ; end coords dw MenuData2_0x10ab7 db 1 ; default option ; 0x10ab7 MenuData2_0x10ab7: ; 0x10ab7 db $ae ; flags db 5, 8 ; rows, columns db 2 ; horizontal spacing dbw 0, $d8d7 dbw BANK(Function24ab4), Function24ab4 dbw BANK(Function24ac3), Function24ac3 dbw BANK(Function244c3), Function244c3 ; 10ac7 MenuDataHeader_0x10ac7: ; 0x10ac7 db $40 ; flags db 01, 07 ; start coords db 11, 19 ; end coords dw MenuData2_0x10acf db 1 ; default option ; 0x10acf MenuData2_0x10acf: ; 0x10acf db $2e ; flags db 5, 8 ; rows, columns db 2 ; horizontal spacing dbw 0, $d8d7 dbw BANK(Function24ab4), Function24ab4 dbw BANK(Function24ac3), Function24ac3 dbw BANK(Function244c3), Function244c3 ; 10adf UnknownText_0x10adf: ; 0x10adf ; No items. text_jump UnknownText_0x1c0b9a db "@" ; 0x10ae4 UnknownText_0x10ae4: ; 0x10ae4 ; Throw away how many? text_jump UnknownText_0x1c0ba5 db "@" ; 0x10ae9 UnknownText_0x10ae9: ; 0x10ae9 ; Throw away @ @ (S)? text_jump UnknownText_0x1c0bbb db "@" ; 0x10aee UnknownText_0x10aee: ; 0x10aee ; Threw away @ (S). text_jump UnknownText_0x1c0bd8 db "@" ; 0x10af3 UnknownText_0x10af3: ; 0x10af3 ; OAK: ! This isn't the time to use that! text_jump UnknownText_0x1c0bee db "@" ; 0x10af8 UnknownText_0x10af8: ; 0x10af8 ; You don't have a #MON! text_jump UnknownText_0x1c0c17 db "@" ; 0x10afd UnknownText_0x10afd: ; 0x10afd ; Registered the @ . text_jump UnknownText_0x1c0c2e db "@" ; 0x10b02 UnknownText_0x10b02: ; 0x10b02 ; You can't register that item. text_jump UnknownText_0x1c0c45 db "@" ; 0x10b07 UnknownText_0x10b07: ; 0x10b07 ; Where should this be moved to? text_jump UnknownText_0x1c0c63 db "@" ; 0x10b0c UnknownText_0x10b0c: ; 0x10b0c ; text_jump UnknownText_0x1c0c83 db "@" ; 0x10b11 UnknownText_0x10b11: ; 0x10b11 ; You can't use it in a battle. text_jump UnknownText_0x1c0c85 db "@" ; 0x10b16 PackMenuGFX: INCBIN "gfx/misc/pack_menu.2bpp" PackGFX: INCBIN "gfx/misc/pack.w40.2bpp" Function113d6: ; 113d6 call Function114dd ret ; 113da Function113da: ; 113da xor a ld [$dc2d], a ld [$dc3a], a ld [$dc1c], a ret ; 113e5 Function113e5:: ; 113e5 xor a ld [$d464], a Function113e9: ; 113e9 ld a, [$d464] cp 3 jr c, .asm_113f2 ld a, 3 .asm_113f2 ld e, a ld d, 0 ld hl, .data_113fd add hl, de ld a, [hl] jp Function1142e ; 113fd .data_113fd db 20, 10, 5, 3 ; 11401 Function11401: ; 11401 call Function1143c ret nc ld hl, $d464 ld a, [hl] cp 3 jr nc, .asm_1140e inc [hl] .asm_1140e call Function113e9 scf ret ; 11413 Function11413: ; 11413 ld a, 1 Function11415: ; 11415 ld [hl], a push hl call UpdateTime pop hl inc hl call Function11621 ret ; 11420 Function11420: ; 11420 inc hl push hl call Function115cf call Function115c8 pop hl dec hl call Function11586 ret ; 1142e Function1142e: ; 1142e ld hl, $d465 ld [hl], a call UpdateTime ld hl, $d466 call Function1162e ret ; 1143c Function1143c: ; 1143c ld hl, $d466 call Function115d6 call Function115ae ld hl, $d465 call Function11586 ret ; 1144c Function1144c: ; 1144c ld hl, $dc1c jp Function11413 ; 11452 Function11452:: ; 11452 ld hl, $dc1c call Function11420 ret nc xor a ld hl, $dc1e ld [hli], a ld [hli], a ld [hli], a ld [hl], a ld hl, $dc4c ld [hli], a ld [hli], a ld [hli], a ld [hli], a ld hl, $dc50 ld [hli], a ld [hli], a ld [hli], a ld [hli], a ld hl, $dc54 ld [hli], a ld [hli], a ld [hli], a ld [hli], a ld hl, $dc58 ld a, [hl] and a jr z, .asm_11480 dec [hl] jr nz, .asm_11483 .asm_11480 call Function11485 .asm_11483 jr Function1144c ; 11485 Function11485: ; 11485 call Random and 3 add 3 ld [$dc58], a ret ; 11490 Function11490: ; 11490 ld a, $14 ld [$d46c], a ld a, $0 ld [$d46d], a call UpdateTime ld hl, $dc35 call Function11613 ret ; 114a4 ; no known jump sources Function114a4:: ; 114a4 (4:54a4) ld hl, $dc35 call Function115db ld a, [$cfd7] and a jr nz, .asm_114d4 ld a, [$cfd6] and a jr nz, .asm_114d4 ld a, [$cfd4] ld b, a ld a, [$d46d] sub b jr nc, .asm_114c2 add $3c .asm_114c2 ld [$d46d], a ld a, [$cfd5] ld b, a ld a, [$d46c] sbc b ld [$d46c], a jr c, .asm_114d4 and a ret .asm_114d4 xor a ld [$d46c], a ld [$d46d], a scf ret Function114dd: ; 114dd call UpdateTime ld hl, $dc23 call Function11621 ret ; 114e7 Function114e7:: ; 114e7 ld hl, $dc23 call Function115cf call Function115c8 and a jr z, .asm_114fa ld b, a callba ApplyPokerusTick .asm_114fa xor a ret ; 114fc Function114fc: ; 114fc ld a, $2 ld hl, $dc3a ld [hl], a call UpdateTime ld hl, $dc3b call Function11621 ret ; 1150c Function1150c: ; 1150c ld hl, $dc3b call Function115cf call Function115c8 ld hl, $dc3a call Function11586 ret ; 1151c Function1151c: ; 1151c ld hl, $dc1e set 2, [hl] ret ; 11522 Function11522: ; 11522 and a ld hl, $dc1e bit 2, [hl] ret nz scf ret ; 1152b Function1152b: ; 1152b call Function11534 ld hl, $dc2d jp Function11415 ; 11534 Function11534: ; 11534 call GetWeekday ld c, a ld a, $5 sub c jr z, .asm_1153f jr nc, .asm_11541 .asm_1153f add $7 .asm_11541 ret ; 11542 Function11542: ; 11542 ld hl, $dc2d jp Function11420 ; 11548 Function11548: ; 11548 ld a, $0 call GetSRAMBank ld hl, $abfa ld a, [hli] ld [Buffer1], a ld a, [hl] ld [Buffer2], a call CloseSRAM ld hl, Buffer1 call Function11420 jr nc, .asm_11572 ld hl, Buffer1 call Function11413 call CloseSRAM callba Function1050c8 .asm_11572 ld a, $0 call GetSRAMBank ld hl, Buffer1 ld a, [hli] ld [$abfa], a ld a, [hl] ld [$abfb], a call CloseSRAM ret ; 11586 Function11586: ; 11586 cp $ff jr z, .asm_11595 ld c, a ld a, [hl] sub c jr nc, .asm_11590 xor a .asm_11590 ld [hl], a jr z, .asm_11595 xor a ret .asm_11595 xor a ld [hl], a scf ret ; 11599 Function11599: ; 11599 ld a, [$cfd7] and a jr nz, Function115cc ld a, [$cfd6] and a jr nz, Function115cc ld a, [$cfd5] jr nz, Function115cc ld a, [$cfd4] ret ; 115ae Function115ae: ; 115ae ld a, [$cfd7] and a jr nz, Function115cc ld a, [$cfd6] and a jr nz, Function115cc ld a, [$cfd5] ret ; 115be Function115be: ; 115be ld a, [$cfd7] and a jr nz, Function115cc ld a, [$cfd6] ret ; 115c8 Function115c8: ; 115c8 ld a, [$cfd7] ret ; 115cc Function115cc: ; 115cc ld a, $ff ret ; 115cf Function115cf: ; 115cf xor a jr Function11605 ; 115d2 Function115d2: ; 115d2 inc hl xor a jr Function115f8 ; 115d6 Function115d6: ; 115d6 inc hl inc hl xor a jr Function115eb ; 115db Function115db: ; 115db inc hl inc hl inc hl ld a, [hSeconds] ld c, a sub [hl] jr nc, .asm_115e6 add 60 .asm_115e6 ld [hl], c dec hl ld [$cfd4], a Function115eb: ; 115eb ld a, [hMinutes] ld c, a sbc [hl] jr nc, .asm_115f3 add 60 .asm_115f3 ld [hl], c dec hl ld [$cfd5], a Function115f8: ; 115f8 ld a, [hHours] ld c, a sbc [hl] jr nc, .asm_11600 add 24 .asm_11600 ld [hl], c dec hl ld [$cfd6], a Function11605 ld a, [CurDay] ld c, a sbc [hl] jr nc, .asm_1160e add 140 .asm_1160e ld [hl], c ld [$cfd7], a ret ; 11613 Function11613: ; 11613 ld a, [CurDay] ld [hli], a ld a, [hHours] ld [hli], a ld a, [hMinutes] ld [hli], a ld a, [hSeconds] ld [hli], a ret ; 11621 Function11621: ; 11621 ld a, [CurDay] ld [hl], a ret ; 11626 Function11626: ; 11626 ld a, [CurDay] ld [hli], a ld a, [hHours] ld [hli], a ret ; 1162e Function1162e: ; 1162e ld a, [CurDay] ld [hli], a ld a, [hHours] ld [hli], a ld a, [hMinutes] ld [hli], a ret ; 11639 CanLearnTMHMMove: ; 11639 ld a, [CurPartySpecies] ld [CurSpecies], a call GetBaseData ld hl, BaseTMHM push hl ld a, [$d262] ld b, a ld c, 0 ld hl, TMHMMoves .loop ld a, [hli] and a jr z, .end cp b jr z, .asm_11659 inc c jr .loop .asm_11659 pop hl ld b, CHECK_FLAG push de ld d, 0 ld a, PREDEF_FLAG call Predef pop de ret .end pop hl ld c, 0 ret ; 1166a GetTMHMMove: ; 1166a ld a, [$d265] dec a ld hl, TMHMMoves ld b, 0 ld c, a add hl, bc ld a, [hl] ld [$d265], a ret ; 1167a TMHMMoves: ; 1167a db DYNAMICPUNCH db HEADBUTT db CURSE db ROLLOUT db ROAR db TOXIC db ZAP_CANNON db ROCK_SMASH db PSYCH_UP db HIDDEN_POWER db SUNNY_DAY db SWEET_SCENT db SNORE db BLIZZARD db HYPER_BEAM db ICY_WIND db PROTECT db RAIN_DANCE db GIGA_DRAIN db ENDURE db FRUSTRATION db SOLARBEAM db IRON_TAIL db DRAGONBREATH db THUNDER db EARTHQUAKE db RETURN db DIG db PSYCHIC_M db SHADOW_BALL db MUD_SLAP db DOUBLE_TEAM db ICE_PUNCH db SWAGGER db SLEEP_TALK db SLUDGE_BOMB db SANDSTORM db FIRE_BLAST db SWIFT db DEFENSE_CURL db THUNDERPUNCH db DREAM_EATER db DETECT db REST db ATTRACT db THIEF db STEEL_WING db FIRE_PUNCH db FURY_CUTTER db NIGHTMARE db CUT db FLY db SURF db STRENGTH db FLASH db WHIRLPOOL db WATERFALL ; Move tutor db FLAMETHROWER db THUNDERBOLT db ICE_BEAM db 0 ; end ; 116b7 Function116b7: ; 0x116b7 call Function2ed3 call Function116c1 call Function2b74 ret ; 0x116c1 Function116c1: ; 116c1 ld hl, PlayerSDefLevel ld [hl], e inc hl ld [hl], d ld hl, EnemyAtkLevel ld [hl], b ld hl, Options ld a, [hl] push af set 4, [hl] ld a, [$ffde] push af xor a ld [$ffde], a ld a, [$ffaa] push af ld a, $1 ld [$ffaa], a call Function116f8 call DelayFrame .asm_116e5 call Function11915 jr nc, .asm_116e5 pop af ld [$ffaa], a pop af ld [$ffde], a pop af ld [Options], a call ClearJoypad ret ; 116f8 Function116f8: ; 116f8 call WhiteBGMap ld b, $8 call GetSGBLayout call DisableLCD call Function11c51 call Function118a8 ld a, $e3 ld [rLCDC], a call Function1171d call WaitBGMap call WaitTop call Function32f9 call Function11be0 ret ; 1171d Function1171d: ; 1171d ld a, [EnemyAtkLevel] and 7 ld e, a ld d, 0 ld hl, Jumptable_1172e add hl, de add hl, de ld a, [hli] ld h, [hl] ld l, a jp [hl] ; 1172e ; no known jump sources Jumptable_1172e: ; 1172e (4:572e) dw Function1173e dw Function1178d dw Function117ae dw Function117d1 dw Function117f5 dw Function1182c dw Function1173e dw Function1173e ; no known jump sources Function1173e: ; 1173e (4:573e) ld a, [CurPartySpecies] ; $d108 ld [$d265], a ld hl, Function8e83f ld a, BANK(Function8e83f) ld e, $1 rst FarCall ; ; indirect jump to Function8e83f (8e83f (23:683f)) ld a, [CurPartySpecies] ; $d108 ld [$d265], a call GetPokemonName ld hl, $c4cd call PlaceString ld l, c ld h, b ld de, Strings_11780 call PlaceString inc de ld hl, $c4f5 call PlaceString callba GetGender jr c, .asm_1177c ld a, $ef jr nz, .asm_11778 ld a, $f5 .asm_11778 ld hl, $c4c9 ld [hl], a .asm_1177c call Function1187b ret ; 11780 (4:5780) Strings_11780: ; 11780 db "'S@" db "NICKNAME?@" ; 1178d ; no known jump sources Function1178d: ; 1178d (4:578d) callba GetPlayerIcon call Function11847 ld hl, $c4cd ld de, String_117a3 call PlaceString call Function11882 ret ; 117a3 (4:57a3) String_117a3: ; 117a3 db "YOUR NAME?@" ; 117ae ; no known jump sources Function117ae: ; 117ae (4:57ae) ld de, SilverSpriteGFX ld b, BANK(SilverSpriteGFX) call Function11847 ld hl, $c4cd ld de, String_117c3 call PlaceString call Function11882 ret ; 117c3 (4:57c3) String_117c3: ; 117c3 db "RIVAL'S NAME?@" ; 117d1 ; no known jump sources Function117d1: ; 117d1 (4:57d1) ld de, MomSpriteGFX ld b, BANK(MomSpriteGFX) call Function11847 ld hl, $c4cd ld de, String_117e6 call PlaceString call Function11882 ret ; 117e6 (4:57e6) String_117e6: ; 117e6 db "MOTHER'S NAME?@" ; 117f5 ; no known jump sources Function117f5: ; 117f5 (4:57f5) ld de, PokeBallSpriteGFX ld hl, $8000 lb bc, BANK(PokeBallSpriteGFX), $4 call Request2bpp xor a ld hl, $c300 ld [hli], a ld [hl], a ld de, $2420 ld a, $a call Function3b2a ld hl, $1 add hl, bc ld [hl], $0 ld hl, $c4cd ld de, String_11822 call PlaceString call Function11889 ret ; 11822 (4:5822) String_11822: ; 11822 db "BOX NAME?@" ; 1182c ; no known jump sources Function1182c: ; 1182c (4:582c) ld hl, $c4cb ld de, String_11839 call PlaceString call Function11882 ret ; 11839 (4:5839) String_11839: ; 11839 db "おともだち の なまえは?@" ; 11847 ; known jump sources: 11793 (4:5793), 117b3 (4:57b3), 117d6 (4:57d6) Function11847: ; 11847 (4:5847) push de ld hl, $8000 ld c, $4 push bc call Request2bpp pop bc ld hl, $c0 add hl, de ld e, l ld d, h ld hl, $8040 call Request2bpp xor a ld hl, $c300 ld [hli], a ld [hl], a pop de ld b, $a ld a, d cp $7a jr nz, .asm_11873 ld a, e cp $40 jr nz, .asm_11873 ld b, $1e .asm_11873 ld a, b ld de, $2420 call Function3b2a ret ; known jump sources: 1177c (4:577c) Function1187b: ; 1187b (4:587b) ld a, $a ld hl, $c51d jr Function11890 ; known jump sources: 1179f (4:579f), 117bf (4:57bf), 117e2 (4:57e2), 11835 (4:5835) Function11882: ; 11882 (4:5882) ld a, $7 ld hl, $c51d jr Function11890 ; known jump sources: 1181e (4:581e) Function11889: ; 11889 (4:5889) ld a, $8 ld hl, $c4f5 jr Function11890 ; known jump sources: 11880 (4:5880), 11887 (4:5887), 1188e (4:588e) Function11890: ; 11890 (4:5890) ld [$c6d3], a ld a, l ld [EnemySDefLevel], a ; $c6d8 ld a, h ld [EnemyAccLevel], a ; $c6d9 ret Function1189c: ; 1189c push bc push af ld a, [EnemyAtkLevel] sub $3 ld b, a pop af dec b pop bc ret ; 118a8 Function118a8: ; 118a8 call WaitTop ld hl, TileMap ld bc, $0168 ld a, $60 call ByteFill ld hl, $c4b5 ld bc, $0612 call Function1189c jr nz, .asm_118c4 ld bc, $0412 .asm_118c4 call ClearBox ld de, $5da2 Function118ca: ; 118ca call Function1189c jr nz, .asm_118d5 ld hl, $0055 add hl, de ld d, h ld e, l .asm_118d5 push de ld hl, $c541 ld bc, $0712 call Function1189c jr nz, .asm_118e7 ld hl, $c519 ld bc, $0912 .asm_118e7 call ClearBox ld hl, $c5e1 ld bc, $0112 call ClearBox pop de ld hl, $c542 ld b, $5 call Function1189c jr nz, .asm_11903 ld hl, $c51a ld b, $6 .asm_11903 ld c, $11 .asm_11905 ld a, [de] ld [hli], a inc de dec c jr nz, .asm_11905 push de ld de, $0017 add hl, de pop de dec b jr nz, .asm_11903 ret ; 11915 Function11915: ; 11915 call Functiona57 ld a, [$cf63] bit 7, a jr nz, .asm_11930 call Function11968 callba Function8cf62 call Function11940 call DelayFrame and a ret .asm_11930 callab Function8cf53 call ClearSprites xor a ld [hSCX], a ld [hSCY], a scf ret ; 11940 Function11940: ; 11940 xor a ld [hBGMapMode], a ld hl, $c505 call Function1189c jr nz, .asm_1194e ld hl, $c4dd .asm_1194e ld bc, $0112 call ClearBox ld hl, PlayerSDefLevel ld e, [hl] inc hl ld d, [hl] ld hl, EnemySDefLevel ld a, [hli] ld h, [hl] ld l, a call PlaceString ld a, $1 ld [hBGMapMode], a ret ; 11968 Function11968: ; 11968 ld a, [$cf63] ld e, a ld d, $0 ld hl, Jumptable_11977 add hl, de add hl, de ld a, [hli] ld h, [hl] ld l, a jp [hl] ; 11977 ; no known jump sources Jumptable_11977: ; 11977 (4:5977) dw Function1197b dw Function119a1 ; no known jump sources Function1197b: ; 1197b (4:597b) ld de, $5018 call Function1189c jr nz, .asm_11985 ld d, $40 .asm_11985 ld a, $2 call Function3b2a ld a, c ld [EnemyDefLevel], a ; $c6d5 ld a, b ld [$c6d6], a ld hl, $1 add hl, bc ld a, [hl] ld hl, $e add hl, bc ld [hl], a ld hl, $cf63 inc [hl] ret ; no known jump sources Function119a1: ; 119a1 (4:59a1) ld hl, hJoyPressed ; $ffa7 ld a, [hl] and $1 jr nz, .asm_119b9 ld a, [hl] and $2 jr nz, .asm_119e7 ld a, [hl] and $8 jr nz, .asm_119cf ld a, [hl] and $4 jr nz, .asm_119f4 ret .asm_119b9 call Function11a0b cp $1 jr z, .asm_119f4 cp $2 jr z, .asm_119e7 cp $3 jr z, .asm_119eb call Function11c11 call Function11b14 ret nc .asm_119cf ld hl, EnemyDefLevel ; $c6d5 ld c, [hl] inc hl ld b, [hl] ld hl, $c add hl, bc ld [hl], $8 ld hl, $d add hl, bc ld [hl], $4 call Function1189c ret nz inc [hl] ret .asm_119e7 call Function11bbc ret .asm_119eb call Function11bf7 ld hl, $cf63 set 7, [hl] ret .asm_119f4 ld hl, $cf64 ld a, [hl] xor $1 ld [hl], a jr z, .asm_11a04 ld de, $5ce7 call Function118ca ret .asm_11a04 ld de, $5da2 call Function118ca ret ; known jump sources: 119b9 (4:59b9) Function11a0b: ; 11a0b (4:5a0b) ld hl, EnemyDefLevel ; $c6d5 ld c, [hl] inc hl ld b, [hl] ; known jump sources: 11aa3 (4:5aa3), 11ac5 (4:5ac5) Function11a11: ; 11a11 (4:5a11) ld hl, $d add hl, bc ld a, [hl] push bc ld b, $4 call Function1189c jr nz, .asm_11a1f inc b .asm_11a1f cp b pop bc jr nz, .asm_11a39 ld hl, $c add hl, bc ld a, [hl] cp $3 jr c, .asm_11a33 cp $6 jr c, .asm_11a36 ld a, $3 ret .asm_11a33 ld a, $1 ret .asm_11a36 ld a, $2 ret .asm_11a39 xor a ret ; no known jump sources Function11a3b: ; 11a3b (4:5a3b) call Function11a8b ld hl, $d add hl, bc ld a, [hl] ld e, a swap e ld hl, $7 add hl, bc ld [hl], e ld d, $4 call Function1189c jr nz, .asm_11a53 inc d .asm_11a53 cp d ld de, Unknown_11a79 ld a, $0 jr nz, .asm_11a60 ld de, Unknown_11a82 ld a, $1 .asm_11a60 ld hl, $e add hl, bc add [hl] ld hl, $1 add hl, bc ld [hl], a ld hl, $c add hl, bc ld l, [hl] ld h, $0 add hl, de ld a, [hl] ld hl, $6 add hl, bc ld [hl], a ret ; 11a79 (4:5a79) Unknown_11a79: ; 11a79 db $00, $10, $20, $30, $40, $50, $60, $70, $80 Unknown_11a82: ; 11a82 db $00, $00, $00, $30, $30, $30, $60, $60, $60 ; 11a8b ; known jump sources: 11a3b (4:5a3b) Function11a8b: ; 11a8b (4:5a8b) ld hl, $ffa9 ld a, [hl] and $40 jr nz, .asm_11b02 ld a, [hl] and $80 jr nz, .asm_11ae9 ld a, [hl] and $20 jr nz, .asm_11ac5 ld a, [hl] and $10 jr nz, .asm_11aa3 ret .asm_11aa3 call Function11a11 and a jr nz, .asm_11ab7 ld hl, $c add hl, bc ld a, [hl] cp $8 jr nc, .asm_11ab4 inc [hl] ret .asm_11ab4 ld [hl], $0 ret .asm_11ab7 cp $3 jr nz, .asm_11abc xor a .asm_11abc ld e, a add a add e ld hl, $c add hl, bc ld [hl], a ret .asm_11ac5 call Function11a11 and a jr nz, .asm_11ad8 ld hl, $c add hl, bc ld a, [hl] and a jr z, .asm_11ad5 dec [hl] ret .asm_11ad5 ld [hl], $8 ret .asm_11ad8 cp $1 jr nz, .asm_11ade ld a, $4 .asm_11ade dec a dec a ld e, a add a add e ld hl, $c add hl, bc ld [hl], a ret .asm_11ae9 ld hl, $d add hl, bc ld a, [hl] call Function1189c jr nz, .asm_11af9 cp $5 jr nc, .asm_11aff inc [hl] ret .asm_11af9 cp $4 jr nc, .asm_11aff inc [hl] ret .asm_11aff ld [hl], $0 ret .asm_11b02 ld hl, $d add hl, bc ld a, [hl] and a jr z, .asm_11b0c dec [hl] ret .asm_11b0c ld [hl], $4 call Function1189c ret nz inc [hl] ret ; known jump sources: 119cb (4:59cb) Function11b14: ; 11b14 (4:5b14) ld a, [EnemySAtkLevel] ; $c6d7 ; known jump sources: 121af (4:61af) Function11b17: ; 11b17 (4:5b17) ld a, [$c6d3] ld c, a ld a, [PlayerEvaLevel] ; $c6d2 cp c ret nc ld a, [EnemySAtkLevel] ; $c6d7 Function11b23: ; 11b23 call Function11bd0 ld [hl], a Function11b27: ; 11b27 ld hl, PlayerEvaLevel ; $c6d2 inc [hl] call Function11bd0 ld a, [hl] cp $50 jr z, .asm_11b37 ld [hl], $f2 and a ret .asm_11b37 scf ret ; 11b39 (4:5b39) Function11b39: ; 11b39 ld a, [PlayerEvaLevel] and a ret z push hl ld hl, PlayerEvaLevel dec [hl] call Function11bd0 ld c, [hl] pop hl .asm_11b48 ld a, [hli] cp $ff jr z, Function11b27 cp c jr z, .asm_11b53 inc hl jr .asm_11b48 .asm_11b53 ld a, [hl] jr Function11b23 ; 11b56 Dakutens: ; 11b56 db "かが", "きぎ", "くぐ", "けげ", "こご" db "さざ", "しじ", "すず", "せぜ", "そぞ" db "ただ", "ちぢ", "つづ", "てで", "とど" db "はば", "ひび", "ふぶ", "へべ", "ほぼ" db "カガ", "キギ", "クグ", "ケゲ", "コゴ" db "サザ", "シジ", "スズ", "セゼ", "ソゾ" db "タダ", "チヂ", "ツヅ", "テデ", "トド" db "ハバ", "ヒビ", "フブ", "へべ", "ホボ" db $ff Handakutens: ; 11ba7 db "はぱ", "ひぴ", "ふぷ", "へぺ", "ほぽ" db "ハパ", "ヒピ", "フプ", "へぺ", "ホポ" db $ff ; 11bbc ; known jump sources: 119e7 (4:59e7), 1208d (4:608d) Function11bbc: ; 11bbc (4:5bbc) ld hl, PlayerEvaLevel ; $c6d2 ld a, [hl] and a ret z dec [hl] call Function11bd0 ld [hl], $f2 inc hl ld a, [hl] cp $f2 ret nz ld [hl], $eb ret ; known jump sources: 11b23 (4:5b23), 11b2b (4:5b2b), 11bc3 (4:5bc3), 12071 (4:6071), 12098 (4:6098) Function11bd0: ; 11bd0 (4:5bd0) push af ld hl, PlayerSDefLevel ; $c6d0 ld a, [hli] ld h, [hl] ld l, a ld a, [PlayerEvaLevel] ; $c6d2 ld e, a ld d, 0 add hl, de pop af ret ; 11be0 Function11be0: ; 11be0 ld hl, PlayerSDefLevel ld a, [hli] ld h, [hl] ld l, a ld [hl], $f2 inc hl ld a, [$c6d3] dec a ld c, a ld a, $eb .asm_11bf0 ld [hli], a dec c jr nz, .asm_11bf0 ld [hl], $50 ret ; 11bf7 ; known jump sources: 119eb (4:59eb), 120a1 (4:60a1) Function11bf7: ; 11bf7 (4:5bf7) ld hl, PlayerSDefLevel ; $c6d0 ld a, [hli] ld h, [hl] ld l, a ld a, [$c6d3] ld c, a .asm_11c01 ld a, [hl] cp $eb jr z, .asm_11c0a cp $f2 jr nz, .asm_11c0c .asm_11c0a ld [hl], $50 .asm_11c0c inc hl dec c jr nz, .asm_11c01 ret ; known jump sources: 119c8 (4:59c8), 12061 (4:6061) Function11c11: ; 11c11 (4:5c11) ld hl, EnemyDefLevel ; $c6d5 ld c, [hl] inc hl ld b, [hl] ld hl, $6 add hl, bc ld a, [hl] ld hl, $4 add hl, bc add [hl] sub $8 srl a srl a srl a ld e, a ld hl, $7 add hl, bc ld a, [hl] ld hl, $5 add hl, bc add [hl] sub $10 srl a srl a srl a ld d, a ld hl, TileMap ; $c4a0 (aliases: SpritesEnd) ld bc, $14 .asm_11c43 ld a, d and a jr z, .asm_11c4b add hl, bc dec d jr .asm_11c43 .asm_11c4b add hl, de ld a, [hl] ld [EnemySAtkLevel], a ; $c6d7 ret Function11c51: ; 11c51 call ClearSprites callab Function8cf53 call Functione51 call Functione5f ld de, GFX_11e65 ld hl, $8eb0 lb bc, BANK(GFX_11e65), 1 call Get1bpp ld de, GFX_11e6d ld hl, $8f20 lb bc, BANK(GFX_11e6d), 1 call Get1bpp ld de, $9600 ld hl, GFX_11cb7 ld bc, $10 ld a, BANK(GFX_11cb7) call FarCopyBytes ld de, $87e0 ld hl, GFX_11cc7 ld bc, $20 ld a, BANK(GFX_11cc7) call FarCopyBytes ld a, $5 ld hl, $c312 ld [hli], a ld [hl], $7e xor a ld [hSCY], a ld [$c3bf], a ld [hSCX], a ld [$c3c0], a ld [$cf63], a ld [$cf64], a ld [hBGMapMode], a ld [PlayerEvaLevel], a ld a, $7 ld [hWX], a ret ; 11cb7 GFX_11cb7: ; 11cb7 INCBIN "baserom.gbc", $11cb7, $11cc7 - $11cb7 ; 11cc7 GFX_11cc7: ; 11cc7 INCBIN "baserom.gbc", $11cc7, $11ce7 - $11cc7 ; 11ce7 NameInputLower: db "a b c d e f g h i" db "j k l m n o p q r" db "s t u v w x y z " db "× ( ) : ; [ ] ", $e1, " ", $e2 db "UPPER DEL END " BoxNameInputLower: db "a b c d e f g h i" db "j k l m n o p q r" db "s t u v w x y z " db "é 'd 'l 'm 'r 's 't 'v 0" db "1 2 3 4 5 6 7 8 9" db "UPPER DEL END " NameInputUpper: db "A B C D E F G H I" db "J K L M N O P Q R" db "S T U V W X Y Z " db "- ? ! / . , " db "lower DEL END " BoxNameInputUpper: db "A B C D E F G H I" db "J K L M N O P Q R" db "S T U V W X Y Z " db "× ( ) : ; [ ] ", $e1, " ", $e2 db "- ? ! ♂ ♀ / . , &" db "lower DEL END " ; 11e5d GFX_11e5d: ; 11e5d INCBIN "baserom.gbc",$11e5d,$11e65 - $11e5d ; 11e6d GFX_11e65: INCBIN "baserom.gbc",$11e65,$11e6d - $11e65 ; 11e6d GFX_11e6d: ; 11e6d INCBIN "baserom.gbc", $11e6d, $11e75 - $11e6d ; 11e75 ; no known jump sources Function11e75: ; 11e75 (4:5e75) ld hl, PlayerSDefLevel ; $c6d0 ld [hl], e inc hl ld [hl], d ld a, [$FF00+$de] push af xor a ld [$FF00+$de], a ld a, [$FF00+$aa] push af ld a, $1 ld [$FF00+$aa], a call Function11e9a call DelayFrame .asm_11e8e call Function11fc0 jr nc, .asm_11e8e pop af ld [$FF00+$aa], a pop af ld [$FF00+$de], a ret ; known jump sources: 11e88 (4:5e88) Function11e9a: ; 11e9a (4:5e9a) call WhiteBGMap call DisableLCD call Function11c51 ld de, $8000 ld hl, GFX_11ef4 ld bc, $80 ld a, BANK(GFX_11ef4) call FarCopyBytes xor a ld hl, $c300 ld [hli], a ld [hl], a ld de, $1810 ld a, $0 call Function3b2a ld hl, $2 add hl, bc ld [hl], $0 call Function11f84 ld a, $e3 ld [rLCDC], a ; $ff00+$40 call Function11f74 ld b, $8 call GetSGBLayout call WaitBGMap call WaitTop ld a, $e4 call DmgToCgbBGPals ld a, $e4 call Functioncf8 call Function11be0 ld hl, PlayerSDefLevel ; $c6d0 ld e, [hl] inc hl ld d, [hl] ld hl, $10 add hl, de ld [hl], $4e ret ; 11ef4 (4:5ef4) GFX_11ef4: ; 11ef4 INCBIN "baserom.gbc",$11ef4,$11f74 - $11ef4 ; 11f74 ; known jump sources: 11ecc (4:5ecc) Function11f74: ; 11f74 (4:5f74) ld a, $21 ld [$c6d3], a ret ; 11f7a (4:5f7a) String_11f7a: ; 11f7a db "メールを かいてね@" ; 11f84 ; known jump sources: 11ec5 (4:5ec5) Function11f84: ; 11f84 (4:5f84) call WaitTop ld hl, TileMap ; $c4a0 (aliases: SpritesEnd) ld bc, $78 ld a, $60 call ByteFill ld hl, $c518 ld bc, $f0 ld a, $7f call ByteFill ld hl, $c4b5 ld bc, $412 call ClearBox ld de, String_121dd ; known jump sources: 120b6 (4:60b6), 120bd (4:60bd) Function11fa9: ; 11fa9 (4:5fa9) ld hl, $c52d ld b, $6 .asm_11fae ld c, $13 .asm_11fb0 ld a, [de] ld [hli], a inc de dec c jr nz, .asm_11fb0 push de ld de, $15 add hl, de pop de dec b jr nz, .asm_11fae ret ; known jump sources: 11e8e (4:5e8e) Function11fc0: ; 11fc0 (4:5fc0) call Functiona57 ld a, [$cf63] bit 7, a jr nz, .asm_11fdb call Function12008 callba Function8cf62 call Function11feb call DelayFrame and a ret .asm_11fdb callab Function8cf53 call ClearSprites xor a ld [hSCX], a ; $ff00+$cf ld [hSCY], a ; $ff00+$d0 scf ret ; known jump sources: 11fd3 (4:5fd3) Function11feb: ; 11feb (4:5feb) xor a ld [hBGMapMode], a ; $ff00+$d4 ld hl, $c4b5 ld bc, $412 call ClearBox ld hl, PlayerSDefLevel ; $c6d0 ld e, [hl] inc hl ld d, [hl] ld hl, $c4ca call PlaceString ld a, $1 ld [hBGMapMode], a ; $ff00+$d4 ret ; known jump sources: 11fca (4:5fca) Function12008: ; 12008 (4:6008) ld a, [$cf63] ld e, a ld d, 0 ld hl, Jumptable_12017 add hl, de add hl, de ld a, [hli] ld h, [hl] ld l, a jp [hl] ; no known jump sources Jumptable_12017: ; 12017 (4:6017) dw Function1201b dw Function1203a ; no known jump sources Function1201b: ; 1201b (4:601b) ld de, $4810 ld a, $9 call Function3b2a ld a, c ld [EnemyDefLevel], a ; $c6d5 ld a, b ld [$c6d6], a ld hl, $1 add hl, bc ld a, [hl] ld hl, $e add hl, bc ld [hl], a ld hl, $cf63 inc [hl] ret ; no known jump sources Function1203a: ; 1203a (4:603a) ld hl, hJoyPressed ; $ffa7 ld a, [hl] and $1 jr nz, .asm_12052 ld a, [hl] and $2 jr nz, .asm_1208d ld a, [hl] and $8 jr nz, .asm_1207a ld a, [hl] and $4 jr nz, .asm_120aa ret .asm_12052 call Function12185 cp $1 jr z, .asm_120aa cp $2 jr z, .asm_1208d cp $3 jr z, .asm_120a1 call Function11c11 call Function121ac jr c, .asm_1207a ld hl, PlayerEvaLevel ; $c6d2 ld a, [hl] cp $10 ret nz inc [hl] call Function11bd0 ld [hl], $f2 dec hl ld [hl], $4e ret .asm_1207a ld hl, EnemyDefLevel ; $c6d5 ld c, [hl] inc hl ld b, [hl] ld hl, $c add hl, bc ld [hl], $9 ld hl, $d add hl, bc ld [hl], $5 ret .asm_1208d call Function11bbc ld hl, PlayerEvaLevel ; $c6d2 ld a, [hl] cp $10 ret nz dec [hl] call Function11bd0 ld [hl], $f2 inc hl ld [hl], $4e ret .asm_120a1 call Function11bf7 ld hl, $cf63 set 7, [hl] ret .asm_120aa ld hl, $cf64 ld a, [hl] xor $1 ld [hl], a jr nz, .asm_120ba ld de, String_121dd call Function11fa9 ret .asm_120ba ld de, String_1224f call Function11fa9 ret ; no known jump sources Function120c1: ; 120c1 (4:60c1) call Function1210c ld hl, $d add hl, bc ld a, [hl] ld e, a swap e ld hl, $7 add hl, bc ld [hl], e cp $5 ld de, Unknown_120f8 ld a, $0 jr nz, .asm_120df ld de, Unknown_12102 ld a, $1 .asm_120df ld hl, $e add hl, bc add [hl] ld hl, $1 add hl, bc ld [hl], a ld hl, $c add hl, bc ld l, [hl] ld h, $0 add hl, de ld a, [hl] ld hl, $6 add hl, bc ld [hl], a ret ; 120f8 (4:60f8) Unknown_120f8: ; 120f8 db $00, $10, $20, $30, $40, $50, $60, $70, $80, $90 Unknown_12102: ; 12102 db $00, $00, $00, $30, $30, $30, $60, $60, $60, $60 ; 1210c ; known jump sources: 120c1 (4:60c1) Function1210c: ; 1210c (4:610c) ld hl, $ffa9 ld a, [hl] and $40 jr nz, .asm_12178 ld a, [hl] and $80 jr nz, .asm_1216a ld a, [hl] and $20 jr nz, .asm_12146 ld a, [hl] and $10 jr nz, .asm_12124 ret .asm_12124 call Function1218b and a jr nz, .asm_12138 ld hl, $c add hl, bc ld a, [hl] cp $9 jr nc, .asm_12135 inc [hl] ret .asm_12135 ld [hl], $0 ret .asm_12138 cp $3 jr nz, .asm_1213d xor a .asm_1213d ld e, a add a add e ld hl, $c add hl, bc ld [hl], a ret .asm_12146 call Function1218b and a jr nz, .asm_12159 ld hl, $c add hl, bc ld a, [hl] and a jr z, .asm_12156 dec [hl] ret .asm_12156 ld [hl], $9 ret .asm_12159 cp $1 jr nz, .asm_1215f ld a, $4 .asm_1215f dec a dec a ld e, a add a add e ld hl, $c add hl, bc ld [hl], a ret .asm_1216a ld hl, $d add hl, bc ld a, [hl] cp $5 jr nc, .asm_12175 inc [hl] ret .asm_12175 ld [hl], $0 ret .asm_12178 ld hl, $d add hl, bc ld a, [hl] and a jr z, .asm_12182 dec [hl] ret .asm_12182 ld [hl], $5 ret ; known jump sources: 12052 (4:6052) Function12185: ; 12185 (4:6185) ld hl, EnemyDefLevel ; $c6d5 ld c, [hl] inc hl ld b, [hl] ; known jump sources: 12124 (4:6124), 12146 (4:6146) Function1218b: ; 1218b (4:618b) ld hl, $d add hl, bc ld a, [hl] cp $5 jr nz, .asm_121aa ld hl, $c add hl, bc ld a, [hl] cp $3 jr c, .asm_121a4 cp $6 jr c, .asm_121a7 ld a, $3 ret .asm_121a4 ld a, $1 ret .asm_121a7 ld a, $2 ret .asm_121aa xor a ret ; known jump sources: 12064 (4:6064) Function121ac: ; 121ac (4:61ac) ld a, [EnemySAtkLevel] ; $c6d7 jp Function11b17 ; 121b2 (4:61b2) Function121b2: ; 121b2 ld a, [PlayerEvaLevel] and a ret z cp $11 jr nz, .asm_121c3 push hl ld hl, PlayerEvaLevel dec [hl] dec [hl] jr .asm_121c8 .asm_121c3 push hl ld hl, PlayerEvaLevel dec [hl] .asm_121c8 call Function11bd0 ld c, [hl] pop hl .asm_121cd ld a, [hli] cp $ff jp z, Function11b27 cp c jr z, .asm_121d9 inc hl jr .asm_121cd .asm_121d9 ld a, [hl] jp Function11b23 ; 121dd String_121dd: ; 122dd db "A B C D E F G H I J" db "K L M N O P Q R S T" db "U V W X Y Z , ? !" db "1 2 3 4 5 6 7 8 9 0" db "ゅ ょ ", $70, " ", $71, " é ♂ ♀ ¥ … ×" db "lower DEL END " ; 1224f String_1224f: ; 1224f db "a b c d e f g h i j" db "k l m n o p q r s t db "u v w x y z . - /" db "'d 'l 'm 'r 's 't 'v & ( )" db $72, " ", $73, " [ ] ' : ; " db "UPPER DEL END " ; 122c1 UnknownScript_0x122c1: ; 0x122c1 checkflag $0011 iffalse .script_122cd setflag $0051 special $0017 .script_122cd end ; 0x122ce UnknownScript_0x122ce:: ; 0x122ce 3callasm Function122f8 iffalse UnknownScript_0x122e3 disappear $fe loadfont 2writetext UnknownText_0x122ee playsound SFX_ITEM pause 60 itemnotify loadmovesprites end ; 0x122e3 UnknownScript_0x122e3: ; 0x122e3 loadfont 2writetext UnknownText_0x122ee closetext 2writetext UnknownText_0x122f3 closetext loadmovesprites end ; 0x122ee UnknownText_0x122ee: ; 0x122ee ; found @ ! text_jump UnknownText_0x1c0a1c db "@" ; 0x122f3 UnknownText_0x122f3: ; 0x122f3 ; But can't carry any more items. text_jump UnknownText_0x1c0a2c db "@" ; 0x122f8 Function122f8: ; 122f8 xor a ld [ScriptVar], a ld a, [EngineBuffer1] ld [$d265], a call GetItemName ld hl, StringBuffer3 call CopyName2 ld a, [EngineBuffer1] ld [CurItem], a ld a, [CurFruit] ld [$d10c], a ld hl, NumItems call ReceiveItem ret nc ld a, $1 ld [ScriptVar], a ret ; 12324 Function12324: ; 12324 ld a, [PartyCount] and a ret z ld a, [ScriptVar] ld [Buffer1], a ld a, [rOBP1] ld [Buffer2], a call Function1233e ld a, [Buffer2] call Functiond24 ret ; 1233e Function1233e: ; 1233e xor a ld [$d1ec], a .asm_12342 ld a, [Buffer1] ld e, a ld d, 0 ld hl, Unknown_12365 add hl, de add hl, de ld a, [hli] ld h, [hl] ld l, a ld a, [$d1ec] ld e, a inc a ld [$d1ec], a add hl, de ld a, [hl] cp 5 jr z, .asm_12364 ld hl, Jumptable_12377 rst JumpTable jr .asm_12342 .asm_12364 ret ; 12365 Unknown_12365: ; 12365 dw Unknown_1236b dw Unknown_1236f dw Unknown_12373 ; 1236b Unknown_1236b: ; 1236b db 0, 1, 3, 5 Unknown_1236f: ; 1236f db 0, 1, 3, 5 Unknown_12373: ; 12373 db 0, 2, 4, 5 ; 12377 Jumptable_12377: ; 12377 dw Function12383 dw Function12393 dw Function123a1 dw Function123bf dw Function123c8 dw Function123db ; 12383 Function12383: ; 12383 call Function12434 ld de, GFX_123fc ld hl, $87c0 lb bc, BANK(GFX_123fc), $2 call Request2bpp ret ; 12393 Function12393: ; 12393 ld hl, $c480 ld de, Unknown_123dc call Function124a3 call Function124a3 jr Function123a7 Function123a1: ; 123a1 ld hl, $c480 ld de, Unknown_1241c Function123a7: ; 123a7 ld a, [PartyCount] ld b, a .asm_123ab call Function124a3 push de ld de, SFX_SECOND_PART_OF_ITEMFINDER call PlaySFX pop de ld c, 30 call DelayFrames dec b jr nz, .asm_123ab ret ; 123bf Function123bf: ; 123bf ld de, MUSIC_HEAL call PlayMusic jp Function12459 ; 123c8 Function123c8: ; 123c8 ld de, SFX_GAME_FREAK_LOGO_GS call PlaySFX call Function12459 call WaitSFX ld de, SFX_BOOT_PC call PlaySFX ret ; 123db Function123db: ; 123db ret ; 123dc Unknown_123dc: ; 123dc db $20, $22, $7c, $16 db $20, $26, $7c, $16 db $26, $20, $7d, $16 db $26, $28, $7d, $36 db $2b, $20, $7d, $16 db $2b, $28, $7d, $36 db $30, $20, $7d, $16 db $30, $28, $7d, $36 ; 123fc GFX_123fc: ; 123fc INCBIN "baserom.gbc", $123fc, $1241c - $123fc ; 1241c Unknown_1241c: ; 1241c db $3c, $51, $7d, $16 db $3c, $56, $7d, $16 db $3b, $4d, $7d, $16 db $3b, $5a, $7d, $16 db $39, $49, $7d, $16 db $39, $5d, $7d, $16 ; 12434 Function12434: ; 12434 call Function3218 jr nz, .asm_1243e ld a, $e0 ld [rOBP1], a ret .asm_1243e ld hl, Palette_12451 ld de, $d0f0 ld bc, 8 ld a, $5 call FarCopyWRAM ld a, $1 ld [hCGBPalUpdate], a ret ; 12451 Palette_12451: ; 12451 RGB 31, 31, 31 RGB 31, 19, 10 RGB 31, 07, 01 RGB 00, 00, 00 ; 12459 Function12459: ; 12459 ld c, $8 .asm_1245b push bc call Function12469 ld c, $a call DelayFrames pop bc dec c jr nz, .asm_1245b ret ; 12469 Function12469: ; 12469 call Function3218 jr nz, .asm_12475 ld a, [rOBP1] xor $28 ld [rOBP1], a ret .asm_12475 ld a, [rSVBK] push af ld a, $5 ld [rSVBK], a ld hl, $d0f0 ld a, [hli] ld e, a ld a, [hli] ld d, a push de ld c, $3 .asm_12486 ld a, [hli] ld e, a ld a, [hld] ld d, a dec hl ld a, d ld [hld], a ld a, e ld [hli], a inc hl inc hl inc hl dec c jr nz, .asm_12486 pop de dec hl ld a, d ld [hld], a ld a, e ld [hl], a pop af ld [rSVBK], a ld a, $1 ld [hCGBPalUpdate], a ret ; 124a3 Function124a3: ; 124a3 push bc ld a, [Buffer1] lb bc, $10, $20 cp $1 jr z, .asm_124b1 lb bc, $00, $00 .asm_124b1 ld a, [de] add c inc de ld [hli], a ld a, [de] add b inc de ld [hli], a ld a, [de] inc de ld [hli], a ld a, [de] inc de ld [hli], a pop bc ret ; 124c1 UnknownScript_0x124c1:: ; 0x124c1 3callasm Function1250a 2jump UnknownScript_0x124ce ; 0x124c8 UnknownScript_0x124c8:: ; 0x124c8 refreshscreen $0 3callasm Function124fa UnknownScript_0x124ce: ; 0x124ce 2writetext UnknownText_0x124f5 closetext special $002e pause 40 special $001b checkflag $0011 iftrue .script_64f2 3callasm HalveMoney 3callasm Function12527 3call UnknownScript_0x122c1 special $0000 newloadmap $f1 resetfuncs .script_64f2 jumpstd $0016 ; 0x124f5 UnknownText_0x124f5: ; 0x124f5 ; is out of useable #MON! whited out! text_jump UnknownText_0x1c0a4e db "@" ; 0x124fa Function124fa: ; 124fa call ClearPalettes call Functionfdb call Function3200 call HideSprites call Function4f0 ret ; 1250a Function1250a: ; 1250a ld b, $0 call GetSGBLayout call Function32f9 ret ; 12513 HalveMoney: ; 12513 ; Empty function... callba Function1060c7 ; Halve the player's money. ld hl, Money ld a, [hl] srl a ld [hli], a ld a, [hl] rra ld [hli], a ld a, [hl] rra ld [hl], a ret ; 12527 Function12527: ; 12527 ld a, [$dcb2] ld d, a ld a, [$dcb3] ld e, a callba IsSpawnPoint ld a, c jr c, .asm_12539 xor a .asm_12539 ld [$d001], a ret ; 1253d UnknownScript_0x1253d:: ; 0x1253d checkcode $9 if_equal $0, UnknownScript_0x12555 if_equal $1, UnknownScript_0x12550 if_equal $2, UnknownScript_0x1255f if_equal $3, UnknownScript_0x1255a end ; 0x12550 UnknownScript_0x12550: ; 0x12550 applymovement $0, MovementData_0x12564 end ; 0x12555 UnknownScript_0x12555: ; 0x12555 applymovement $0, MovementData_0x1256b end ; 0x1255a UnknownScript_0x1255a: ; 0x1255a applymovement $0, MovementData_0x12572 end ; 0x1255f UnknownScript_0x1255f: ; 0x1255f applymovement $0, MovementData_0x12579 end ; 0x12564 MovementData_0x12564: ; 0x12564 step_wait5 big_step_down turn_in_down step_wait5 big_step_down turn_head_down step_end ; 0x1256b MovementData_0x1256b: ; 0x1256b step_wait5 big_step_down turn_in_up step_wait5 big_step_down turn_head_up step_end ; 0x12572 MovementData_0x12572: ; 0x12572 step_wait5 big_step_down turn_in_left step_wait5 big_step_down turn_head_left step_end ; 0x12579 MovementData_0x12579: ; 0x12579 step_wait5 big_step_down turn_in_right step_wait5 big_step_down turn_head_right step_end ; 0x12580 Function12580: ; 12580 callba Functionb8172 jr c, .asm_1258d ld hl, UnknownScript_0x125ba jr .asm_12590 .asm_1258d ld hl, UnknownScript_0x125ad .asm_12590 call Function31cd ld a, $1 ld [$d0ec], a ret ; 12599 Function12599: ; 12599 ld c, $4 .asm_1259b push bc ld de, SFX_SECOND_PART_OF_ITEMFINDER call WaitPlaySFX ld de, SFX_TRANSACTION call WaitPlaySFX pop bc dec c jr nz, .asm_1259b ret ; 125ad UnknownScript_0x125ad: ; 0x125ad reloadmappart special $0035 3callasm Function12599 2writetext UnknownText_0x125c3 loadmovesprites end ; 0x125ba UnknownScript_0x125ba: ; 0x125ba reloadmappart special $0035 2writetext UnknownText_0x125c8 loadmovesprites end ; 0x125c3 UnknownText_0x125c3: ; 0x125c3 ; Yes! ITEMFINDER indicates there's an item nearby. text_jump UnknownText_0x1c0a77 db "@" ; 0x125c8 UnknownText_0x125c8: ; 0x125c8 ; Nope! ITEMFINDER isn't responding. text_jump UnknownText_0x1c0aa9 db "@" ; 0x125cd StartMenu:: ; 125cd call Function1fbf ld de, SFX_MENU call PlaySFX callba Function6454 ld hl, StatusFlags2 bit 2, [hl] ; bug catching contest ld hl, .MenuDataHeader jr z, .GotMenuData ld hl, .ContestMenuDataHeader .GotMenuData call LoadMenuDataHeader call .SetUpMenuItems ld a, [$d0d2] ld [$cf88], a call .DrawMenuAccount_ call MenuFunc_1e7f call .DrawBugContestStatusBox call Function2e31 call Function2e20 callba Function64bf call .DrawBugContestStatus call UpdateTimePals jr .Select .Reopen call Function1ad2 call UpdateTimePals call .SetUpMenuItems ld a, [$d0d2] ld [$cf88], a .Select call .GetInput jr c, .Exit call .DrawMenuAccount ld a, [$cf88] ld [$d0d2], a call PlayClickSFX call Function1bee call .OpenMenu ; Menu items have different return functions. ; For example, saving exits the menu. ld hl, .MenuReturns ld e, a ld d, 0 add hl, de add hl, de ld a, [hli] ld h, [hl] ld l, a jp [hl] .MenuReturns dw .Reopen dw .Exit dw .ReturnTwo dw .ReturnThree dw .ReturnFour dw .ReturnEnd dw .ReturnRedraw .Exit ld a, [hOAMUpdate] push af ld a, 1 ld [hOAMUpdate], a call Functione5f pop af ld [hOAMUpdate], a .ReturnEnd call Function1c07 .ReturnEnd2 call Function2dcf call UpdateTimePals ret .GetInput ; Return carry on exit, and no-carry on selection. xor a ld [hBGMapMode], a call .DrawMenuAccount call SetUpMenu ld a, $ff ld [MenuSelection], a .loop call .PrintMenuAccount call Function1f1a ld a, [$cf73] cp B_BUTTON jr z, .b cp A_BUTTON jr z, .a jr .loop .a call PlayClickSFX and a ret .b scf ret ; 12691 .ReturnFour ; 12691 call Function1c07 ld a, $80 ld [$ffa0], a ret ; 12699 .ReturnThree ; 12699 call Function1c07 ld a, $80 ld [$ffa0], a jr .ReturnEnd2 ; 126a2 .ReturnTwo ; 126a2 call Function1c07 ld hl, $d0e9 ld a, [hli] ld h, [hl] ld l, a ld a, [$d0e8] rst FarCall jr .ReturnEnd2 ; 126b1 .ReturnRedraw ; 126b1 call .Clear jp .Reopen ; 126b7 .Clear ; 126b7 call WhiteBGMap call Function1d7d call Function2bae call .DrawMenuAccount_ call MenuFunc_1e7f call .DrawBugContestStatus call Function1ad2 call Functiond90 call Function2b5c ret ; 126d3 .MenuDataHeader db $40 ; tile backup db 0, 10 ; start coords db 17, 19 ; end coords dw .MenuData db 1 ; default selection .ContestMenuDataHeader db $40 ; tile backup db 2, 10 ; start coords db 17, 19 ; end coords dw .MenuData db 1 ; default selection .MenuData db %10101000 ; x padding, wrap around, start can close dn 0, 0 ; rows, columns dw MenuItemsList dw .MenuString dw .Items .Items dw StartMenu_Pokedex, .PokedexString, .PokedexDesc dw StartMenu_Pokemon, .PartyString, .PartyDesc dw StartMenu_Pack, .PackString, .PackDesc dw StartMenu_Status, .StatusString, .StatusDesc dw StartMenu_Save, .SaveString, .SaveDesc dw StartMenu_Option, .OptionString, .OptionDesc dw StartMenu_Exit, .ExitString, .ExitDesc dw StartMenu_Pokegear, .PokegearString, .PokegearDesc dw StartMenu_Quit, .QuitString, .QuitDesc .PokedexString db "#DEX@" .PartyString db "#MON@" .PackString db "PACK@" .StatusString db $52, "@" .SaveString db "SAVE@" .OptionString db "OPTION@" .ExitString db "EXIT@" .PokegearString db $24, "GEAR@" .QuitString db "QUIT@" .PokedexDesc db "#MON", $4e, "database@" .PartyDesc db "Party ", $4a, $4e, "status@" .PackDesc db "Contains", $4e, "items@" .PokegearDesc db "Trainer's", $4e, "key device@" .StatusDesc db "Your own", $4e, "status@" .SaveDesc db "Save your", $4e, "progress@" .OptionDesc db "Change", $4e, "settings@" .ExitDesc db "Close this", $4e, "menu@" .QuitDesc db "Quit and", $4e, "be judged.@" .OpenMenu ; 127e5 ld a, [MenuSelection] call .GetMenuAccountTextPointer ld a, [hli] ld h, [hl] ld l, a jp [hl] ; 127ef .MenuString ; 127ef push de ld a, [MenuSelection] call .GetMenuAccountTextPointer inc hl inc hl ld a, [hli] ld d, [hl] ld e, a pop hl call PlaceString ret ; 12800 .MenuDesc ; 12800 push de ld a, [MenuSelection] cp $ff jr z, .none call .GetMenuAccountTextPointer inc hl inc hl inc hl inc hl ld a, [hli] ld d, [hl] ld e, a pop hl call PlaceString ret .none pop de ret ; 12819 .GetMenuAccountTextPointer ; 12819 ld e, a ld d, 0 ld hl, $cf97 ld a, [hli] ld h, [hl] ld l, a add hl, de add hl, de add hl, de add hl, de add hl, de add hl, de ret ; 12829 .SetUpMenuItems ; 12829 xor a ld [$cf76], a call .FillMenuList ld hl, StatusFlags bit 0, [hl] jr z, .no_pokedex ld a, 0 ; pokedex call .AppendMenuList .no_pokedex ld a, [PartyCount] and a jr z, .no_pokemon ld a, 1 ; pokemon call .AppendMenuList .no_pokemon ld a, [InLinkBattle] and a jr nz, .no_pack ld hl, StatusFlags2 bit 2, [hl] ; bug catching contest jr nz, .no_pack ld a, 2 ; pack call .AppendMenuList .no_pack ld hl, $d957 bit 7, [hl] jr z, .no_pokegear ld a, 7 ; pokegear call .AppendMenuList .no_pokegear ld a, 3 ; status call .AppendMenuList ld a, [InLinkBattle] and a jr nz, .no_save ld hl, StatusFlags2 bit 2, [hl] ; bug catching contest ld a, 8 ; quit jr nz, .write ld a, 4 ; save .write call .AppendMenuList .no_save ld a, 5 ; option call .AppendMenuList ld a, 6 ; exit call .AppendMenuList ld a, c ld [MenuItemsList], a ret ; 1288d .FillMenuList ; 1288d xor a ld hl, MenuItemsList ld [hli], a ld a, $ff ld bc, $000f call ByteFill ld de, MenuItemsList + 1 ld c, 0 ret ; 128a0 .AppendMenuList ; 128a0 ld [de], a inc de inc c ret ; 128a4 .DrawMenuAccount_ ; 128a4 jp .DrawMenuAccount ; 128a7 .PrintMenuAccount ; 128a7 call .IsMenuAccountOn ret z call .DrawMenuAccount decoord 0, 14 jp .MenuDesc ; 128b4 .DrawMenuAccount ; 128b4 call .IsMenuAccountOn ret z hlcoord 0, 13 ld bc, $050a call ClearBox hlcoord 0, 13 ld b, 3 ld c, 8 jp TextBoxPalette ; 128cb .IsMenuAccountOn ; 128cb ld a, [Options2] and 1 ret ; 128d1 .DrawBugContestStatusBox ; 128d1 ld hl, StatusFlags2 bit 2, [hl] ; bug catching contest ret z callba Function24bdc ret ; 128de .DrawBugContestStatus ; 128de ld hl, StatusFlags2 bit 2, [hl] ; bug catching contest jr nz, .contest ret .contest callba Function24be7 ret ; 128ed StartMenu_Exit: ; 128ed ; Exit the menu. ld a, 1 ret ; 128f0 StartMenu_Quit: ; 128f0 ; Retire from the bug catching contest. ld hl, .EndTheContestText call Function12cf5 jr c, .asm_12903 ld a, BANK(UnknownScript_0x1360b) ld hl, UnknownScript_0x1360b call Function31cf ld a, 4 ret .asm_12903 ld a, 0 ret .EndTheContestText text_jump UnknownText_0x1c1a6c db "@" ; 1290b StartMenu_Save: ; 1290b ; Save the game. call Function2879 callba Function14a1a jr nc, .asm_12919 ld a, 0 ret .asm_12919 ld a, 1 ret ; 1291c StartMenu_Option: ; 1291c ; Game options. call FadeToMenu callba OptionsMenu ld a, 6 ret ; 12928 StartMenu_Status: ; 12928 ; Player status. call FadeToMenu callba Function25105 call Function2b3c ld a, 0 ret ; 12937 StartMenu_Pokedex: ; 12937 ld a, [PartyCount] and a jr z, .asm_12949 call FadeToMenu callba Pokedex call Function2b3c .asm_12949 ld a, 0 ret ; 1294c StartMenu_Pokegear: ; 1294c call FadeToMenu callba Function90b8d call Function2b3c ld a, 0 ret ; 1295b StartMenu_Pack: ; 1295b call FadeToMenu callba Function10000 ld a, [$cf66] and a jr nz, .asm_12970 call Function2b3c ld a, 0 ret .asm_12970 call Function2b4d ld a, 4 ret ; 12976 StartMenu_Pokemon: ; 12976 ld a, [PartyCount] and a jr z, .return call FadeToMenu .choosemenu xor a ld [PartyMenuActionText], a ; Choose a POKéMON. call WhiteBGMap .menu callba Function5004f callba Function50405 callba Function503e0 .menunoreload callba WritePartyMenuTilemap callba PrintPartyMenuText call WaitBGMap call Function32f9 ; load regular palettes? call DelayFrame callba PartyMenuSelect jr c, .return ; if cancelled or pressed B call PokemonActionSubmenu cp 3 jr z, .menu cp 0 jr z, .choosemenu cp 1 jr z, .menunoreload cp 2 jr z, .quit .return call Function2b3c ld a, 0 ret .quit ld a, b push af call Function2b4d pop af ret ; 129d5 Function129d5: ; 129d5 ld a, [NumItems] ; $d892 (aliases: TMsHMsEnd) and a ret nz ld a, [NumKeyItems] ; $d8bc (aliases: ItemsEnd) and a ret nz ld a, [NumBalls] ; $d8d7 (aliases: KeyItemsEnd) and a ret nz ld hl, TMsHMs ; $d859 ld b, $39 .asm_129e9 ld a, [hli] and a jr nz, .asm_129f2 dec b jr nz, .asm_129e9 scf ret .asm_129f2 and a ret Function129f4: ; 129f4 push de call PartyMonItemName callba _CheckTossableItem ld a, [$d142] and a jr nz, .asm_12a3f ld hl, UnknownText_0x12a45 call Function1d4f callba Function24fbf push af call Function1c17 call Function1c07 pop af jr c, .asm_12a42 ld hl, UnknownText_0x12a4a call Function1d4f call YesNoBox push af call Function1c07 pop af jr c, .asm_12a42 pop hl ld a, [$d107] call TossItem call PartyMonItemName ld hl, UnknownText_0x12a4f call Function1d4f call Function1c07 and a ret .asm_12a3f call Function12a54 .asm_12a42 pop hl scf ret ; 12a45 (4:6a45) UnknownText_0x12a45: ; 0x12a45 ; Toss out how many @ (S)? text_jump UnknownText_0x1c1a90 db "@" ; 0x12a4a UnknownText_0x12a4a: ; 0x12a4a ; Throw away @ @ (S)? text_jump UnknownText_0x1c1aad db "@" ; 0x12a4f UnknownText_0x12a4f: ; 0x12a4f ; Discarded @ (S). text_jump UnknownText_0x1c1aca db "@" ; 0x12a54 ; known jump sources: 12a3f (4:6a3f) Function12a54: ; 12a54 (4:6a54) ld hl, UnknownText_0x12a5b call Function1d67 ret ; 12a5b (4:6a5b) UnknownText_0x12a5b: ; 0x12a5b ; That's too impor- tant to toss out! text_jump UnknownText_0x1c1adf db "@" ; 0x12a60 CantUseItem: ; 12a60 ld hl, CantUseItemText call Function2012 ret ; 12a67 CantUseItemText: ; 12a67 text_jump UnknownText_0x1c1b03 db "@" ; 12a6c PartyMonItemName: ; 12a6c ld a, [CurItem] ld [$d265], a call GetItemName call CopyName1 ret ; 12a79 CancelPokemonAction: ; 12a79 callba Function50405 callba Function8ea71 ld a, 1 ret ; 12a88 PokemonActionSubmenu: ; 12a88 hlcoord 1, 15 ld bc, $0212 ; box size call ClearBox callba Function24d19 call GetCurNick ld a, [MenuSelection] ld hl, .Actions ld de, 3 call IsInArray jr nc, .nothing inc hl ld a, [hli] ld h, [hl] ld l, a jp [hl] .nothing ld a, 0 ret .Actions dbw 1, Function12e1b ; Cut dbw 2, Function12e30 ; Fly dbw 3, Function12ebd ; Surf dbw 4, Function12e6a ; Strength dbw 6, Function12e55 ; Flash dbw 7, Function12e7f ; Whirlpool dbw 8, Function12ed1 ; Dig dbw 9, Function12ea9 ; Teleport dbw 10, Function12ee6 ; Softboiled dbw 13, Function12ee6 ; MilkDrink dbw 11, Function12f26 ; Headbutt dbw 5, Function12e94 ; Waterfall dbw 12, Function12f3b ; RockSmash dbw 14, Function12f50 ; SweetScent dbw 15, OpenPartyStats dbw 16, SwitchPartyMons dbw 17, GiveTakePartyMonItem dbw 18, CancelPokemonAction dbw 19, Function12fba ; move dbw 20, Function12d45 ; mail ; 12aec SwitchPartyMons: ; 12aec ; Don't try if there's nothing to switch! ld a, [PartyCount] cp 2 jr c, .DontSwitch ld a, [CurPartyMon] inc a ld [$d0e3], a callba Function8ea8c callba Function5042d ld a, 4 ld [PartyMenuActionText], a callba WritePartyMenuTilemap callba PrintPartyMenuText hlcoord 0, 1 ld bc, 20 * 2 ld a, [$d0e3] dec a call AddNTimes ld [hl], "▷" call WaitBGMap call Function32f9 call DelayFrame callba PartyMenuSelect bit 1, b jr c, .DontSwitch callba Function50f12 xor a ld [PartyMenuActionText], a callba Function5004f callba Function50405 callba Function503e0 ld a, 1 ret .DontSwitch xor a ld [PartyMenuActionText], a call CancelPokemonAction ret ; 12b60 GiveTakePartyMonItem: ; 12b60 ; Eggs can't hold items! ld a, [CurPartySpecies] cp EGG jr z, .asm_12ba6 ld hl, GiveTakeItemMenuData call LoadMenuDataHeader call Function1d81 call Function1c07 jr c, .asm_12ba6 call GetCurNick ld hl, StringBuffer1 ld de, $d050 ld bc, $b call CopyBytes ld a, [$cfa9] cp 1 jr nz, .asm_12ba0 call Function1d6e call ClearPalettes call Function12ba9 call ClearPalettes call Functione58 call Function1c07 ld a, 0 ret .asm_12ba0 call TakePartyItem ld a, 3 ret .asm_12ba6 ld a, 3 ret ; 12ba9 Function12ba9: ; 12ba9 callba Function106a5 .loop callba Function106be ld a, [$cf66] and a jr z, .quit ld a, [$cf65] cp 2 jr z, .next call CheckTossableItem ld a, [$d142] and a jr nz, .next call Function12bd9 jr .quit .next ld hl, CantBeHeldText call Function1d67 jr .loop .quit ret ; 12bd9 Function12bd9: ; 12bd9 call SpeechTextBox call PartyMonItemName call GetPartyItemLocation ld a, [hl] and a jr z, .asm_12bf4 push hl ld d, a callba ItemIsMail pop hl jr c, .asm_12c01 ld a, [hl] jr .asm_12c08 .asm_12bf4 call Function12cea ld hl, MadeHoldText call Function1d67 call GivePartyItem ret .asm_12c01 ld hl, PleaseRemoveMailText call Function1d67 ret .asm_12c08 ld [$d265], a call GetItemName ld hl, SwitchAlreadyHoldingText call Function12cf5 jr c, .asm_12c4b call Function12cea ld a, [$d265] push af ld a, [CurItem] ld [$d265], a pop af ld [CurItem], a call Function12cdf jr nc, .asm_12c3c ld hl, TookAndMadeHoldText call Function1d67 ld a, [$d265] ld [CurItem], a call GivePartyItem ret .asm_12c3c ld a, [$d265] ld [CurItem], a call Function12cdf ld hl, ItemStorageIsFullText call Function1d67 .asm_12c4b ret ; 12c4c GivePartyItem: ; 12c4c call GetPartyItemLocation ld a, [CurItem] ld [hl], a ld d, a callba ItemIsMail jr nc, .asm_12c5f call Function12cfe .asm_12c5f ret ; 12c60 TakePartyItem: ; 12c60 call SpeechTextBox call GetPartyItemLocation ld a, [hl] and a jr z, .asm_12c8c ld [CurItem], a call Function12cdf jr nc, .asm_12c94 callba ItemIsMail call GetPartyItemLocation ld a, [hl] ld [$d265], a ld [hl], NO_ITEM call GetItemName ld hl, TookFromText call Function1d67 jr .asm_12c9a .asm_12c8c ld hl, IsntHoldingAnythingText call Function1d67 jr .asm_12c9a .asm_12c94 ld hl, ItemStorageIsFullText call Function1d67 .asm_12c9a ret ; 12c9b GiveTakeItemMenuData: ; 12c9b db %01010000 db 12, 12 ; start coords db 17, 19 ; end coords dw .Items db 1 ; default option .Items db %10000000 ; x padding db 2 ; # items db "GIVE@" db "TAKE@" ; 12caf TookAndMadeHoldText: ; 12caf text_jump UnknownText_0x1c1b2c db "@" ; 12cb4 MadeHoldText: ; 12cb4 text_jump UnknownText_0x1c1b57 db "@" ; 12cb9 PleaseRemoveMailText: ; 12cb9 text_jump UnknownText_0x1c1b6f db "@" ; 12cbe IsntHoldingAnythingText: ; 12cbe text_jump UnknownText_0x1c1b8e db "@" ; 12cc3 ItemStorageIsFullText: ; 12cc3 text_jump UnknownText_0x1c1baa db "@" ; 12cc8 TookFromText: ; 12cc8 text_jump UnknownText_0x1c1bc4 db "@" ; 12ccd SwitchAlreadyHoldingText: ; 12ccd text_jump UnknownText_0x1c1bdc db "@" ; 12cd2 CantBeHeldText: ; 12cd2 text_jump UnknownText_0x1c1c09 db "@" ; 12cd7 GetPartyItemLocation: ; 12cd7 push af ld a, PartyMon1Item - PartyMon1 call GetPartyParamLocation pop af ret ; 12cdf Function12cdf: ; 12cdf ld a, $1 ld [$d10c], a ld hl, NumItems jp ReceiveItem ; 12cea ; known jump sources: 12bf4 (4:6bf4), 12c16 (4:6c16) Function12cea: ; 12cea (4:6cea) ld a, $1 ld [$d10c], a ld hl, NumItems ; $d892 (aliases: TMsHMsEnd) jp TossItem Function12cf5: ; 12cf5 call Function1d4f call YesNoBox jp Function1c07 ; 12cfe ; known jump sources: 12c5c (4:6c5c) Function12cfe: ; 12cfe (4:6cfe) ld de, DefaultFlypoint ; $d002 callba Function11e75 ld hl, PlayerName ; $d47d ld de, $d023 ld bc, $a call CopyBytes ld hl, PlayerID ; $d47b ld bc, $2 call CopyBytes ld a, [CurPartySpecies] ; $d108 ld [de], a inc de ld a, [CurItem] ; $d106 ld [de], a ld a, [CurPartyMon] ; $d109 ld hl, $a600 ld bc, $2f call AddNTimes ld d, h ld e, l ld hl, DefaultFlypoint ; $d002 ld bc, $2f ld a, $0 call GetSRAMBank call CopyBytes call CloseSRAM ret Function12d45: ; 12d45 ld a, [InLinkBattle] cp $1 jr z, .asm_12d6d cp $2 jr z, .asm_12d6d ld hl, MenuDataHeader_0x12dc9 call LoadMenuDataHeader call Function1d81 call Function1c07 jp c, .asm_12dc6 ld a, [$cfa9] cp $1 jr z, .asm_12d6d cp $2 jr z, .asm_12d76 jp .asm_12dc6 .asm_12d6d callba Functionb9229 ld a, $0 ret .asm_12d76 ld hl, UnknownText_0x12df1 call Function12cf5 jr c, .asm_12d9a ld a, [CurPartyMon] ld b, a callba Function4456e jr c, .asm_12d92 ld hl, UnknownText_0x12dfb call Function1d67 jr .asm_12dc6 .asm_12d92 ld hl, UnknownText_0x12df6 call Function1d67 jr .asm_12dc6 .asm_12d9a ld hl, UnknownText_0x12de2 call Function12cf5 jr c, .asm_12dc6 call GetPartyItemLocation ld a, [hl] ld [CurItem], a call Function12cdf jr nc, .asm_12dbe call GetPartyItemLocation ld [hl], $0 call GetCurNick ld hl, UnknownText_0x12de7 call Function1d67 jr .asm_12dc6 .asm_12dbe ld hl, UnknownText_0x12dec call Function1d67 jr .asm_12dc6 .asm_12dc6 ld a, $3 ret ; 12dc9 MenuDataHeader_0x12dc9: ; 0x12dc9 db $40 ; flags db 10, 12 ; start coords db 17, 19 ; end coords dw MenuData2_0x12dd1 db 1 ; default option ; 0x12dd1 MenuData2_0x12dd1: ; 0x12dd1 db $80 ; flags db 3 ; items db "READ@" db "TAKE@" db "QUIT@" ; 0x12de2 UnknownText_0x12de2: ; 0x12de2 text_jump UnknownText_0x1c1c22 db "@" ; 0x12de7 UnknownText_0x12de7: ; 0x12de7 text_jump UnknownText_0x1c1c47 db "@" ; 0x12dec UnknownText_0x12dec: ; 0x12dec text_jump UnknownText_0x1c1c62 db "@" ; 0x12df1 UnknownText_0x12df1: ; 0x12df1 text_jump UnknownText_0x1c1c86 db "@" ; 0x12df6 UnknownText_0x12df6: ; 0x12df6 text_jump UnknownText_0x1c1ca9 db "@" ; 0x12dfb UnknownText_0x12dfb: ; 0x12dfb text_jump UnknownText_0x1c1cc4 db "@" ; 0x12e00 OpenPartyStats: ; 12e00 call Function1d6e call ClearSprites ; PartyMon xor a ld [MonType], a call LowVolume ld a, $25 call Predef call MaxVolume call Function1d7d ld a, 0 ret ; 12e1b Function12e1b: ; 12e1b callba Functionc785 ld a, [$d0ec] cp $1 jr nz, .asm_12e2d ld b, $4 ld a, $2 ret .asm_12e2d ld a, $3 ret ; 12e30 Function12e30: ; 12e30 callba Functionca3b ld a, [$d0ec] cp $2 jr z, .asm_12e4c cp $0 jr z, .asm_12e4f callba Function1060b5 ld b, $4 ld a, $2 ret .asm_12e4c ld a, $3 ret .asm_12e4f ld a, $0 ret .asm_12e52 ld a, $1 ret ; 12e55 Function12e55: ; 12e55 callba Functionc8ac ld a, [$d0ec] cp $1 jr nz, .asm_12e67 ld b, $4 ld a, $2 ret .asm_12e67 ld a, $3 ret ; 12e6a Function12e6a: ; 12e6a callba Functioncce5 ld a, [$d0ec] cp $1 jr nz, .asm_12e7c ld b, $4 ld a, $2 ret .asm_12e7c ld a, $3 ret ; 12e7f Function12e7f: ; 12e7f callba Functioncd9d ld a, [$d0ec] cp $1 jr nz, .asm_12e91 ld b, $4 ld a, $2 ret .asm_12e91 ld a, $3 ret ; 12e94 Function12e94: ; 12e94 callba Functioncade ld a, [$d0ec] cp $1 jr nz, .asm_12ea6 ld b, $4 ld a, $2 ret .asm_12ea6 ld a, $3 ret ; 12ea9 Function12ea9: ; 12ea9 callba Functioncc61 ld a, [$d0ec] and a jr z, .asm_12eba ld b, $4 ld a, $2 ret .asm_12eba ld a, $3 ret ; 12ebd Function12ebd: ; 12ebd callba Functionc909 ld a, [$d0ec] and a jr z, .asm_12ece ld b, $4 ld a, $2 ret .asm_12ece ld a, $3 ret ; 12ed1 Function12ed1: ; 12ed1 callba Functioncb9c ld a, [$d0ec] cp $1 jr nz, .asm_12ee3 ld b, $4 ld a, $2 ret .asm_12ee3 ld a, $3 ret ; 12ee6 Function12ee6: ; 12ee6 call Function12f05 jr nc, .asm_12ef3 callba Functionf3df jr .asm_12ef9 .asm_12ef3 ld hl, UnknownText_0x12f00 call PrintText .asm_12ef9 xor a ld [PartyMenuActionText], a ld a, $3 ret ; 12f00 UnknownText_0x12f00: ; 0x12f00 ; Not enough HP! text_jump UnknownText_0x1c1ce3 db "@" ; 0x12f05 Function12f05: ; 12f05 ld a, $24 call GetPartyParamLocation ld a, [hli] ld [hProduct], a ld a, [hl] ld [hMultiplicand], a ld a, $5 ld [hMultiplier], a ld b, $2 call Divide ld a, $23 call GetPartyParamLocation ld a, [$ffb6] sub [hl] dec hl ld a, [$ffb5] sbc [hl] ret ; 12f26 Function12f26: ; 12f26 callba Functionce7d ld a, [$d0ec] cp $1 jr nz, .asm_12f38 ld b, $4 ld a, $2 ret .asm_12f38 ld a, $3 ret ; 12f3b Function12f3b: ; 12f3b callba Functionceeb ld a, [$d0ec] cp $1 jr nz, .asm_12f4d ld b, $4 ld a, $2 ret .asm_12f4d ld a, $3 ret ; 12f50 Function12f50: ; 12f50 callba Function506bc ld b, $4 ld a, $2 ret ; 12f5b Function12f5b: ; 12f5b ld hl, Options ld a, [hl] push af set 4, [hl] call Functione58 call Function12f73 pop bc ld a, b ld [Options], a push af call WhiteBGMap pop af ret ; 12f73 Function12f73: ; 12f73 call Function13172 ld de, Unknown_12fb2 call Function1bb1 call Function131ef ld hl, $cfa5 set 6, [hl] jr Function12f93 Function12f86: ; 12f86 call Function1bd3 bit 1, a jp nz, Function12f9f bit 0, a jp nz, Function12f9c Function12f93: ; 12f93 call Function13235 call Function13256 jp Function12f86 ; 12f9c Function12f9c: ; 12f9c and a jr Function12fa0 Function12f9f: ; 12f9f scf Function12fa0: ; 12fa0 push af xor a ld [$d0e3], a ld hl, $cfa5 res 6, [hl] call ClearSprites call ClearTileMap pop af ret ; 12fb2 Unknown_12fb2: ; 12fb2 db $03, $01, $03, $01, $40, $00, $20, $c3 ; 12fba Function12fba: ; 12fba ld a, [CurPartySpecies] cp EGG jr z, .asm_12fd2 ld hl, Options ld a, [hl] push af set 4, [hl] call Function12fd5 pop af ld [Options], a call WhiteBGMap .asm_12fd2 ld a, $0 ret ; 12fd5 Function12fd5: ; 12fd5 ld a, [CurPartyMon] inc a ld [$d0d8], a call Function13172 call Function132d3 ld de, Unknown_13163 call Function1bb1 .asm_12fe8 call Function131ef ld hl, $cfa5 set 6, [hl] jr .asm_13009 .asm_12ff2 call Function1bd3 bit 1, a jp nz, .asm_13038 bit 0, a jp nz, .asm_130c6 bit 4, a jp nz, .asm_1305b bit 5, a jp nz, .asm_13075 .asm_13009 call Function13235 ld a, [$d0e3] and a jr nz, .asm_13018 call Function13256 jp .asm_12ff2 .asm_13018 ld a, $7f ld hl, $c57d ld bc, $0005 call ByteFill ld hl, $c591 ld bc, $0512 call ClearBox ld hl, $c591 ld de, $716b call PlaceString jp .asm_12ff2 .asm_13038: ; 13038 call PlayClickSFX call WaitSFX ld a, [$d0e3] and a jp z, Function13154 ld a, [$d0e3] ld [$cfa9], a xor a ld [$d0e3], a ld hl, $c4c9 ld bc, $0812 call ClearBox jp .asm_12fe8 ; 1305b .asm_1305b: ; 1305b ld a, [$d0e3] and a jp nz, .asm_12ff2 ld a, [CurPartyMon] ld b, a push bc call .asm_1308f pop bc ld a, [CurPartyMon] cp b jp z, .asm_12ff2 jp Function12fd5 .asm_13075: ; 13075 ld a, [$d0e3] and a jp nz, .asm_12ff2 ld a, [CurPartyMon] ld b, a push bc call .asm_130a7 pop bc ld a, [CurPartyMon] cp b jp z, .asm_12ff2 jp Function12fd5 .asm_1308f ld a, [CurPartyMon] inc a ld [CurPartyMon], a ld c, a ld b, 0 ld hl, PartySpecies add hl, bc ld a, [hl] cp $ff jr z, .asm_130a7 cp EGG ret nz jr .asm_1308f .asm_130a7 ld a, [CurPartyMon] and a ret z .asm_130ac ld a, [CurPartyMon] dec a ld [CurPartyMon], a ld c, a ld b, 0 ld hl, PartySpecies add hl, bc ld a, [hl] cp EGG ret nz ld a, [CurPartyMon] and a jr z, .asm_1308f jr .asm_130ac ; 130c6 .asm_130c6: ; 130c6 call PlayClickSFX call WaitSFX ld a, [$d0e3] and a jr nz, .asm_130de ld a, [$cfa9] ld [$d0e3], a call Function1bee jp .asm_13018 .asm_130de ld hl, PartyMon1Move1 ld bc, $0030 ld a, [CurPartyMon] call AddNTimes push hl call Function1313a pop hl ld bc, $0015 add hl, bc call Function1313a ld a, [IsInBattle] jr z, .asm_13113 ld hl, BattleMonMove1 ld bc, $0020 ld a, [CurPartyMon] call AddNTimes push hl call Function1313a pop hl ld bc, $0006 add hl, bc call Function1313a .asm_13113 ld de, SFX_SWITCH_POKEMON call PlaySFX call WaitSFX ld de, SFX_SWITCH_POKEMON call PlaySFX call WaitSFX ld hl, $c4c9 ld bc, $0812 call ClearBox ld hl, $c572 ld bc, $0109 call ClearBox jp .asm_12fe8 ; 1313a Function1313a: ; 1313a push hl ld a, [$cfa9] dec a ld c, a ld b, $0 add hl, bc ld d, h ld e, l pop hl ld a, [$d0e3] dec a ld c, a ld b, $0 add hl, bc ld a, [de] ld b, [hl] ld [hl], a ld a, b ld [de], a ret ; 13154 Function13154: ; 13154 xor a ld [$d0e3], a ld hl, $cfa5 res 6, [hl] call ClearSprites jp ClearTileMap ; 13163 Unknown_13163: ; 13163 db $03, $01, $03, $01, $40, $00, $20, $f3 ; 1316b String_1316b: ; 1316b db "Where?@" ; 13172 Function13172: ; 13172 call WhiteBGMap call ClearTileMap call ClearSprites xor a ld [hBGMapMode], a callba Functionfb571 callba Function8e814 ld a, [CurPartyMon] ld e, a ld d, $0 ld hl, PartySpecies add hl, de ld a, [hl] ld [$d265], a ld e, $2 callba Function8e83f ld hl, $c4b4 ld b, $9 ld c, $12 call TextBox ld hl, $c57c ld b, $5 ld c, $12 call TextBox ld hl, $c4a2 ld bc, $0203 call ClearBox xor a ld [MonType], a ld hl, PartyMon1Nickname ld a, [CurPartyMon] call GetNick ld hl, $c4b9 call PlaceString push bc callba Function5084a pop hl call PrintLevel ld hl, PlayerHPPal call SetHPPal ld b, $e call GetSGBLayout ld hl, $c4b0 ld bc, $0103 jp ClearBox ; 131ef Function131ef: ; 131ef xor a ld [hBGMapMode], a ld [$d0e3], a ld [MonType], a ld a, $1f call Predef ld hl, TempMonMove1 ld de, $d25e ld bc, $0004 call CopyBytes ld a, $28 ld [Buffer1], a ld hl, $c4de ld a, $20 call Predef ld hl, $c4fa ld a, $23 call Predef call WaitBGMap call Function32f9 ld a, [$d0eb] inc a ld [$cfa3], a ld hl, $c57c ld b, $5 ld c, $12 jp TextBox ; 13235 Function13235: ; 13235 ld hl, PartyMon1Move1 ld bc, $0030 ld a, [CurPartyMon] call AddNTimes ld a, [$cfa9] dec a ld c, a ld b, $0 add hl, bc ld a, [hl] ld [CurSpecies], a ld hl, $c591 ld bc, $0512 jp ClearBox ; 13256 Function13256: ; 13256 xor a ld [hBGMapMode], a ld hl, $c568 ld de, String_132ba call PlaceString ld hl, $c57c ld de, String_132c2 call PlaceString ld hl, $c59c ld de, String_132ca call PlaceString ld a, [CurSpecies] ld b, a ld hl, $c592 ld a, PREDEF_PRINT_MOVE_TYPE call Predef ld a, [CurSpecies] dec a ld hl, Moves + MOVE_POWER ld bc, Move2 - Move1 call AddNTimes ld a, BANK(Moves) call GetFarByte ld hl, $c5a0 cp $2 jr c, .asm_132a7 ld [$d265], a ld de, $d265 ld bc, $0103 call PrintNum jr .asm_132ad .asm_132a7 ld de, String_132cf call PlaceString .asm_132ad ld hl, $c5b9 ld a, $11 call Predef ld a, $1 ld [hBGMapMode], a ret ; 132ba String_132ba: ; 132ba db "┌─────┐@" ; 132c2 String_132c2: ; 132c2 db "│TYPE/└@" ; 132ca String_132ca: ; 132ca db "ATK/@" ; 132cf String_132cf: ; 132cf db "---@" ; 132d3 Function132d3: ; 132d3 call Function132da call Function132fe ret ; 132da Function132da: ; 132da ld a, [CurPartyMon] and a ret z ld c, a ld e, a ld d, 0 ld hl, PartyCount add hl, de .asm_132e7 ld a, [hl] and a jr z, .asm_132f3 cp EGG jr z, .asm_132f3 cp NUM_POKEMON + 1 jr c, .asm_132f8 .asm_132f3 dec hl dec c jr nz, .asm_132e7 ret .asm_132f8 ld hl, $c4b0 ld [hl], $71 ret ; 132fe Function132fe: ; 132fe ld a, [CurPartyMon] inc a ld c, a ld a, [PartyCount] cp c ret z ld e, c ld d, 0 ld hl, PartySpecies add hl, de .asm_1330f ld a, [hl] cp $ff ret z and a jr z, .asm_1331e cp EGG jr z, .asm_1331e cp NUM_POKEMON + 1 jr c, .asm_13321 .asm_1331e inc hl jr .asm_1330f .asm_13321 hlcoord 18, 0 ld [hl], "▶" ret ; 13327 SelectMenu:: ; 13327 call CheckRegisteredItem jr c, .NotRegistered jp UseRegisteredItem .NotRegistered call Function2e08 ld b, BANK(ItemMayBeRegisteredText) ld hl, ItemMayBeRegisteredText call Function269a call Functiona46 jp Function2dcf ; 13340 ItemMayBeRegisteredText: ; 13340 text_jump UnknownText_0x1c1cf3 db "@" ; 13345 CheckRegisteredItem: ; 13345 ld a, [WhichRegisteredItem] and a jr z, .NoRegisteredItem and REGISTERED_POCKET rlca rlca ld hl, .Pockets rst JumpTable ret .Pockets dw .CheckItem dw .CheckBall dw .CheckKeyItem dw .CheckTMHM .CheckItem ld hl, NumItems call .CheckRegisteredNo jr c, .NoRegisteredItem inc hl ld e, a ld d, 0 add hl, de add hl, de call .IsSameItem jr c, .NoRegisteredItem and a ret .CheckKeyItem ld a, [RegisteredItem] ld hl, KeyItems ld de, 1 call IsInArray jr nc, .NoRegisteredItem ld a, [RegisteredItem] ld [CurItem], a and a ret .CheckBall ld hl, NumBalls call .CheckRegisteredNo jr nc, .NoRegisteredItem inc hl ld e, a ld d, 0 add hl, de add hl, de call .IsSameItem jr c, .NoRegisteredItem ret .CheckTMHM jr .NoRegisteredItem .NoRegisteredItem xor a ld [WhichRegisteredItem], a ld [RegisteredItem], a scf ret ; 133a6 .CheckRegisteredNo ; 133a6 ld a, [WhichRegisteredItem] and REGISTERED_NUMBER dec a cp [hl] jr nc, .NotEnoughItems ld [$d107], a and a ret .NotEnoughItems scf ret ; 133b6 .IsSameItem ; 133b6 ld a, [RegisteredItem] cp [hl] jr nz, .NotSameItem ld [CurItem], a and a ret .NotSameItem scf ret ; 133c3 UseRegisteredItem: ; 133c3 callba CheckItemMenu ld a, [$d142] ld hl, .SwitchTo rst JumpTable ret .SwitchTo dw .CantUse dw .NoFunction dw .NoFunction dw .NoFunction dw .Current dw .Party dw .Overworld ; 133df .NoFunction ; 133df call Function2e08 call CantUseItem call Function2dcf and a ret ; 133ea .Current ; 133ea call Function2e08 call DoItemEffect call Function2dcf and a ret ; 133f5 .Party ; 133f5 call ResetWindow call FadeToMenu call DoItemEffect call Function2b3c call Function2dcf and a ret ; 13406 .Overworld ; 13406 call ResetWindow ld a, 1 ld [$d0ef], a call DoItemEffect xor a ld [$d0ef], a ld a, [$d0ec] cp 1 jr nz, .asm_13425 scf ld a, $80 ld [$ffa0], a ret ; 13422 .CantUse ; 13422 call ResetWindow .asm_13425 call CantUseItem call Function2dcf and a ret ; 1342d Function1342d:: ; 1342d call Function1344a call Function1347d jr c, .asm_13448 ld [$d041], a call Function134dd jr c, .asm_13448 ld hl, $d041 cp [hl] jr z, .asm_13448 call Function134c0 and a ret .asm_13448 scf ret ; 1344a Function1344a: ; 1344a ld a, b ld [EngineBuffer1], a ld a, e ld [$d03f], a ld a, d ld [MartPointer], a call Function1345a ret ; 1345a Function1345a: ; 1345a ld de, CurMart ld bc, $0004 ld hl, $d03f ld a, [hli] ld h, [hl] ld l, a ld a, [EngineBuffer1] call GetFarByte inc hl ld [de], a inc de .asm_1346f ld a, [EngineBuffer1] call GetFarByte ld [de], a inc de add hl, bc cp $ff jr nz, .asm_1346f ret ; 1347d Function1347d: ; 1347d ld hl, $d03f ld a, [hli] ld h, [hl] ld l, a ld a, [EngineBuffer1] call GetFarByte ld c, a inc hl ld a, [BackupMapGroup] ld d, a ld a, [BackupMapNumber] ld e, a ld b, $0 .asm_13495 ld a, [EngineBuffer1] call GetFarByte cp $ff jr z, .asm_134be inc hl inc hl ld a, [EngineBuffer1] call GetFarByte inc hl cp d jr nz, .asm_134b7 ld a, [EngineBuffer1] call GetFarByte inc hl cp e jr nz, .asm_134b8 jr .asm_134bb .asm_134b7 inc hl .asm_134b8 inc b jr .asm_13495 .asm_134bb xor a ld a, b ret .asm_134be scf ret ; 134c0 Function134c0: ; 134c0 push af ld hl, $d03f ld a, [hli] ld h, [hl] ld l, a inc hl pop af ld bc, $0004 call AddNTimes inc hl ld de, $dcac ld a, [EngineBuffer1] ld bc, $0003 call FarCopyBytes ret ; 134dd Function134dd: ; 134dd call Function1d6e ld hl, UnknownText_0x1350d call PrintText call Function13512 ld hl, MenuDataHeader_0x13550 call Function1d3c call Function352f call Function1ad2 xor a ld [$d0e4], a call Function350c call Function1c17 ld a, [$cf73] cp $2 jr z, .asm_1350b xor a ld a, [$cf77] ret .asm_1350b scf ret ; 1350d UnknownText_0x1350d: ; 0x1350d ; Which floor? text_jump UnknownText_0x1bd2bc db "@" ; 0x13512 Function13512: ; 13512 ld hl, Options ld a, [hl] push af set 4, [hl] ld hl, TileMap ld b, $4 ld c, $8 call TextBox ld hl, $c4c9 ld de, String_13537 call PlaceString ld hl, $c4f4 call Function1353f pop af ld [Options], a ret ; 13537 String_13537: ; 13537 db "Now on:@" ; 1353f Function1353f: ; 1353f push hl ld a, [$d041] ld e, a ld d, 0 ld hl, $d0f1 add hl, de ld a, [hl] pop de call Function1356b ret ; 13550 MenuDataHeader_0x13550: ; 0x13550 db $40 ; flags db 01, 12 ; start coords db 09, 18 ; end coords dw MenuData2_0x13558 db 1 ; default option ; 0x13558 MenuData2_0x13558: ; 0x13558 db $10 ; flags db 4, 0 ; rows, columns db 1 ; horizontal spacing dbw 0, $d0f0 dbw BANK(Function13568), Function13568 dbw BANK(NULL), NULL dbw BANK(NULL), NULL ; 13568 Function13568: ; 13568 ld a, [MenuSelection] ; $cf74 Function1356b: ; 1356b push de call Function13575 ld d, h ld e, l pop hl jp PlaceString ; 13575 Function13575: ; 13575 push de ld e, a ld d, 0 ld hl, .floors add hl, de add hl, de ld a, [hli] ld h, [hl] ld l, a pop de ret ; 13583 .floors dw .b4f dw .b3f dw .b2f dw .b1f dw ._1f dw ._2f dw ._3f dw ._4f dw ._5f dw ._6f dw ._7f dw ._8f dw ._9f dw ._10f dw ._11f dw .roof .b4f db "B4F@" .b3f db "B3F@" .b2f db "B2F@" .b1f db "B1F@" ._1f db "1F@" ._2f db "2F@" ._3f db "3F@" ._4f db "4F@" ._5f db "5F@" ._6f db "6F@" ._7f db "7F@" ._8f db "8F@" ._9f db "9F@" ._10f db "10F@" ._11f db "11F@" .roof db "ROOF@" ; 135db Function135db: ; 135db xor a ld [$df9c], a ld a, $14 ld [$dc79], a callba Function11490 ret ; 135eb UnknownScript_0x135eb:: ; 0x135eb writecode $3, $6 battlecheck startbattle returnafterbattle copybytetovar $dc79 iffalse UnknownScript_0x13603 end ; 0x135f8 UnknownScript_0x135f8:: ; 0x135f8 playsound SFX_ELEVATOR_END loadfont 2writetext UnknownText_0x1360f closetext 2jump UnknownScript_0x1360b ; 0x13603 UnknownScript_0x13603: ; 0x13603 playsound SFX_ELEVATOR_END loadfont 2writetext UnknownText_0x13614 closetext UnknownScript_0x1360b: ; 0x1360b loadmovesprites jumpstd $0016 ; 0x1360f UnknownText_0x1360f: ; 0x1360f ; ANNOUNCER: BEEEP! Time's up! text_jump UnknownText_0x1bd2ca db "@" ; 0x13614 UnknownText_0x13614: ; 0x13614 ; ANNOUNCER: The Contest is over! text_jump UnknownText_0x1bd2e7 db "@" ; 0x13619 UnknownScript_0x13619:: ; 0x13619 loadfont 2writetext UnknownText_0x13620 closetext loadmovesprites end ; 0x13620 UnknownText_0x13620: ; 0x13620 ; REPEL's effect wore off. text_jump UnknownText_0x1bd308 db "@" ; 0x13625 UnknownScript_0x13625:: ; 0x13625 loadfont copybytetovar Unkn2Pals itemtotext $0, $0 2writetext UnknownText_0x13645 giveitem $ff, $1 iffalse UnknownScript_0x1363e 3callasm Function1364f specialsound itemnotify 2jump UnknownScript_0x13643 ; 0x1363e UnknownScript_0x1363e: ; 0x1363e keeptextopen 2writetext UnknownText_0x1364a closetext UnknownScript_0x13643: ; 13643 loadmovesprites end ; 0x13645 UnknownText_0x13645: ; 0x13645 ; found @ ! text_jump UnknownText_0x1bd321 db "@" ; 0x1364a UnknownText_0x1364a: ; 0x1364a ; But has no space left… text_jump UnknownText_0x1bd331 db "@" ; 0x1364f Function1364f: ; 1364f ld hl, EngineBuffer1 ; $d03e (aliases: MenuItemsList, CurFruitTree, CurInput) ld a, [hli] ld d, [hl] ld e, a ld b, $1 call EventFlagAction ret Function1365b:: ; 1365b ld a, c ld de, .table2 - .table1 ld hl, .table1 call IsInArray jr nc, .asm_1367f ld a, $c ; jumpstd ld [$d03f], a inc hl ld a, [hli] ld [$d03f + 1], a ld a, [hli] ld [$d03f + 2], a ld a, BANK(UnknownScript_0x1369a) ld hl, UnknownScript_0x1369a call CallScript scf ret .asm_1367f xor a ret ; 13681 .table1 dbw $91, $0003 ; bookshelf .table2 dbw $93, $0031 ; pc dbw $94, $000b ; radio dbw $95, $0007 ; map dbw $96, $0006 ; merchandise dbw $97, $0009 ; tv dbw $9d, $0008 ; window dbw $9f, $0005 ; incense burner dbw $ff ; end ; 1369a UnknownScript_0x1369a: ; 0x1369a 2jump $d03f ; 0x1369d Function1369d: ; 1369d call ContestScore callba Function105f79 call Function13819 ld a, [$d00a] call Function13730 ld a, [$d00b] ld [$d265], a call GetPokemonName ld hl, UnknownText_0x13719 call PrintText ld a, [EndFlypoint] call Function13730 ld a, [MovementBuffer] ld [$d265], a call GetPokemonName ld hl, UnknownText_0x13702 call PrintText ld a, [DefaultFlypoint] call Function13730 ld a, [$d003] ld [$d265], a call GetPokemonName ld hl, UnknownText_0x136eb call PrintText jp Function13807 ; 136eb UnknownText_0x136eb: ; 0x136eb text_jump UnknownText_0x1c10fa start_asm ; 0x136f0 Function136f0: ; 136f0 ld de, SFX_1ST_PLACE call PlaySFX call WaitSFX ld hl, UnknownText_0x136fd ret ; 136fd UnknownText_0x136fd: ; 0x136fd ; The winning score was @ points! text_jump UnknownText_0x1c113f db "@" ; 0x13702 UnknownText_0x13702: ; 0x13702 ; Placing second was @ , who caught a @ !@ @ text_jump UnknownText_0x1c1166 start_asm ; 0x13707 Function13707: ; 13707 ld de, SFX_2ND_PLACE call PlaySFX call WaitSFX ld hl, UnknownText_0x13714 ret ; 13714 UnknownText_0x13714: ; 0x13714 ; The score was @ points! text_jump UnknownText_0x1c1196 db "@" ; 0x13719 UnknownText_0x13719: ; 0x13719 ; Placing third was @ , who caught a @ !@ @ text_jump UnknownText_0x1c11b5 start_asm ; 0x1371e Function1371e: ; 1371e ld de, SFX_3RD_PLACE call PlaySFX call WaitSFX ld hl, UnknownText_0x1372b ret ; 1372b UnknownText_0x1372b: ; 0x1372b ; The score was @ points! text_jump UnknownText_0x1c11e4 db "@" ; 0x13730 Function13730: ; 13730 dec a jr z, .asm_13777 ld c, a ld b, 0 ld hl, Unknown_13783 add hl, bc add hl, bc ld a, [hli] ld h, [hl] ld l, a ld a, [hli] ld c, a push hl push bc callab Function3952d ld hl, StringBuffer1 ld de, $d016 ld bc, $000d call CopyBytes ld hl, $d016 .asm_13757 ld a, [hli] cp $50 jr nz, .asm_13757 dec hl ld [hl], $7f inc hl ld d, h ld e, l pop bc pop hl push de ld a, [hl] ld b, a callab Function3994c ld hl, StringBuffer1 pop de ld bc, $000a jp CopyBytes .asm_13777 ld hl, PlayerName ld de, $d016 ld bc, $000b jp CopyBytes ; 13783 Unknown_13783: ; 13783 dw Unknown_13799 dw Unknown_13799 dw Unknown_137a4 dw Unknown_137af dw Unknown_137ba dw Unknown_137c5 dw Unknown_137d0 dw Unknown_137db dw Unknown_137e6 dw Unknown_137f1 dw Unknown_137fc ; 13799 Unknown_13799: db BUG_CATCHER, DON dbw KAKUNA, 300 dbw METAPOD, 285 dbw CATERPIE, 226 Unknown_137a4: db BUG_CATCHER, ED dbw BUTTERFREE, 286 dbw BUTTERFREE, 251 dbw CATERPIE, 237 Unknown_137af: db COOLTRAINERM, NICK dbw SCYTHER, 357 dbw BUTTERFREE, 349 dbw PINSIR, 368 Unknown_137ba: db POKEFANM, WILLIAM dbw PINSIR, 332 dbw BUTTERFREE, 324 dbw VENONAT, 321 Unknown_137c5: db BUG_CATCHER, BUG_CATCHER_BENNY dbw BUTTERFREE, 318 dbw WEEDLE, 295 dbw CATERPIE, 285 Unknown_137d0: db CAMPER, BARRY dbw PINSIR, 366 dbw VENONAT, 329 dbw KAKUNA, 314 Unknown_137db: db PICNICKER, CINDY dbw BUTTERFREE, 341 dbw METAPOD, 301 dbw CATERPIE, 264 Unknown_137e6: db BUG_CATCHER, JOSH dbw SCYTHER, 326 dbw BUTTERFREE, 292 dbw METAPOD, 282 Unknown_137f1: db YOUNGSTER, SAMUEL dbw WEEDLE, 270 dbw PINSIR, 282 dbw CATERPIE, 251 Unknown_137fc: db SCHOOLBOY, KIPP dbw VENONAT, 267 dbw PARAS, 254 dbw KAKUNA, 259 ; 13807 Function13807: ; 13807 ld hl, $d00a ld de, $fffc ld b, $3 .asm_1380f ld a, [hl] cp $1 jr z, .asm_13818 add hl, de dec b jr nz, .asm_1380f .asm_13818 ret ; 13819 Function13819: ; 13819 call Function13833 call Function138b0 ld hl, $d00e ld a, $1 ld [hli], a ld a, [$df9c] ld [hli], a ld a, [hProduct] ld [hli], a ld a, [hMultiplicand] ld [hl], a call Function1383e ret ; 13833 Function13833: ; 13833 ld hl, DefaultFlypoint ld b, $c xor a .asm_13839 ld [hli], a dec b jr nz, .asm_13839 ret ; 1383e Function1383e: ; 1383e ld de, $d010 ld hl, $d004 ld c, $2 call StringCmp jr c, .asm_1386b ld hl, EndFlypoint ld de, $d00a ld bc, $0004 call CopyBytes ld hl, DefaultFlypoint ld de, EndFlypoint ld bc, $0004 call CopyBytes ld hl, DefaultFlypoint call Function138a0 jr .asm_1389f .asm_1386b ld de, $d010 ld hl, $d008 ld c, $2 call StringCmp jr c, .asm_1388c ld hl, EndFlypoint ld de, $d00a ld bc, $0004 call CopyBytes ld hl, EndFlypoint call Function138a0 jr .asm_1389f .asm_1388c ld de, $d010 ld hl, $d00c ld c, $2 call StringCmp jr c, .asm_1389f ld hl, $d00a call Function138a0 .asm_1389f ret ; 138a0 Function138a0: ; 138a0 ld de, $d00e ld a, [de] inc de ld [hli], a ld a, [de] inc de ld [hli], a ld a, [de] inc de ld [hli], a ld a, [de] inc de ld [hl], a ret ; 138b0 Function138b0: ; 138b0 ld e, $0 .asm_138b2 push de call Function139ed pop de jr nz, .asm_138f9 ld a, e inc a inc a ld [$d00e], a dec a ld c, a ld b, 0 ld hl, Unknown_13783 add hl, bc add hl, bc ld a, [hli] ld h, [hl] ld l, a inc hl inc hl .asm_138cd call Random and $3 cp $3 jr z, .asm_138cd ld c, a ld b, $0 add hl, bc add hl, bc add hl, bc ld a, [hli] ld [$d00f], a ld a, [hli] ld h, [hl] ld l, a call Random and $7 ld c, a ld b, $0 add hl, bc ld a, h ld [$d010], a ld a, l ld [$d011], a push de call Function1383e pop de .asm_138f9 inc e ld a, e cp $a jr nz, .asm_138b2 ret ; 13900 ContestScore: ; 13900 ; Determine the player's score in the Bug Catching Contest. xor a ld [hProduct], a ld [hMultiplicand], a ld a, [wContestMonSpecies] ; Species and a jr z, .done ; Tally the following: ; Max HP * 4 ld a, [wContestMonMaxHP + 1] call .AddContestStat ld a, [wContestMonMaxHP + 1] call .AddContestStat ld a, [wContestMonMaxHP + 1] call .AddContestStat ld a, [wContestMonMaxHP + 1] call .AddContestStat ; Stats ld a, [wContestMonAttack + 1] call .AddContestStat ld a, [wContestMonDefense + 1] call .AddContestStat ld a, [wContestMonSpeed + 1] call .AddContestStat ld a, [wContestMonSpclAtk + 1] call .AddContestStat ld a, [wContestMonSpclDef + 1] call .AddContestStat ; DVs ld a, [wContestMonAtkDefDV] ld b, a and 2 add a add a ld c, a swap b ld a, b and 2 add a add c ld d, a ld a, [wContestMonSpdSpcDV] ld b, a and 2 ld c, a swap b ld a, b and 2 srl a add c add c add d add d call .AddContestStat ; Remaining HP / 8 ld a, [wContestMonHP + 1] srl a srl a srl a call .AddContestStat ; Whether it's holding an item ld a, [wContestMonItem] and a jr z, .done ld a, 1 call .AddContestStat .done ret ; 1397f .AddContestStat: ; 1397f ld hl, hMultiplicand add [hl] ld [hl], a ret nc dec hl inc [hl] ret ; 13988 ; decreases all pokemon's pokerus counter by b. if the lower nybble reaches zero, the pokerus is cured. ApplyPokerusTick: ; 13988 ld hl, PartyMon1PokerusStatus ld a, [PartyCount] and a ret z ld c, a .asm_13991 ld a, [hl] and $f jr z, .asm_139a0 sub b jr nc, .asm_1399a xor a .asm_1399a ld d, a ld a, [hl] and $f0 add d ld [hl], a .asm_139a0 ld de, PartyMon2 - PartyMon1 add hl, de dec c jr nz, .asm_13991 ret ; 139a8 Function139a8: ; 139a8 ld c, $a ld hl, Unknown_139fe .asm_139ad push bc push hl ld e, [hl] inc hl ld d, [hl] ld b, $0 call EventFlagAction pop hl inc hl inc hl pop bc dec c jr nz, .asm_139ad ld c, $5 .asm_139c0 push bc .asm_139c1 call Random cp $fa jr nc, .asm_139c1 ld c, $19 call SimpleDivide ld e, b ld d, 0 ld hl, Unknown_139fe add hl, de add hl, de ld e, [hl] inc hl ld d, [hl] push de ld b, $2 call EventFlagAction pop de ld a, c and a jr nz, .asm_139c1 ld b, $1 call EventFlagAction pop bc dec c jr nz, .asm_139c0 ret ; 139ed Function139ed: ; 139ed ld hl, Unknown_139fe ld e, a ld d, 0 add hl, de add hl, de ld e, [hl] inc hl ld d, [hl] ld b, $2 call EventFlagAction ret ; 139fe Unknown_139fe: ; 139fe dw $0716 dw $0717 dw $0718 dw $0719 dw $071a dw $071b dw $071c dw $071d dw $071e dw $071f ; 13a12 Function13a12: ; 13a12 ld hl, PartyMon1HP ld a, [hli] or [hl] jr z, .asm_13a2b ld hl, PartyCount ld a, $1 ld [hli], a inc hl ld a, [hl] ld [$df9b], a ld [hl], $ff xor a ld [ScriptVar], a ret .asm_13a2b ld a, $1 ld [ScriptVar], a ret ; 13a31 Function13a31: ; 13a31 ld hl, $dcd9 ld a, [$df9b] ld [hl], a ld b, $1 .asm_13a3a ld a, [hli] cp $ff jr z, .asm_13a42 inc b jr .asm_13a3a .asm_13a42 ld a, b ld [PartyCount], a ret ; 13a47 Function13a47: ; 13a47 ld hl, PartyCount ld a, [hl] and a ret z cp $7 jr c, .asm_13a54 ld a, $6 ld [hl], a .asm_13a54 inc hl ld b, a ld c, $0 .asm_13a58 ld a, [hl] and a jr z, .asm_13a64 cp $fc jr z, .asm_13a64 cp $fe jr c, .asm_13a73 .asm_13a64 ld [hl], $eb push hl push bc ld a, c ld hl, PartyMon1 call GetPartyLocation ld [hl], $eb pop bc pop hl .asm_13a73 inc hl inc c dec b jr nz, .asm_13a58 ld [hl], $ff ld hl, PartyMon1 ld a, [PartyCount] ld d, a ld e, $0 .asm_13a83 push de push hl ld b, h ld c, l ld a, [hl] and a jr z, .asm_13a8f cp $fc jr c, .asm_13a9c .asm_13a8f ld [hl], $eb push de ld d, $0 ld hl, PartySpecies add hl, de pop de ld a, $eb ld [hl], a .asm_13a9c ld [CurSpecies], a call GetBaseData ld hl, $001f add hl, bc ld a, [hl] cp $2 ld a, $2 jr c, .asm_13ab4 ld a, [hl] cp $64 jr c, .asm_13ab5 ld a, $64 .asm_13ab4 ld [hl], a .asm_13ab5 ld [CurPartyLevel], a ld hl, $0024 add hl, bc ld d, h ld e, l ld hl, $000a add hl, bc ld b, $1 ld a, $c call Predef pop hl ld bc, $0030 add hl, bc pop de inc e dec d jr nz, .asm_13a83 ld de, $de41 ld a, [PartyCount] ld b, a ld c, $0 .asm_13adc push bc call Function13b71 push de callba Function17d073 pop hl pop bc jr nc, .asm_13b0e push bc push hl ld hl, PartySpecies push bc ld b, $0 add hl, bc pop bc ld a, [hl] cp $fd ld hl, String_13b6b jr z, .asm_13b06 ld [$d265], a call GetPokemonName ld hl, StringBuffer1 .asm_13b06 pop de ld bc, $000b call CopyBytes pop bc .asm_13b0e inc c dec b jr nz, .asm_13adc ld de, $ddff ld a, [PartyCount] ld b, a ld c, $0 .asm_13b1b push bc call Function13b71 push de callba Function17d073 pop hl jr nc, .asm_13b34 ld d, h ld e, l ld hl, PlayerName ld bc, $000b call CopyBytes .asm_13b34 pop bc inc c dec b jr nz, .asm_13b1b ld hl, $dce1 ld a, [PartyCount] ld b, a .asm_13b40 push hl ld c, $4 ld a, [hl] and a jr z, .asm_13b4b cp $fc jr c, .asm_13b4d .asm_13b4b ld [hl], $1 .asm_13b4d ld a, [hl] and a jr z, .asm_13b55 cp $fc jr c, .asm_13b5c .asm_13b55 xor a ld [hli], a dec c jr nz, .asm_13b55 jr .asm_13b60 .asm_13b5c inc hl dec c jr nz, .asm_13b4d .asm_13b60 pop hl push bc ld bc, $0030 add hl, bc pop bc dec b jr nz, .asm_13b40 ret ; 13b6b String_13b6b: ; 13b6b db "タマゴ@@@" ; 13b71 Function13b71: ; 13b71 push de ld c, $1 ld b, $6 .asm_13b76 ld a, [de] cp $50 jr z, .asm_13b85 inc de inc c dec b jr nz, .asm_13b76 dec c dec de ld a, $50 ld [de], a .asm_13b85 pop de ret ; 13b87 GetSquareRoot: ; 13b87 ; Return the square root of de in b. ; Rather than calculating the result, we take the index of the ; first value in a table of squares that isn't lower than de. ld hl, Squares ld b, 0 .loop ; Make sure we don't go past the end of the table. inc b ld a, b cp $ff ret z ; Iterate over the table until b**2 >= de. ld a, [hli] sub e ld a, [hli] sbc d jr c, .loop ret Squares: ; 13b98 root set 1 rept $ff dw root*root root set root+1 endr ; 13d96 SECTION "bank5", ROMX, BANK[$5] Function14000: ; 14000 ld a, $a ld [MBC3SRamEnable], a call LatchClock ld a, $c ld [MBC3SRamBank], a ld a, [MBC3RTC] set 6, a ld [MBC3RTC], a call CloseSRAM ret ; 14019 Function14019: ; 14019 ld a, $a ld [MBC3SRamEnable], a call LatchClock ld a, $c ld [MBC3SRamBank], a ld a, [MBC3RTC] res 6, a ld [MBC3RTC], a call CloseSRAM ret ; 14032 GetTimeOfDay:: ; 14032 ; get time of day based on the current hour ld a, [hHours] ; hour ld hl, TimesOfDay .check ; if we're within the given time period, ; get the corresponding time of day cp [hl] jr c, .match ; else, get the next entry inc hl inc hl ; try again jr .check .match ; get time of day inc hl ld a, [hl] ld [TimeOfDay], a ret ; 14044 TimesOfDay: ; 14044 ; hours for the time of day ; 04-09 morn | 10-17 day | 18-03 nite db 04, NITE db 10, MORN db 18, DAY db 24, NITE db -1, MORN ; 1404e Unknown_1404e: ; 1404e db 20, 2 db 40, 0 db 60, 1 db -1, 0 ; 14056 Function14056: ; 14056 call UpdateTime ld hl, $d4ba ld a, [CurDay] ld [hli], a ld a, [hHours] ld [hli], a ld a, [hMinutes] ld [hli], a ld a, [hSeconds] ld [hli], a ret ; 1406a Function1406a: ; 1406a ld a, $a ld [MBC3SRamEnable], a call LatchClock ld hl, MBC3RTC ld a, $c ld [MBC3SRamBank], a res 7, [hl] ld a, $0 ld [MBC3SRamBank], a xor a ld [$ac60], a call CloseSRAM ret ; 14089 StartClock:: ; 14089 call GetClock call Function1409b call FixDays jr nc, .asm_14097 call Function6d3 .asm_14097 call Function14019 ret ; 1409b Function1409b: ; 1409b ld hl, hRTCDayHi bit 7, [hl] jr nz, .asm_140a8 bit 6, [hl] jr nz, .asm_140a8 xor a ret .asm_140a8 ld a, $80 call Function6d3 ret ; 140ae Function140ae: ; 140ae call Function6e3 ld c, a and $c0 jr nz, .asm_140c8 ld a, c and $20 jr z, .asm_140eb call UpdateTime ld a, [$d4ba] ld b, a ld a, [CurDay] cp b jr c, .asm_140eb .asm_140c8 callba Function113da callba Function170923 ld a, $5 call GetSRAMBank ld a, [$aa8c] inc a ld [$aa8c], a ld a, [$b2fa] inc a ld [$b2fa], a call CloseSRAM ret .asm_140eb xor a ret ; 140ed Function140ed:: ; 140ed call GetClock call FixDays ld hl, hRTCSeconds ld de, StartSecond ld a, [$d089] sub [hl] dec hl jr nc, .asm_14102 add $3c .asm_14102 ld [de], a dec de ld a, [$d088] sbc [hl] dec hl jr nc, .asm_1410d add $3c .asm_1410d ld [de], a dec de ld a, [$d087] sbc [hl] dec hl jr nc, .asm_14118 add $18 .asm_14118 ld [de], a dec de ld a, [StringBuffer2] sbc [hl] dec hl jr nc, .asm_14128 add $8c ld c, $7 call SimpleDivide .asm_14128 ld [de], a ret ; 1412a Function1412a: ; 1412a ld a, $1 ld [rVBK], a call Get2bpp xor a ld [rVBK], a ret ; 14135 Function14135:: ; 14135 call GetPlayerSprite ld a, [UsedSprites] ld [$ffbd], a ld a, [$d155] ld [$ffbe], a call Function143c8 ret ; 14146 Function14146: ; 14146 ld hl, $d13e ld a, [hl] push af res 7, [hl] set 6, [hl] call Function14209 pop af ld [$d13e], a ret ; 14157 Function14157: ; 14157 ld hl, $d13e ld a, [hl] push af set 7, [hl] res 6, [hl] call Function14209 pop af ld [$d13e], a ret ; 14168 Function14168:: ; 14168 call Function1416f call Function14209 ret ; 1416f Function1416f: ; 1416f xor a ld bc, $0040 ld hl, UsedSprites call ByteFill call GetPlayerSprite call AddMapSprites call Function142db ret ; 14183 GetPlayerSprite: ; 14183 ; Get Chris or Kris's sprite. ld hl, .Chris ld a, [$d45b] bit 2, a jr nz, .go ld a, [PlayerGender] bit 0, a jr z, .go ld hl, .Kris .go ld a, [PlayerState] ld c, a .loop ld a, [hli] cp c jr z, .asm_141ac inc hl cp $ff jr nz, .loop ; Any player state not in the array defaults to Chris's sprite. xor a ; ld a, PLAYER_NORMAL ld [PlayerState], a ld a, SPRITE_CHRIS jr .asm_141ad .asm_141ac ld a, [hl] .asm_141ad ld [UsedSprites + 0], a ld [$d4d6], a ld [$d71f], a ret .Chris db PLAYER_NORMAL, SPRITE_CHRIS db PLAYER_BIKE, SPRITE_CHRIS_BIKE db PLAYER_SURF, SPRITE_SURF db PLAYER_SURF_PIKA, SPRITE_SURFING_PIKACHU db $ff .Kris db PLAYER_NORMAL, SPRITE_KRIS db PLAYER_BIKE, SPRITE_KRIS_BIKE db PLAYER_SURF, SPRITE_SURF db PLAYER_SURF_PIKA, SPRITE_SURFING_PIKACHU db $ff ; 141c9 AddMapSprites: ; 141c9 call GetMapPermission call CheckOutdoorMap jr z, .outdoor call AddIndoorSprites ret .outdoor call AddOutdoorSprites ret ; 141d9 AddIndoorSprites: ; 141d9 ld hl, MapObjects + 1 * OBJECT_LENGTH + 1 ; sprite ld a, 1 .loop push af ld a, [hl] call AddSpriteGFX ld de, OBJECT_LENGTH add hl, de pop af inc a cp NUM_OBJECTS jr nz, .loop ret ; 141ee AddOutdoorSprites: ; 141ee ld a, [MapGroup] dec a ld c, a ld b, 0 ld hl, OutdoorSprites add hl, bc add hl, bc ld a, [hli] ld h, [hl] ld l, a ld c, $17 .loop push bc ld a, [hli] call AddSpriteGFX pop bc dec c jr nz, .loop ret ; 14209 Function14209: ; 14209 ld a, $4 call Function263b call Function1439b call Function14215 ret ; 14215 Function14215: ; 14215 ld a, [$d13e] bit 6, a ret nz ld c, $8 callba Function1442f call GetMapPermission call CheckOutdoorMap ld c, $b jr z, .asm_1422f ld c, $a .asm_1422f callba Function1442f ret ; 14236 SafeGetSprite: ; 14236 push hl call GetSprite pop hl ret ; 1423c GetSprite: ; 1423c call GetMonSprite ret c ld hl, SpriteHeaders dec a ld c, a ld b, 0 ld a, 6 call AddNTimes ld a, [hli] ld e, a ld a, [hli] ld d, a ld a, [hli] swap a ld c, a ld b, [hl] ld a, [hli] ld l, [hl] ld h, a ret ; 14259 GetMonSprite: ; 14259 ; Return carry if a monster sprite was loaded. cp SPRITE_POKEMON jr c, .Normal cp SPRITE_DAYCARE_MON_1 jr z, .BreedMon1 cp SPRITE_DAYCARE_MON_2 jr z, .BreedMon2 cp SPRITE_VARS jr nc, .Variable jr .Icon .Normal and a ret .Icon sub SPRITE_POKEMON ld e, a ld d, 0 ld hl, SpriteMons add hl, de ld a, [hl] jr .Mon .BreedMon1 ld a, [BreedMon1Species] jr .Mon .BreedMon2 ld a, [BreedMon2Species] .Mon ld e, a and a jr z, .asm_1429f callba Function8e82b ld l, 1 ld h, 0 scf ret .Variable sub SPRITE_VARS ld e, a ld d, 0 ld hl, VariableSprites add hl, de ld a, [hl] and a jp nz, GetMonSprite .asm_1429f ld a, 1 ld l, 1 ld h, 0 and a ret ; 142a7 Function142a7:: ; 142a7 cp SPRITE_POKEMON jr nc, .asm_142c2 push hl push bc ld hl, SpriteHeaders + 4 dec a ld c, a ld b, 0 ld a, 6 call AddNTimes ld a, [hl] pop bc pop hl cp 3 jr nz, .asm_142c2 scf ret .asm_142c2 and a ret ; 142c4 _GetSpritePalette:: ; 142c4 ld a, c call GetMonSprite jr c, .asm_142d8 ld hl, SpriteHeaders + 5 ; palette dec a ld c, a ld b, 0 ld a, 6 call AddNTimes ld c, [hl] ret .asm_142d8 xor a ld c, a ret ; 142db Function142db: ; 142db call LoadSpriteGFX call SortUsedSprites call ArrangeUsedSprites ret ; 142e5 AddSpriteGFX: ; 142e5 ; Add any new sprite ids to a list of graphics to be loaded. ; Return carry if the list is full. push hl push bc ld b, a ld hl, UsedSprites + 2 ld c, $1f .loop ld a, [hl] cp b jr z, .exists and a jr z, .new inc hl inc hl dec c jr nz, .loop pop bc pop hl scf ret .exists pop bc pop hl and a ret .new ld [hl], b pop bc pop hl and a ret ; 14306 LoadSpriteGFX: ; 14306 ld hl, UsedSprites ld b, $20 .loop ld a, [hli] and a jr z, .done push hl call .LoadSprite pop hl ld [hli], a dec b jr nz, .loop .done ret .LoadSprite call GetSprite ld a, l ret ; 1431e SortUsedSprites: ; 1431e ; Bubble-sort sprites by type. ; Run backwards through UsedSprites to find the last one. ld c, $20 ld de, UsedSprites + ($20 - 1) * 2 .FindLastSprite ld a, [de] and a jr nz, .FoundLastSprite dec de dec de dec c jr nz, .FindLastSprite .FoundLastSprite dec c jr z, .quit ; If the length of the current sprite is ; higher than a later one, swap them. inc de ld hl, UsedSprites + 1 .CheckSprite push bc push de push hl .CheckFollowing ld a, [de] cp [hl] jr nc, .next ; Swap the two sprites. ld b, a ld a, [hl] ld [hl], b ld [de], a dec de dec hl ld a, [de] ld b, a ld a, [hl] ld [hl], b ld [de], a inc de inc hl ; Keep doing this until everything's in order. .next dec de dec de dec c jr nz, .CheckFollowing pop hl inc hl inc hl pop de pop bc dec c jr nz, .CheckSprite .quit ret ; 14355 ArrangeUsedSprites: ; 14355 ; Get the length of each sprite and space them out in VRAM. ; Crystal introduces a second table in VRAM bank 0. ld hl, UsedSprites ld c, $20 ld b, 0 .FirstTableLength ; Keep going until the end of the list. ld a, [hli] and a jr z, .quit ld a, [hl] call GetSpriteLength ; Spill over into the second table after $80 tiles. add b cp $80 jr z, .next jr nc, .SecondTable .next ld [hl], b inc hl ld b, a ; Assumes the next table will be reached before c hits 0. dec c jr nz, .FirstTableLength .SecondTable ; The second tile table starts at tile $80. ld b, $80 dec hl .SecondTableLength ; Keep going until the end of the list. ld a, [hli] and a jr z, .quit ld a, [hl] call GetSpriteLength ; There are only two tables, so don't go any further than that. add b jr c, .quit ld [hl], b ld b, a inc hl dec c jr nz, .SecondTableLength .quit ret ; 14386 GetSpriteLength: ; 14386 ; Return the length of sprite type a in tiles. cp WALKING_SPRITE jr z, .AnyDirection cp STANDING_SPRITE jr z, .AnyDirection cp STILL_SPRITE jr z, .OneDirection ld a, 12 ret .AnyDirection ld a, 12 ret .OneDirection ld a, 4 ret ; 1439b Function1439b: ; 1439b ld hl, UsedSprites ld c, $20 .asm_143a0 ld a, [$d13e] res 5, a ld [$d13e], a ld a, [hli] and a jr z, .asm_143c7 ld [$ffbd], a ld a, [hli] ld [$ffbe], a bit 7, a jr z, .asm_143bd ld a, [$d13e] set 5, a ld [$d13e], a .asm_143bd push bc push hl call Function143c8 pop hl pop bc dec c jr nz, .asm_143a0 .asm_143c7 ret ; 143c8 Function143c8: ; 143c8 ld a, [$ffbd] call SafeGetSprite ld a, [$ffbe] call Function14406 push hl push de push bc ld a, [$d13e] bit 7, a jr nz, .asm_143df call Function14418 .asm_143df pop bc ld l, c ld h, $0 add hl, hl add hl, hl add hl, hl add hl, hl pop de add hl, de ld d, h ld e, l pop hl ld a, [$d13e] bit 5, a jr nz, .asm_14405 bit 6, a jr nz, .asm_14405 ld a, [$ffbd] call Function142a7 jr c, .asm_14405 ld a, h add $8 ld h, a call Function14418 .asm_14405 ret ; 14406 Function14406: ; 14406 and $7f ld l, a ld h, $0 add hl, hl add hl, hl add hl, hl add hl, hl ld a, l add $0 ld l, a ld a, h adc $80 ld h, a ret ; 14418 Function14418: ; 14418 ld a, [rVBK] push af ld a, [$d13e] bit 5, a ld a, $1 jr z, .asm_14426 ld a, $0 .asm_14426 ld [rVBK], a call Get2bpp pop af ld [rVBK], a ret ; 1442f Function1442f:: ; 1442f ld a, c ld bc, 6 ld hl, EmotesPointers call AddNTimes ld e, [hl] inc hl ld d, [hl] inc hl ld c, [hl] swap c inc hl ld b, [hl] inc hl ld a, [hli] ld h, [hl] ld l, a ld a, c and a ret z call Function1412a ret ; 1444d EmotesPointers: ; 144d ; dw source address ; db length, bank ; dw dest address dw ShockEmote db $40, BANK(ShockEmote) dw $8f80 dw QuestionEmote db $40, BANK(QuestionEmote) dw $8f80 dw HappyEmote db $40, BANK(HappyEmote) dw $8f80 dw SadEmote db $40, BANK(SadEmote) dw $8f80 dw HeartEmote db $40, BANK(HeartEmote) dw $8f80 dw BoltEmote db $40, BANK(BoltEmote) dw $8f80 dw SleepEmote db $40, BANK(SleepEmote) dw $8f80 dw FishEmote db $40, BANK(FishEmote) dw $8f80 dw FishingRodGFX + $00 db $10, BANK(FishingRodGFX) dw $8fc0 dw FishingRodGFX + $10 db $20, BANK(FishingRodGFX) dw $8fc0 dw FishingRodGFX + $30 db $20, BANK(FishingRodGFX) dw $8fe0 dw FishingRodGFX + $50 db $10, BANK(FishingRodGFX) dw $8fe0 ; 14495 SpriteMons: ; 14495 db UNOWN db GEODUDE db GROWLITHE db WEEDLE db SHELLDER db ODDISH db GENGAR db ZUBAT db MAGIKARP db SQUIRTLE db TOGEPI db BUTTERFREE db DIGLETT db POLIWAG db PIKACHU db CLEFAIRY db CHARMANDER db JYNX db STARMIE db BULBASAUR db JIGGLYPUFF db GRIMER db EKANS db PARAS db TENTACOOL db TAUROS db MACHOP db VOLTORB db LAPRAS db RHYDON db MOLTRES db SNORLAX db GYARADOS db LUGIA db HO_OH ; 144b8 OutdoorSprites: ; 144b8 ; Valid sprite IDs for each map group. dw Group1Sprites dw Group2Sprites dw Group3Sprites dw Group4Sprites dw Group5Sprites dw Group6Sprites dw Group7Sprites dw Group8Sprites dw Group9Sprites dw Group10Sprites dw Group11Sprites dw Group12Sprites dw Group13Sprites dw Group14Sprites dw Group15Sprites dw Group16Sprites dw Group17Sprites dw Group18Sprites dw Group19Sprites dw Group20Sprites dw Group21Sprites dw Group22Sprites dw Group23Sprites dw Group24Sprites dw Group25Sprites dw Group26Sprites ; 144ec Group13Sprites: ; 144ec db SPRITE_SUICUNE db SPRITE_SILVER_TROPHY db SPRITE_FAMICOM db SPRITE_POKEDEX db SPRITE_WILL db SPRITE_KAREN db SPRITE_NURSE db SPRITE_OLD_LINK_RECEPTIONIST db SPRITE_BIG_LAPRAS db SPRITE_BIG_ONIX db SPRITE_SUDOWOODO db SPRITE_BIG_SNORLAX db SPRITE_TEACHER db SPRITE_FISHER db SPRITE_YOUNGSTER db SPRITE_BLUE db SPRITE_GRAMPS db SPRITE_BUG_CATCHER db SPRITE_COOLTRAINER_F db SPRITE_SWIMMER_GIRL db SPRITE_SWIMMER_GUY db SPRITE_POKE_BALL db SPRITE_FRUIT_TREE ; 14503 Group23Sprites: ; 14503 db SPRITE_SUICUNE db SPRITE_SILVER_TROPHY db SPRITE_FAMICOM db SPRITE_POKEDEX db SPRITE_WILL db SPRITE_KAREN db SPRITE_NURSE db SPRITE_OLD_LINK_RECEPTIONIST db SPRITE_BIG_LAPRAS db SPRITE_BIG_ONIX db SPRITE_SUDOWOODO db SPRITE_BIG_SNORLAX db SPRITE_TEACHER db SPRITE_FISHER db SPRITE_YOUNGSTER db SPRITE_BLUE db SPRITE_GRAMPS db SPRITE_BUG_CATCHER db SPRITE_COOLTRAINER_F db SPRITE_SWIMMER_GIRL db SPRITE_SWIMMER_GUY db SPRITE_POKE_BALL db SPRITE_FRUIT_TREE ; 1451a Group14Sprites: ; 1451a db SPRITE_SUICUNE db SPRITE_SILVER_TROPHY db SPRITE_FAMICOM db SPRITE_POKEDEX db SPRITE_WILL db SPRITE_KAREN db SPRITE_NURSE db SPRITE_OLD_LINK_RECEPTIONIST db SPRITE_BIG_LAPRAS db SPRITE_BIG_ONIX db SPRITE_SUDOWOODO db SPRITE_BIG_SNORLAX db SPRITE_TEACHER db SPRITE_FISHER db SPRITE_YOUNGSTER db SPRITE_BLUE db SPRITE_GRAMPS db SPRITE_BUG_CATCHER db SPRITE_COOLTRAINER_F db SPRITE_SWIMMER_GIRL db SPRITE_SWIMMER_GUY db SPRITE_POKE_BALL db SPRITE_FRUIT_TREE ; 14531 Group6Sprites: ; 14531 db SPRITE_SUICUNE db SPRITE_SILVER_TROPHY db SPRITE_FAMICOM db SPRITE_POKEDEX db SPRITE_WILL db SPRITE_KAREN db SPRITE_NURSE db SPRITE_OLD_LINK_RECEPTIONIST db SPRITE_BIG_LAPRAS db SPRITE_BIG_ONIX db SPRITE_SUDOWOODO db SPRITE_BIG_SNORLAX db SPRITE_TEACHER db SPRITE_FISHER db SPRITE_YOUNGSTER db SPRITE_BLUE db SPRITE_GRAMPS db SPRITE_BUG_CATCHER db SPRITE_COOLTRAINER_F db SPRITE_SWIMMER_GIRL db SPRITE_SWIMMER_GUY db SPRITE_POKE_BALL db SPRITE_FRUIT_TREE ; 14548 Group7Sprites: ; 14548 db SPRITE_SUICUNE db SPRITE_SILVER_TROPHY db SPRITE_FAMICOM db SPRITE_POKEDEX db SPRITE_WILL db SPRITE_KAREN db SPRITE_NURSE db SPRITE_OLD_LINK_RECEPTIONIST db SPRITE_BIG_LAPRAS db SPRITE_BIG_ONIX db SPRITE_SUDOWOODO db SPRITE_BIG_SNORLAX db SPRITE_COOLTRAINER_M db SPRITE_SUPER_NERD db SPRITE_COOLTRAINER_F db SPRITE_FISHER db SPRITE_YOUNGSTER db SPRITE_LASS db SPRITE_POKEFAN_M db SPRITE_ROCKET db SPRITE_MISTY db SPRITE_POKE_BALL db SPRITE_SLOWPOKE ; 1455f Group25Sprites: ; 1455f db SPRITE_SUICUNE db SPRITE_SILVER_TROPHY db SPRITE_FAMICOM db SPRITE_POKEDEX db SPRITE_WILL db SPRITE_KAREN db SPRITE_NURSE db SPRITE_OLD_LINK_RECEPTIONIST db SPRITE_BIG_LAPRAS db SPRITE_BIG_ONIX db SPRITE_SUDOWOODO db SPRITE_BIG_SNORLAX db SPRITE_COOLTRAINER_M db SPRITE_SUPER_NERD db SPRITE_COOLTRAINER_F db SPRITE_FISHER db SPRITE_YOUNGSTER db SPRITE_LASS db SPRITE_POKEFAN_M db SPRITE_ROCKET db SPRITE_MISTY db SPRITE_POKE_BALL db SPRITE_SLOWPOKE ; 14576 Group21Sprites: ; 14576 db SPRITE_SUICUNE db SPRITE_SILVER_TROPHY db SPRITE_FAMICOM db SPRITE_POKEDEX db SPRITE_WILL db SPRITE_KAREN db SPRITE_NURSE db SPRITE_OLD_LINK_RECEPTIONIST db SPRITE_BIG_LAPRAS db SPRITE_BIG_ONIX db SPRITE_SUDOWOODO db SPRITE_BIG_SNORLAX db SPRITE_FISHER db SPRITE_POLIWAG db SPRITE_TEACHER db SPRITE_GRAMPS db SPRITE_YOUNGSTER db SPRITE_LASS db SPRITE_BIKER db SPRITE_SILVER db SPRITE_BLUE db SPRITE_POKE_BALL db SPRITE_FRUIT_TREE ; 1458d Group18Sprites: ; 1458d db SPRITE_SUICUNE db SPRITE_SILVER_TROPHY db SPRITE_FAMICOM db SPRITE_POKEDEX db SPRITE_WILL db SPRITE_KAREN db SPRITE_NURSE db SPRITE_OLD_LINK_RECEPTIONIST db SPRITE_BIG_LAPRAS db SPRITE_BIG_ONIX db SPRITE_SUDOWOODO db SPRITE_BIG_SNORLAX db SPRITE_POKEFAN_M db SPRITE_MACHOP db SPRITE_GRAMPS db SPRITE_YOUNGSTER db SPRITE_FISHER db SPRITE_TEACHER db SPRITE_SUPER_NERD db SPRITE_BIG_SNORLAX db SPRITE_BIKER db SPRITE_POKE_BALL db SPRITE_FRUIT_TREE ; 145a4 Group12Sprites: ; 145a4 db SPRITE_SUICUNE db SPRITE_SILVER_TROPHY db SPRITE_FAMICOM db SPRITE_POKEDEX db SPRITE_WILL db SPRITE_KAREN db SPRITE_NURSE db SPRITE_OLD_LINK_RECEPTIONIST db SPRITE_BIG_LAPRAS db SPRITE_BIG_ONIX db SPRITE_SUDOWOODO db SPRITE_BIG_SNORLAX db SPRITE_POKEFAN_M db SPRITE_MACHOP db SPRITE_GRAMPS db SPRITE_YOUNGSTER db SPRITE_FISHER db SPRITE_TEACHER db SPRITE_SUPER_NERD db SPRITE_BIG_SNORLAX db SPRITE_BIKER db SPRITE_POKE_BALL db SPRITE_FRUIT_TREE ; 145bb Group17Sprites: ; 145bb db SPRITE_SUICUNE db SPRITE_SILVER_TROPHY db SPRITE_FAMICOM db SPRITE_POKEDEX db SPRITE_WILL db SPRITE_KAREN db SPRITE_NURSE db SPRITE_OLD_LINK_RECEPTIONIST db SPRITE_BIG_LAPRAS db SPRITE_BIG_ONIX db SPRITE_SUDOWOODO db SPRITE_BIG_SNORLAX db SPRITE_POKEFAN_M db SPRITE_MACHOP db SPRITE_GRAMPS db SPRITE_YOUNGSTER db SPRITE_FISHER db SPRITE_TEACHER db SPRITE_SUPER_NERD db SPRITE_BIG_SNORLAX db SPRITE_BIKER db SPRITE_POKE_BALL db SPRITE_FRUIT_TREE ; 145d2 Group16Sprites: ; 145d2 db SPRITE_SUICUNE db SPRITE_SILVER_TROPHY db SPRITE_FAMICOM db SPRITE_POKEDEX db SPRITE_WILL db SPRITE_KAREN db SPRITE_NURSE db SPRITE_OLD_LINK_RECEPTIONIST db SPRITE_BIG_LAPRAS db SPRITE_BIG_ONIX db SPRITE_SUDOWOODO db SPRITE_BIG_SNORLAX db SPRITE_POKEFAN_M db SPRITE_BUENA db SPRITE_GRAMPS db SPRITE_YOUNGSTER db SPRITE_FISHER db SPRITE_TEACHER db SPRITE_SUPER_NERD db SPRITE_MACHOP db SPRITE_BIKER db SPRITE_POKE_BALL db SPRITE_BOULDER ; 145e9 Group24Sprites: ; 145e9 db SPRITE_SUICUNE db SPRITE_SILVER_TROPHY db SPRITE_FAMICOM db SPRITE_POKEDEX db SPRITE_WILL db SPRITE_KAREN db SPRITE_NURSE db SPRITE_OLD_LINK_RECEPTIONIST db SPRITE_BIG_LAPRAS db SPRITE_BIG_ONIX db SPRITE_SUDOWOODO db SPRITE_BIG_SNORLAX db SPRITE_SILVER db SPRITE_TEACHER db SPRITE_FISHER db SPRITE_COOLTRAINER_M db SPRITE_YOUNGSTER db SPRITE_MONSTER db SPRITE_GRAMPS db SPRITE_BUG_CATCHER db SPRITE_COOLTRAINER_F db SPRITE_POKE_BALL db SPRITE_FRUIT_TREE ; 14600 Group26Sprites: ; 14600 db SPRITE_SUICUNE db SPRITE_SILVER_TROPHY db SPRITE_FAMICOM db SPRITE_POKEDEX db SPRITE_WILL db SPRITE_KAREN db SPRITE_NURSE db SPRITE_OLD_LINK_RECEPTIONIST db SPRITE_BIG_LAPRAS db SPRITE_BIG_ONIX db SPRITE_SUDOWOODO db SPRITE_BIG_SNORLAX db SPRITE_SILVER db SPRITE_TEACHER db SPRITE_FISHER db SPRITE_COOLTRAINER_M db SPRITE_YOUNGSTER db SPRITE_MONSTER db SPRITE_GRAMPS db SPRITE_BUG_CATCHER db SPRITE_COOLTRAINER_F db SPRITE_POKE_BALL db SPRITE_FRUIT_TREE ; 14617 Group19Sprites: ; 14617 db SPRITE_SUICUNE db SPRITE_SILVER_TROPHY db SPRITE_FAMICOM db SPRITE_POKEDEX db SPRITE_WILL db SPRITE_KAREN db SPRITE_NURSE db SPRITE_OLD_LINK_RECEPTIONIST db SPRITE_BIG_LAPRAS db SPRITE_BIG_ONIX db SPRITE_SUDOWOODO db SPRITE_BIG_SNORLAX db SPRITE_SILVER db SPRITE_TEACHER db SPRITE_FISHER db SPRITE_COOLTRAINER_M db SPRITE_YOUNGSTER db SPRITE_MONSTER db SPRITE_GRAMPS db SPRITE_BUG_CATCHER db SPRITE_COOLTRAINER_F db SPRITE_POKE_BALL db SPRITE_FRUIT_TREE ; 1462e Group10Sprites: ; 1462e db SPRITE_SUICUNE db SPRITE_SILVER_TROPHY db SPRITE_FAMICOM db SPRITE_POKEDEX db SPRITE_WILL db SPRITE_KAREN db SPRITE_NURSE db SPRITE_OLD_LINK_RECEPTIONIST db SPRITE_BIG_LAPRAS db SPRITE_BIG_ONIX db SPRITE_SUDOWOODO db SPRITE_BIG_SNORLAX db SPRITE_FISHER db SPRITE_LASS db SPRITE_OFFICER db SPRITE_GRAMPS db SPRITE_YOUNGSTER db SPRITE_COOLTRAINER_M db SPRITE_BUG_CATCHER db SPRITE_SUPER_NERD db SPRITE_WEIRD_TREE db SPRITE_POKE_BALL db SPRITE_FRUIT_TREE ; 14645 Group4Sprites: ; 14645 db SPRITE_SUICUNE db SPRITE_SILVER_TROPHY db SPRITE_FAMICOM db SPRITE_POKEDEX db SPRITE_WILL db SPRITE_KAREN db SPRITE_NURSE db SPRITE_OLD_LINK_RECEPTIONIST db SPRITE_BIG_LAPRAS db SPRITE_BIG_ONIX db SPRITE_SUDOWOODO db SPRITE_BIG_SNORLAX db SPRITE_FISHER db SPRITE_LASS db SPRITE_OFFICER db SPRITE_GRAMPS db SPRITE_YOUNGSTER db SPRITE_COOLTRAINER_M db SPRITE_BUG_CATCHER db SPRITE_SUPER_NERD db SPRITE_WEIRD_TREE db SPRITE_POKE_BALL db SPRITE_FRUIT_TREE ; 1465c Group8Sprites: ; 1465c db SPRITE_SUICUNE db SPRITE_SILVER_TROPHY db SPRITE_FAMICOM db SPRITE_POKEDEX db SPRITE_WILL db SPRITE_KAREN db SPRITE_NURSE db SPRITE_OLD_LINK_RECEPTIONIST db SPRITE_KURT_OUTSIDE db SPRITE_BIG_ONIX db SPRITE_SUDOWOODO db SPRITE_BIG_SNORLAX db SPRITE_GRAMPS db SPRITE_YOUNGSTER db SPRITE_OFFICER db SPRITE_POKEFAN_M db SPRITE_BLACK_BELT db SPRITE_TEACHER db SPRITE_AZALEA_ROCKET db SPRITE_LASS db SPRITE_SILVER db SPRITE_FRUIT_TREE db SPRITE_SLOWPOKE ; 14673 Group11Sprites: ; 14673 db SPRITE_SUICUNE db SPRITE_SILVER_TROPHY db SPRITE_POKE_BALL db SPRITE_POKEDEX db SPRITE_WILL db SPRITE_KAREN db SPRITE_NURSE db SPRITE_OLD_LINK_RECEPTIONIST db SPRITE_BIG_LAPRAS db SPRITE_BIG_ONIX db SPRITE_SUDOWOODO db SPRITE_BIG_SNORLAX db SPRITE_GRAMPS db SPRITE_YOUNGSTER db SPRITE_OFFICER db SPRITE_POKEFAN_M db SPRITE_DAYCARE_MON_1 db SPRITE_COOLTRAINER_F db SPRITE_ROCKET db SPRITE_LASS db SPRITE_DAYCARE_MON_2 db SPRITE_FRUIT_TREE db SPRITE_SLOWPOKE ; 1468a Group22Sprites: ; 1468a db SPRITE_SUICUNE db SPRITE_SILVER_TROPHY db SPRITE_FAMICOM db SPRITE_POKEDEX db SPRITE_WILL db SPRITE_KAREN db SPRITE_NURSE db SPRITE_OLD_LINK_RECEPTIONIST db SPRITE_STANDING_YOUNGSTER db SPRITE_BIG_ONIX db SPRITE_SUDOWOODO db SPRITE_BIG_SNORLAX db SPRITE_OLIVINE_RIVAL db SPRITE_POKEFAN_M db SPRITE_LASS db SPRITE_BUENA db SPRITE_SWIMMER_GIRL db SPRITE_SAILOR db SPRITE_POKEFAN_F db SPRITE_SUPER_NERD db SPRITE_TAUROS db SPRITE_FRUIT_TREE db SPRITE_ROCK ; 146a1 Group1Sprites: ; 146a1 db SPRITE_SUICUNE db SPRITE_SILVER_TROPHY db SPRITE_FAMICOM db SPRITE_POKEDEX db SPRITE_WILL db SPRITE_KAREN db SPRITE_NURSE db SPRITE_OLD_LINK_RECEPTIONIST db SPRITE_STANDING_YOUNGSTER db SPRITE_BIG_ONIX db SPRITE_SUDOWOODO db SPRITE_BIG_SNORLAX db SPRITE_OLIVINE_RIVAL db SPRITE_POKEFAN_M db SPRITE_LASS db SPRITE_BUENA db SPRITE_SWIMMER_GIRL db SPRITE_SAILOR db SPRITE_POKEFAN_F db SPRITE_SUPER_NERD db SPRITE_TAUROS db SPRITE_FRUIT_TREE db SPRITE_ROCK ; 146b8 Group9Sprites: ; 146b8 db SPRITE_SUICUNE db SPRITE_SILVER_TROPHY db SPRITE_FAMICOM db SPRITE_POKEDEX db SPRITE_WILL db SPRITE_KAREN db SPRITE_NURSE db SPRITE_OLD_LINK_RECEPTIONIST db SPRITE_BIG_LAPRAS db SPRITE_BIG_ONIX db SPRITE_SUDOWOODO db SPRITE_BIG_SNORLAX db SPRITE_LANCE db SPRITE_GRAMPS db SPRITE_SUPER_NERD db SPRITE_COOLTRAINER_F db SPRITE_FISHER db SPRITE_COOLTRAINER_M db SPRITE_LASS db SPRITE_YOUNGSTER db SPRITE_GYARADOS db SPRITE_FRUIT_TREE db SPRITE_POKE_BALL ; 146cf Group2Sprites: ; 146cf db SPRITE_SUICUNE db SPRITE_SILVER_TROPHY db SPRITE_FAMICOM db SPRITE_POKEDEX db SPRITE_WILL db SPRITE_KAREN db SPRITE_NURSE db SPRITE_OLD_LINK_RECEPTIONIST db SPRITE_BIG_LAPRAS db SPRITE_BIG_ONIX db SPRITE_SUDOWOODO db SPRITE_BIG_SNORLAX db SPRITE_GRAMPS db SPRITE_YOUNGSTER db SPRITE_LASS db SPRITE_SUPER_NERD db SPRITE_COOLTRAINER_M db SPRITE_POKEFAN_M db SPRITE_BLACK_BELT db SPRITE_COOLTRAINER_F db SPRITE_FISHER db SPRITE_FRUIT_TREE db SPRITE_POKE_BALL ; 146e6 Group5Sprites: ; 146e6 db SPRITE_SUICUNE db SPRITE_SILVER_TROPHY db SPRITE_FAMICOM db SPRITE_POKEDEX db SPRITE_WILL db SPRITE_KAREN db SPRITE_NURSE db SPRITE_OLD_LINK_RECEPTIONIST db SPRITE_BIG_LAPRAS db SPRITE_BIG_ONIX db SPRITE_SUDOWOODO db SPRITE_BIG_SNORLAX db SPRITE_GRAMPS db SPRITE_YOUNGSTER db SPRITE_LASS db SPRITE_SUPER_NERD db SPRITE_COOLTRAINER_M db SPRITE_POKEFAN_M db SPRITE_BLACK_BELT db SPRITE_COOLTRAINER_F db SPRITE_FISHER db SPRITE_FRUIT_TREE db SPRITE_POKE_BALL ; 146fd Group3Sprites: ; 146fd db SPRITE_SUICUNE db SPRITE_SILVER_TROPHY db SPRITE_FAMICOM db SPRITE_POKEDEX db SPRITE_WILL db SPRITE_KAREN db SPRITE_NURSE db SPRITE_OLD_LINK_RECEPTIONIST db SPRITE_GAMEBOY_KID db SPRITE_BIG_ONIX db SPRITE_SUDOWOODO db SPRITE_BIG_SNORLAX db SPRITE_LASS db SPRITE_POKEFAN_F db SPRITE_TEACHER db SPRITE_YOUNGSTER db SPRITE_GROWLITHE db SPRITE_POKEFAN_M db SPRITE_ROCKER db SPRITE_FISHER db SPRITE_SCIENTIST db SPRITE_POKE_BALL db SPRITE_BOULDER ; 14714 Group15Sprites: ; 14714 db SPRITE_SUICUNE db SPRITE_SILVER_TROPHY db SPRITE_FAMICOM db SPRITE_POKEDEX db SPRITE_WILL db SPRITE_KAREN db SPRITE_NURSE db SPRITE_OLD_LINK_RECEPTIONIST db SPRITE_BIG_LAPRAS db SPRITE_BIG_ONIX db SPRITE_SUDOWOODO db SPRITE_BIG_SNORLAX db SPRITE_SAILOR db SPRITE_FISHING_GURU db SPRITE_GENTLEMAN db SPRITE_SUPER_NERD db SPRITE_HO_OH db SPRITE_TEACHER db SPRITE_COOLTRAINER_F db SPRITE_YOUNGSTER db SPRITE_FAIRY db SPRITE_POKE_BALL db SPRITE_ROCK ; 1472b Group20Sprites: ; 1472b db SPRITE_OAK db SPRITE_FISHER db SPRITE_TEACHER db SPRITE_TWIN db SPRITE_POKEFAN_M db SPRITE_GRAMPS db SPRITE_FAIRY db SPRITE_SILVER db SPRITE_FISHING_GURU db SPRITE_POKE_BALL db SPRITE_POKEDEX ; 14736 SpriteHeaders: ; 14736 INCLUDE "gfx/overworld/sprite_headers.asm" ; 1499a Function1499a:: ; 1499a ld a, [StandingTile] cp $60 jr z, .asm_149ad cp $68 jr z, .asm_149ad and $f0 cp $70 jr z, .asm_149ad and a ret .asm_149ad scf ret ; 149af Function149af:: ; 149af ld a, [StandingTile] cp $70 jr z, .asm_149c4 cp $76 jr z, .asm_149c4 cp $78 jr z, .asm_149c4 cp $7e jr z, .asm_149c4 scf ret .asm_149c4 xor a ret ; 149c6 Function149c6: ; 149c6 ld de, 1 ld hl, Unknown_149d3 ld a, [StandingTile] ; $d4e4 call IsInArray ret ; 149d3 Unknown_149d3: ; 149d3 db $71 ; door db $79 db $7a ; stairs db $73 db $7b ; cave entrance db $74 db $7c ; warp pad db $75 db $7d db -1 ; 149dd Function149dd:: ; 149dd ld a, [StandingTile] ld hl, Unknown_149ea ld de, 1 call IsInArray ret ; 149ea Unknown_149ea: ; 149ea db $08 db $18 ; tall grass db $14 ; tall grass db $28 db $29 db $48 db $49 db $4a db $4b db $4c db -1 ; 149f5 Function149f5: ; 149f5 ld a, c ld hl, Unknown_14a00 ld de, 1 call IsInArray ret ; 14a00 Unknown_14a00: ; 14a00 db $12 ; cut tree db $1a ; cut tree db $10 ; tall grass db $18 ; tall grass db $14 ; tall grass db $1c ; tall grass db -1 ; 14a07 Function14a07:: ; 14a07 ld a, [StandingTile] ld de, $001f cp $71 ; door ret z ld de, $0013 cp $7c ; warp pad ret z ld de, $0023 ret ; 14a1a Function14a1a: ; 14a1a call Function1d6e callba Function5e9a call SpeechTextBox call Function1ad2 callba Function4cf45 ld hl, UnknownText_0x15283 call Function14baf jr nz, .asm_14a4a call Function14b89 jr c, .asm_14a4a call Function14b54 call Function14be3 call Function14b5a call Function1c07 and a ret .asm_14a4a call Function1c07 call Functiond90 callba Function4cf45 scf ret Function14a58: ; 14a58 call Function14b54 callba Function14056 callba Function1050d9 call Function14df7 call Function14e13 call Function14e76 call Function14e8b callba Function44725 callba Function1406a call Function14b5a ret ; 14a83 ; no known jump sources Function14a83: ; 14a83 (5:4a83) push de ld hl, UnknownText_0x152a1 call Function1d4f call YesNoBox call Function1c07 jr c, .asm_14ab0 call Function14b89 jr c, .asm_14ab0 call Function14b54 call Function14c99 call Function14e0c pop de ld a, e ld [wCurBox], a call Function15021 call Function14be6 call Function14b5a and a ret .asm_14ab0 pop de ret Function14ab2: ; 14ab2 call Function14b89 jr c, .asm_14ac1 call Function14b54 call Function14be3 call Function14b5a and a .asm_14ac1 ret ; 14ac2 Function14ac2: ; 14ac2 call Function14b54 push de call Function14e0c pop de ld a, e ld [wCurBox], a call Function15021 call Function14b5a ret ; 14ad5 Function14ad5: ; 14ad5 call Function14b54 push de call Function14e0c pop de ld a, e ld [wCurBox], a ld a, $1 ld [$cfcd], a callba Function14056 callba Function1050d9 call Function14da9 call Function14dbb call Function14dd7 call Function14df7 call Function14e13 call Function14e2d call Function14e40 call Function14e55 call Function14e76 call Function14e8b callba Function44725 callba Function106187 callba Function1406a call Function15021 call Function14b5a ld de, SFX_SAVE call PlaySFX ld c, $18 call DelayFrames ret ; 14b34 Function14b34: ; 14b34 ld hl, UnknownText_0x152a6 call Function1d4f call YesNoBox call Function1c07 jr c, .asm_14b52 call Function14b89 jr c, .asm_14b52 call Function14b54 call Function14be3 call Function14b5a and a ret .asm_14b52 scf ret ; 14b54 Function14b54: ; 14b54 ld a, $1 ld [$c2cd], a ret ; 14b5a Function14b5a: ; 14b5a xor a ld [$c2cd], a ret ; 14b5f Function14b5f: ; 14b5f ld a, $1 call GetSRAMBank ld hl, $bdd9 ld de, $be3b ld bc, $0b1a .asm_14b6d ld a, [hld] ld [de], a dec de dec bc ld a, c or b jr nz, .asm_14b6d ld hl, OverworldMap ld de, $b2c0 ld bc, $0062 call CopyBytes call CloseSRAM ret ; 14b85 Function14b85: ; 14b85 call Function14c10 ret ; 14b89 Function14b89: ; 14b89 ld a, [$cfcd] and a jr z, .asm_14ba8 call Function14bcb jr z, .asm_14b9e ld hl, UnknownText_0x15297 call Function14baf jr nz, .asm_14bad jr .asm_14ba8 .asm_14b9e ld hl, UnknownText_0x15292 call Function14baf jr nz, .asm_14bad jr .asm_14bab .asm_14ba8 call Function14cbb .asm_14bab and a ret .asm_14bad scf ret ; 14baf Function14baf: ; 14baf ld b, $5 call Function269a call Function1d58 lb bc, 0, 7 call PlaceYesNoBox ld a, [$cfa9] dec a call Function1c17 push af call Functiond90 pop af and a ret ; 14bcb Function14bcb: ; 14bcb ld a, $1 call GetSRAMBank ld hl, $a009 ld a, [hli] ld c, [hl] ld b, a call CloseSRAM ld a, [PlayerID] cp b ret nz ld a, [$d47c] cp c ret ; 14be3 Function14be3: ; 14be3 call Function14c99 Function14be6: ; 14be6 call Function14c10 ld c, $20 call DelayFrames ld a, [Options] push af ld a, $3 ld [Options], a ld hl, UnknownText_0x1528d call PrintText pop af ld [Options], a ld de, SFX_SAVE call WaitPlaySFX call WaitSFX ld c, $1e call DelayFrames ret ; 14c10 Function14c10: ; 14c10 ld a, $1 ld [$cfcd], a callba Function14056 callba Function1050d9 call Function14da9 call Function14dbb call Function14dd7 call Function14df7 call Function14e0c call Function14e13 call Function14e2d call Function14e40 call Function14e55 call Function14e76 call Function14e8b call Function14c6b callba Function44725 callba Function106187 callba Function1406a ld a, $1 call GetSRAMBank ld a, [$be45] cp $4 jr nz, .asm_14c67 xor a ld [$be45], a .asm_14c67 call CloseSRAM ret ; 14c6b Function14c6b: ; 14c6b call Function14c90 ld a, $0 call GetSRAMBank ld a, [$bf10] ld e, a ld a, [$bf11] ld d, a or e jr z, .asm_14c84 ld a, e sub l ld a, d sbc h jr c, .asm_14c8c .asm_14c84 ld a, l ld [$bf10], a ld a, h ld [$bf11], a .asm_14c8c call CloseSRAM ret ; 14c90 Function14c90: ; 14c90 ld hl, $c000 .asm_14c93 ld a, [hl] or a ret nz inc hl jr .asm_14c93 ; 14c99 Function14c99: ; 14c99 xor a ld [hJoypadReleased], a ld [hJoypadPressed], a ld [hJoypadSum], a ld [hJoypadDown], a ld a, [Options] push af ld a, $3 ld [Options], a ld hl, UnknownText_0x15288 call PrintText pop af ld [Options], a ld c, $10 call DelayFrames ret ; 14cbb Function14cbb: ; 14cbb call Function151fb call Function14d06 call Function14ce2 call Function14cf4 call Function14d68 call Function14d5c ld a, $0 call GetSRAMBank xor a ld [$bf10], a ld [$bf11], a call CloseSRAM ld a, $1 ld [$d4b4], a ret ; 14ce2 Function14ce2: ; 14ce2 ld a, $1 call GetSRAMBank ld hl, $b260 ld bc, $0060 xor a call ByteFill jp CloseSRAM ; 14cf4 Function14cf4: ; 14cf4 ld a, $0 call GetSRAMBank ld hl, $abe4 ld bc, $004c xor a call ByteFill jp CloseSRAM ; 14d06 Function14d06: ; 14d06 ld a, $1 call GetSRAMBank ld hl, $b2c0 ld bc, $0b7c xor a call ByteFill jp CloseSRAM ; 14d18 Function14d18: ; 14d18 ld a, $4 call GetSRAMBank ld hl, Unknown_14d2c ld de, $a007 ld bc, $0030 call CopyBytes jp CloseSRAM ; 14d2c Unknown_14d2c: ; 14d2c db $0d, $02, $00, $05, $00, $00 db $22, $02, $01, $05, $00, $00 db $03, $04, $05, $08, $03, $05 db $0e, $06, $03, $02, $00, $00 db $39, $07, $07, $04, $00, $05 db $04, $07, $01, $05, $00, $00 db $0f, $05, $14, $07, $05, $05 db $11, $0c, $0c, $06, $06, $04 ; 14d5c Function14d5c: ; 14d5c ld a, $1 call GetSRAMBank xor a ld [$be45], a jp CloseSRAM ; 14d68 Function14d68: ; 14d68 call Function1509a ret ; 14d6c Function14d6c: ; 14d6c ld a, $4 call GetSRAMBank ld a, [$a60b] ld b, $0 and a jr z, .asm_14d7b ld b, $2 .asm_14d7b ld a, b ld [$a60b], a call CloseSRAM ret ; 14d83 Function14d83: ; 14d83 ld a, $4 call GetSRAMBank xor a ld [$a60c], a ld [$a60d], a call CloseSRAM ret ; 14d93 Function14d93: ; 14d93 ld a, $7 call GetSRAMBank xor a ld [$a000], a call CloseSRAM ret ; 14da0 Function14da0: ; 14da0 ld a, [$d4b4] and a ret nz call Function14cbb ret ; 14da9 Function14da9: ; 14da9 ld a, $1 call GetSRAMBank ld a, $63 ld [$a008], a ld a, $7f ld [$ad0f], a jp CloseSRAM ; 14dbb Function14dbb: ; 14dbb ld a, $1 call GetSRAMBank ld hl, Options ld de, $a000 ld bc, $0008 call CopyBytes ld a, [Options] and $ef ld [$a000], a jp CloseSRAM ; 14dd7 Function14dd7: ; 14dd7 ld a, $1 call GetSRAMBank ld hl, PlayerID ld de, $a009 ld bc, $082a call CopyBytes ld hl, VisitedSpawns ld de, $a833 ld bc, $0032 call CopyBytes jp CloseSRAM ; 14df7 Function14df7: ; 14df7 ld a, $1 call GetSRAMBank ld hl, PartyCount ld de, $a865 ld bc, $031e call CopyBytes call CloseSRAM ret ; 14e0c Function14e0c: ; 14e0c call Function150d8 call Function150f9 ret ; 14e13 Function14e13: ; 14e13 ld hl, $a009 ld bc, $0b7a ld a, $1 call GetSRAMBank call Function15273 ld a, e ld [$ad0d], a ld a, d ld [$ad0e], a call CloseSRAM ret ; 14e2d Function14e2d: ; 14e2d ld a, $0 call GetSRAMBank ld a, $63 ld [$b208], a ld a, $7f ld [$bf0f], a call CloseSRAM ret ; 14e40 Function14e40: ; 14e40 ld a, $0 call GetSRAMBank ld hl, Options ld de, $b200 ld bc, $0008 call CopyBytes call CloseSRAM ret ; 14e55 Function14e55: ; 14e55 ld a, $0 call GetSRAMBank ld hl, PlayerID ld de, $b209 ld bc, $082a call CopyBytes ld hl, VisitedSpawns ld de, $ba33 ld bc, $0032 call CopyBytes call CloseSRAM ret ; 14e76 Function14e76: ; 14e76 ld a, $0 call GetSRAMBank ld hl, PartyCount ld de, $ba65 ld bc, $031e call CopyBytes call CloseSRAM ret ; 14e8b Function14e8b: ; 14e8b ld hl, $b209 ld bc, $0b7a ld a, $0 call GetSRAMBank call Function15273 ld a, e ld [$bf0d], a ld a, d ld [$bf0e], a call CloseSRAM ret ; 14ea5 ; no known jump sources Function14ea5: ; 14ea5 (5:4ea5) call Function15028 jr nz, .asm_14ed6 call Function14fd7 call Function1500c call Function15021 callba Function44745 callba Function10619d callba Function1050ea call Function14e2d call Function14e40 call Function14e55 call Function14e76 call Function14e8b and a ret .asm_14ed6 call Function1507c jr nz, .asm_14f07 call Function15046 call Function15067 call Function15021 callba Function44745 callba Function10619d callba Function1050ea call Function14da9 call Function14dbb call Function14dd7 call Function14df7 call Function14e13 and a ret .asm_14f07 ld a, [Options] ; $cfcc push af set 4, a ld [Options], a ; $cfcc ld hl, UnknownText_0x1529c call PrintText pop af ld [Options], a ; $cfcc scf ret Function14f1c: ; 14f1c xor a ld [$cfcd], a call Function14f84 ld a, [$cfcd] and a jr z, .asm_14f46 ld a, $1 call GetSRAMBank ld hl, $a044 ld de, StartDay ld bc, $0008 call CopyBytes ld hl, $a3da ld de, StatusFlags ld a, [hl] ld [de], a call CloseSRAM ret .asm_14f46 call Function14faf ld a, [$cfcd] and a jr z, .asm_14f6c ld a, $0 call GetSRAMBank ld hl, $b244 ld de, StartDay ld bc, $0008 call CopyBytes ld hl, $b5da ld de, StatusFlags ld a, [hl] ld [de], a call CloseSRAM ret .asm_14f6c ld hl, DefaultOptions ld de, Options ld bc, $0008 call CopyBytes call Function67e ret ; 14f7c DefaultOptions: ; 14f7c db $03 ; mid text speed db $00 db $00 ; frame 0 db $01 db $40 ; gb printer: normal brightness db $01 ; menu account on db $00 db $00 ; 14f84 Function14f84: ; 14f84 ld a, $1 call GetSRAMBank ld a, [$a008] cp $63 jr nz, .asm_14fab ld a, [$ad0f] cp $7f jr nz, .asm_14fab ld hl, $a000 ld de, Options ld bc, $0008 call CopyBytes call CloseSRAM ld a, $1 ld [$cfcd], a .asm_14fab call CloseSRAM ret ; 14faf Function14faf: ; 14faf ld a, $0 call GetSRAMBank ld a, [$b208] cp $63 jr nz, .asm_14fd3 ld a, [$bf0f] cp $7f jr nz, .asm_14fd3 ld hl, $b200 ld de, Options ld bc, $0008 call CopyBytes ld a, $2 ld [$cfcd], a .asm_14fd3 call CloseSRAM ret ; 14fd7 ; known jump sources: 14eaa (5:4eaa) Function14fd7: ; 14fd7 (5:4fd7) ld a, $1 call GetSRAMBank ld hl, $a009 ld de, PlayerID ; $d47b ld bc, $82a call CopyBytes ld hl, $a833 ld de, VisitedSpawns ; $dca5 ld bc, $32 call CopyBytes call CloseSRAM ld a, $1 call GetSRAMBank ld a, [$be45] cp $4 jr nz, .asm_15008 ld a, $3 ld [$be45], a .asm_15008 call CloseSRAM ret Function1500c: ; 1500c ld a, $1 call GetSRAMBank ld hl, $a865 ld de, PartyCount ld bc, $031e call CopyBytes call CloseSRAM ret ; 15021 ; known jump sources: 14aa5 (5:4aa5), 14eb0 (5:4eb0), 14ee1 (5:4ee1) Function15021: ; 15021 (5:5021) call Function150d8 call Function1517d ret ; known jump sources: 14ea5 (5:4ea5) Function15028: ; 15028 (5:5028) ld hl, $a009 ld bc, $b7a ld a, $1 call GetSRAMBank call Function15273 ld a, [$ad0d] cp e jr nz, .asm_15040 ld a, [$ad0e] cp d .asm_15040 push af call CloseSRAM pop af ret ; known jump sources: 14edb (5:4edb) Function15046: ; 15046 (5:5046) ld a, $0 call GetSRAMBank ld hl, $b209 ld de, PlayerID ; $d47b ld bc, $82a call CopyBytes ld hl, $ba33 ld de, VisitedSpawns ; $dca5 ld bc, $32 call CopyBytes call CloseSRAM ret ; known jump sources: 14ede (5:4ede) Function15067: ; 15067 (5:5067) ld a, $0 call GetSRAMBank ld hl, $ba65 ld de, PartyCount ; $dcd7 ld bc, $31e call CopyBytes call CloseSRAM ret ; known jump sources: 14ed6 (5:4ed6) Function1507c: ; 1507c (5:507c) ld hl, $b209 ld bc, $b7a ld a, $0 call GetSRAMBank call Function15273 ld a, [$bf0d] cp e jr nz, .asm_15094 ld a, [$bf0e] cp d .asm_15094 push af call CloseSRAM pop af ret Function1509a: ; 1509a ld a, $1 call GetSRAMBank ld hl, PlayerGender ld de, $be3d ld bc, $0007 call CopyBytes ld hl, $d479 ld a, [hli] ld [$a60e], a ld a, [hli] ld [$a60f], a jp CloseSRAM ; 150b9 ; no known jump sources Function150b9: ; 150b9 (5:50b9) ld a, $1 call GetSRAMBank ld hl, $be3d ld de, PlayerGender ; $d472 ld bc, $7 call CopyBytes ld hl, $d479 ld a, [$a60e] ld [hli], a ld a, [$a60f] ld [hli], a jp CloseSRAM Function150d8: ; 150d8 ld a, [wCurBox] cp NUM_BOXES jr c, .asm_150e3 xor a ld [wCurBox], a .asm_150e3 ld e, a ld d, 0 ld hl, Unknown_1522d add hl, de add hl, de add hl, de add hl, de add hl, de ld a, [hli] push af ld a, [hli] ld e, a ld a, [hli] ld d, a ld a, [hli] ld h, [hl] ld l, a pop af ret ; 150f9 Function150f9: ; 150f9 push hl push af push de ld a, $1 call GetSRAMBank ld hl, BoxCount ld de, EnemyMoveAnimation ld bc, $01e0 call CopyBytes call CloseSRAM pop de pop af push af push de call GetSRAMBank ld hl, EnemyMoveAnimation ld bc, $01e0 call CopyBytes call CloseSRAM ld a, $1 call GetSRAMBank ld hl, $aef0 ld de, EnemyMoveAnimation ld bc, $01e0 call CopyBytes call CloseSRAM pop de pop af ld hl, $01e0 add hl, de ld e, l ld d, h push af push de call GetSRAMBank ld hl, EnemyMoveAnimation ld bc, $01e0 call CopyBytes call CloseSRAM ld a, $1 call GetSRAMBank ld hl, $b0d0 ld de, EnemyMoveAnimation ld bc, $008e call CopyBytes call CloseSRAM pop de pop af ld hl, $01e0 add hl, de ld e, l ld d, h call GetSRAMBank ld hl, EnemyMoveAnimation ld bc, $008e call CopyBytes call CloseSRAM pop hl ret ; 1517d ; known jump sources: 15024 (5:5024) Function1517d: ; 1517d (5:517d) push hl ld l, e ld h, d push af push hl call GetSRAMBank ld de, EnemyMoveAnimation ; $c608 (aliases: EnemyMoveStruct) ld bc, $1e0 call CopyBytes call CloseSRAM ld a, $1 call GetSRAMBank ld hl, EnemyMoveAnimation ; $c608 (aliases: EnemyMoveStruct) ld de, $ad10 ld bc, $1e0 call CopyBytes call CloseSRAM pop hl pop af ld de, $1e0 add hl, de push af push hl call GetSRAMBank ld de, EnemyMoveAnimation ; $c608 (aliases: EnemyMoveStruct) ld bc, $1e0 call CopyBytes call CloseSRAM ld a, $1 call GetSRAMBank ld hl, EnemyMoveAnimation ; $c608 (aliases: EnemyMoveStruct) ld de, $aef0 ld bc, $1e0 call CopyBytes call CloseSRAM pop hl pop af ld de, $1e0 add hl, de call GetSRAMBank ld de, EnemyMoveAnimation ; $c608 (aliases: EnemyMoveStruct) ld bc, $8e call CopyBytes call CloseSRAM ld a, $1 call GetSRAMBank ld hl, EnemyMoveAnimation ; $c608 (aliases: EnemyMoveStruct) ld de, $b0d0 ld bc, $8e call CopyBytes call CloseSRAM pop hl ret Function151fb: ; 151fb ld hl, Unknown_1522d ld c, $e .asm_15200 push bc ld a, [hli] call GetSRAMBank ld a, [hli] ld e, a ld a, [hli] ld d, a xor a ld [de], a inc de ld a, $ff ld [de], a inc de ld bc, $044c .asm_15213 xor a ld [de], a inc de dec bc ld a, b or c jr nz, .asm_15213 ld a, [hli] ld e, a ld a, [hli] ld d, a ld a, $ff ld [de], a inc de xor a ld [de], a call CloseSRAM pop bc dec c jr nz, .asm_15200 ret ; 1522d Unknown_1522d: ; 1522d ; dbww bank, address, address db $02, $00, $a0, $4e, $a4 ; 2, $a000, $a44e db $02, $50, $a4, $9e, $a8 ; 2, $a450, $a89e db $02, $a0, $a8, $ee, $ac ; 2, $a8a0, $acee db $02, $f0, $ac, $3e, $b1 ; 2, $acf0, $b13e db $02, $40, $b1, $8e, $b5 ; 2, $b140, $b5de db $02, $90, $b5, $de, $b9 ; 2, $b590, $b9de db $02, $e0, $b9, $2e, $be ; 2, $b9e0, $be2e db $03, $00, $a0, $4e, $a4 ; 3, $a000, $a44e db $03, $50, $a4, $9e, $a8 ; 3, $a450, $a89e db $03, $a0, $a8, $ee, $ac ; 3, $a8a0, $acee db $03, $f0, $ac, $3e, $b1 ; 3, $acf0, $b13e db $03, $40, $b1, $8e, $b5 ; 3, $b140, $b58e db $03, $90, $b5, $de, $b9 ; 3, $b590, $b9de db $03, $e0, $b9, $2e, $be ; 3, $b9e0, $be2e ; 15273 Function15273: ; 15273 ld de, $0000 .asm_15276 ld a, [hli] add e ld e, a ld a, $0 adc d ld d, a dec bc ld a, b or c jr nz, .asm_15276 ret ; 15283 UnknownText_0x15283: ; 0x15283 ; Would you like to save the game? text_jump UnknownText_0x1c454b db "@" ; 0x15288 UnknownText_0x15288: ; 0x15288 ; SAVING… DON'T TURN OFF THE POWER. text_jump UnknownText_0x1c456d db "@" ; 0x1528d UnknownText_0x1528d: ; 0x1528d ; saved the game. text_jump UnknownText_0x1c4590 db "@" ; 0x15292 UnknownText_0x15292: ; 0x15292 ; There is already a save file. Is it OK to overwrite? text_jump UnknownText_0x1c45a3 db "@" ; 0x15297 UnknownText_0x15297: ; 0x15297 ; There is another save file. Is it OK to overwrite? text_jump UnknownText_0x1c45d9 db "@" ; 0x1529c UnknownText_0x1529c: ; 0x1529c ; The save file is corrupted! text_jump UnknownText_0x1c460d db "@" ; 0x152a1 UnknownText_0x152a1: ; 0x152a1 ; When you change a #MON BOX, data will be saved. OK? text_jump UnknownText_0x1c462a db "@" ; 0x152a6 UnknownText_0x152a6: ; 0x152a6 ; Each time you move a #MON, data will be saved. OK? text_jump UnknownText_0x1c465f db "@" ; 0x152ab SpawnPoints: ; 0x152ab const_def const SPAWN_HOME const SPAWN_VIRIDIAN_POKECENTER const SPAWN_PALLET const SPAWN_VIRIDIAN const SPAWN_PEWTER const SPAWN_CERULEAN const SPAWN_ROCK_TUNNEL const SPAWN_VERMILION const SPAWN_LAVENDER const SPAWN_SAFFRON const SPAWN_CELADON const SPAWN_FUCHSIA const SPAWN_CINNABAR const SPAWN_INDIGO_PLATEAU const SPAWN_NEW_BARK const SPAWN_CHERRYGROVE const SPAWN_VIOLET const SPAWN_UNION_CAVE const SPAWN_AZALEA const SPAWN_CIANWOOD const SPAWN_GOLDENROD const SPAWN_OLIVINE const SPAWN_ECRUTEAK const SPAWN_MAHOGANY const SPAWN_LAKE const SPAWN_BLACKTHORN const SPAWN_MT_SILVER const SPAWN_FAST_SHIP db GROUP_KRISS_HOUSE_2F, MAP_KRISS_HOUSE_2F, 3, 3 db GROUP_VIRIDIAN_POKECENTER_1F, MAP_VIRIDIAN_POKECENTER_1F, 5, 3 ; unused db GROUP_PALLET_TOWN, MAP_PALLET_TOWN, 5, 6 db GROUP_VIRIDIAN_CITY, MAP_VIRIDIAN_CITY, 23, 26 db GROUP_PEWTER_CITY, MAP_PEWTER_CITY, 13, 26 db GROUP_CERULEAN_CITY, MAP_CERULEAN_CITY, 19, 22 db GROUP_ROUTE_10A, MAP_ROUTE_10A, 11, 2 db GROUP_VERMILION_CITY, MAP_VERMILION_CITY, 9, 6 db GROUP_LAVENDER_TOWN, MAP_LAVENDER_TOWN, 5, 6 db GROUP_SAFFRON_CITY, MAP_SAFFRON_CITY, 9, 30 db GROUP_CELADON_CITY, MAP_CELADON_CITY, 29, 10 db GROUP_FUCHSIA_CITY, MAP_FUCHSIA_CITY, 19, 28 db GROUP_CINNABAR_ISLAND, MAP_CINNABAR_ISLAND, 11, 12 db GROUP_ROUTE_23, MAP_ROUTE_23, 9, 6 db GROUP_NEW_BARK_TOWN, MAP_NEW_BARK_TOWN, 13, 6 db GROUP_CHERRYGROVE_CITY, MAP_CHERRYGROVE_CITY, 29, 4 db GROUP_VIOLET_CITY, MAP_VIOLET_CITY, 31, 26 db GROUP_ROUTE_32, MAP_ROUTE_32, 11, 74 db GROUP_AZALEA_TOWN, MAP_AZALEA_TOWN, 15, 10 db GROUP_CIANWOOD_CITY, MAP_CIANWOOD_CITY, 23, 44 db GROUP_GOLDENROD_CITY, MAP_GOLDENROD_CITY, 15, 28 db GROUP_OLIVINE_CITY, MAP_OLIVINE_CITY, 13, 22 db GROUP_ECRUTEAK_CITY, MAP_ECRUTEAK_CITY, 23, 28 db GROUP_MAHOGANY_TOWN, MAP_MAHOGANY_TOWN, 15, 14 db GROUP_LAKE_OF_RAGE, MAP_LAKE_OF_RAGE, 21, 29 db GROUP_BLACKTHORN_CITY, MAP_BLACKTHORN_CITY, 21, 30 db GROUP_SILVER_CAVE_OUTSIDE, MAP_SILVER_CAVE_OUTSIDE, 23, 20 db GROUP_FAST_SHIP_CABINS_SW_SSW_NW, MAP_FAST_SHIP_CABINS_SW_SSW_NW, 6, 2 db -1, -1, -1, -1 LoadSpawnPoint: ; 1531f push hl push de ld a, [$d001] cp -1 jr z, .asm_15341 ld l, a ld h, 0 add hl, hl add hl, hl ld de, SpawnPoints add hl, de ld a, [hli] ld [MapGroup], a ld a, [hli] ld [MapNumber], a ld a, [hli] ld [XCoord], a ld a, [hli] ld [YCoord], a .asm_15341 pop de pop hl ret ; 15344 IsSpawnPoint: ; 15344 ld hl, SpawnPoints ld c, 0 .asm_15349 ld a, [hl] cp -1 jr z, .asm_1535f cp d jr nz, .asm_15356 inc hl ld a, [hld] cp e jr z, .asm_15361 .asm_15356 push bc ld bc, 4 add hl, bc pop bc inc c jr .asm_15349 .asm_1535f and a ret .asm_15361 scf ret ; 15363 RunMapSetupScript:: ; 15363 ld a, [$ff9f] and $f dec a ld c, a ld b, 0 ld hl, MapSetupScripts add hl, bc add hl, bc ld a, [hli] ld h, [hl] ld l, a call ReadMapSetupScript ret ; 15377 MapSetupScripts: ; 15377 dw MapSetupScript1 dw MapSetupScript2 dw MapSetupScript3 dw MapSetupScript4 dw MapSetupScript5 dw MapSetupScript6 dw MapSetupScript7 dw MapSetupScript8 dw MapSetupScript9 dw MapSetupScript10 dw MapSetupScript11 dw MapSetupScript12 ; 1538f ; Command descriptions from Condensation water's scripting compendium. const_def const map_lcd_on ; 00 = Turn LCD on const map_lcd_off ; 01 = Turn LCD off const map_sound_off ; 02 = Turn speakers off const map_music ; 03 = Music check for current map/ special check for bug catcher contest const map_start_music ; 04 = Start map music anew const map_fade_music ; 05 = Music check for current map / special check for Bug Contest/ music with FadeOut (old) and FadeIn const map_fade ; 06 = Fade out music + screen const map_bike_music ; 07 = If HIRO is on bike = bike music, else play map music const map_music_force ; 08 = Play map music const map_max_volume ; 09 = Turn music to highest volume const map_load_blocks ; 0A = Write map data to MapRAM const map_connection_blocks ; 0B = Compute map’s connection pars and write into MapRAM const map_save_screen ; 0C = Write current part of map into temporary memory const map_buffer_screen ; 0D = Write current part of map into read-from memory const map_load_graphics ; 0E = Write tileset header to ram/ load tileset/ load sprite tiles/ load special tiles const map_load_tileset_header ; 0F = Write tileset header to ram const map_time_of_day ; 10 = Compute time of day/ Update screen const map_palettes ; 11 = Load map palettes const map_wildmons ; 12 = Load probabilities for wild Pokémon battles const map_sprites ; 13 = Delete sprite data and draw new sprites const map_change_callback ; 14 = Check 2nd script header for 05 and 03 callbacks const map_start_callback ; 15 = Check 2nd script header for 03 callbacks const map_load_objects ; 16 = Analyze people data anew and check 2nd script header for 02 callbacks const map_load_spawn ; 17 = Writes arrival data for arrival by flying/Blackout from table 05:5319 to ram const map_load_connection ; 18 = Writes arrival data for entering a map by connection to ram const map_load_warp ; 19 = Write warp data to ram when entering warp const map_attributes ; 1A = Load complete map data (primary, secondary, event, script headers) const map_attributes_2 ; 1B = Same as 1A, but some settings aren’t loaded new from the rom, such as hide function of the people events const map_clear_bg_palettes ; 1C = Fill palette data with FFFF (=white) const map_fade_out_palettes ; 1D = All BG pallet color are converted to 0|0 (Pal0, Col0), all sprite colors to x|0 (FadeOut) const map_fade_in_palettes ; 1E = Palette FadeIn const map_anchor_screen ; 1F = Compute position of upper left-most block visible on screen const map_warp_face ; 20 = Position computation when HIRO leaves a warp const map_face_down ; 21 = Set HIRO’s facing to “down” const map_spawn_coord ; 22 = Prepare HIRO data for arrival by flight const map_player_coord ; 23 = Compute HIRO x/y data anew const map_prolong_sprites ; 24 = Prolong old sprites before removing them const map_delay_sprites ; 25 = Delay rendering new sprites const map_update_roam ; 26 = Compute chances to meet Raikou, Entei or Suicune const map_keep_roam ; 27 = Recover chances to meet Raikou, Entei or Suicune const map_fade_out_music ; 28 = Temporarily stop music playing const map_animations_on ; 29 = Activate animations const map_animations_off ; 2A = Deactivate animations const map_keep_palettes ; 2B = Recover all palettes const map_text_scroll_off ; 2C = Turn off text scroll (for town name overlays) const map_stop_script ; 2D = Deactivate code prolonging MapSetupScript4: ; 1538f db map_prolong_sprites MapSetupScript12: ; 15390 db map_fade_out_palettes db map_keep_roam MapSetupScript1: ; 15392 db map_lcd_off db map_sound_off db map_load_spawn db map_attributes db map_change_callback db map_spawn_coord db map_player_coord db map_anchor_screen db map_load_blocks db map_buffer_screen db map_load_graphics db map_time_of_day db map_load_objects db map_lcd_on db map_palettes db map_face_down db map_sprites db map_bike_music db map_max_volume db map_fade_in_palettes db map_animations_on db map_wildmons db -1 MapSetupScript11: ; 153a9 db map_load_spawn db map_attributes db map_change_callback db map_spawn_coord db map_player_coord db map_anchor_screen db map_load_blocks db map_buffer_screen db map_lcd_off db map_load_graphics db map_time_of_day db map_fade_out_music db map_lcd_on db map_load_objects db map_palettes db map_face_down db map_sprites db map_fade_music db map_fade_in_palettes db map_animations_on db map_wildmons db -1 MapSetupScript7: ; 153bf db map_animations_off db map_load_connection db map_attributes db map_change_callback db map_player_coord db map_load_blocks db map_load_tileset_header db map_save_screen db map_load_objects db map_fade_music db map_palettes db map_stop_script db map_keep_palettes db map_wildmons db map_update_roam db map_animations_on db -1 MapSetupScript6: ; 153d0 db map_prolong_sprites MapSetupScript5: ; 153d1 db map_fade_out_palettes MapSetupScript9: ; 153d2 db map_load_warp db map_attributes db map_warp_face db map_change_callback db map_player_coord db map_load_blocks db map_buffer_screen db map_lcd_off db map_load_graphics db map_time_of_day db map_fade_out_music db map_lcd_on db map_load_objects db map_palettes db map_sprites db map_fade_music db map_fade_in_palettes db map_animations_on db map_wildmons db map_update_roam db -1 MapSetupScript3: ; 153e7 db map_fade db map_clear_bg_palettes db map_lcd_off db map_sound_off db map_load_blocks db map_connection_blocks db map_load_graphics db map_time_of_day db map_lcd_on db map_palettes db map_sprites db map_music_force db map_fade_in_palettes db map_animations_on db map_wildmons db -1 MapSetupScript8: ; 153f7 db map_fade db map_lcd_off db map_sound_off db map_change_callback db map_load_blocks db map_buffer_screen db map_load_graphics db map_time_of_day db map_lcd_on db map_palettes db map_sprites db map_bike_music db map_fade_in_palettes db map_animations_on db map_wildmons db map_text_scroll_off db -1 MapSetupScript2: ; 15408 db map_lcd_off db map_sound_off db map_attributes_2 db map_anchor_screen db map_start_callback db map_load_blocks db map_connection_blocks db map_buffer_screen db map_load_graphics db map_time_of_day db map_lcd_on db map_palettes db map_sprites db map_bike_music db map_fade_in_palettes db map_animations_on db map_wildmons db -1 MapSetupScript10: ; 1541a db map_load_blocks db map_connection_blocks db -1 ReadMapSetupScript: ; 1541d .loop ld a, [hli] cp -1 ret z push hl ld c, a ld b, 0 ld hl, MapSetupCommands add hl, bc add hl, bc add hl, bc ; bank ld b, [hl] inc hl ; address ld a, [hli] ld h, [hl] ld l, a ; Bit 7 of the bank indicates a parameter. ; This is left unused. bit 7, b jr z, .go pop de ld a, [de] ld c, a inc de push de .go ld a, b and $7f rst FarCall pop hl jr .loop ; 15440 MapSetupCommands: ; 15440 dbw BANK(EnableLCD), EnableLCD dbw BANK(DisableLCD), DisableLCD dbw BANK(SoundRestart), SoundRestart dbw BANK(Function3cdf), Function3cdf dbw BANK(Function3d47), Function3d47 dbw BANK(Function3cbc), Function3cbc dbw BANK(Function15574), Function15574 dbw BANK(Function3d03), Function3d03 dbw BANK(Function15587), Function15587 dbw BANK(Function3cae), Function3cae dbw BANK(Function24cd), Function24cd dbw BANK(Function28e3), Function28e3 dbw BANK(Function289d), Function289d dbw BANK(Function2879), Function2879 dbw BANK(Function1047cf), Function1047cf dbw BANK(LoadTilesetHeader), LoadTilesetHeader dbw BANK(Function104750), Function104750 dbw BANK(Function1047eb), Function1047eb dbw BANK(Function29ff8), Function29ff8 dbw BANK(Function1047f0), Function1047f0 dbw BANK(Function1045b0), Function1045b0 dbw BANK(Function1045c4), Function1045c4 dbw BANK(Function154d7), Function154d7 dbw BANK(LoadSpawnPoint), LoadSpawnPoint dbw BANK(EnterMapConnection), EnterMapConnection dbw BANK(Function1046c6), Function1046c6 dbw BANK(Function2309), Function2309 dbw BANK(Function2317), Function2317 dbw BANK(WhiteBGMap), WhiteBGMap dbw BANK(Function8c084), Function8c084 dbw BANK(Function8c079), Function8c079 dbw BANK(Function10486d), Function10486d dbw BANK(Function248a), Function248a dbw BANK(Function57d9), Function57d9 dbw BANK(Function8029), Function8029 dbw BANK(Function80b8), Function80b8 dbw BANK(Function154eb), Function154eb dbw BANK(Function154f1), Function154f1 dbw BANK(Function2a30d), Function2a30d dbw BANK(Function2a394), Function2a394 dbw BANK(Function15567), Function15567 dbw BANK(Function154cf), Function154cf dbw BANK(Function154d3), Function154d3 dbw BANK(Function1556d), Function1556d dbw BANK(Function154ca), Function154ca dbw BANK(Functionb8000), Functionb8000 ; 154ca Function154ca: ; 154ca xor a ld [$c2d7], a ret ; 154cf Function154cf: ; 154cf ld a, $1 ld [$ffde], a ret ; 154d3 Function154d3: ; 154d3 xor a ld [$ffde], a ret ; 154d7 Function154d7: ; 154d7 ld a, $2 call Function263b callba Function2454f callba Function8177 ret ; 154ea (5:54ea) Function154ea: ; 154ea ret ; 154eb Function154eb: ; 154eb ld hl, $d45b set 7, [hl] ret ; 154f1 Function154f1: ; 154f1 ld hl, $d45b set 6, [hl] ret Function154f7: ; 154f7 nop call Function1550c jr c, .asm_15508 call Function1554e jr c, .asm_15508 call Function1551a jr c, .asm_15508 ret .asm_15508 call Functione4a ret ; known jump sources: 154f8 (5:54f8) Function1550c: ; 1550c (5:550c) and a ld hl, BikeFlags ; $dbf5 bit 1, [hl] ret z ld a, $1 ld [PlayerState], a ; $d95d scf ret ; known jump sources: 15502 (5:5502) Function1551a: ; 1551a (5:551a) ld a, [PlayerState] ; $d95d cp $0 jr z, .asm_1554c cp $2 jr z, .asm_1554c cp $4 jr z, .asm_15545 cp $8 jr z, .asm_15545 call GetMapPermission cp $3 jr z, .asm_1553e cp $5 jr z, .asm_1553e cp $7 jr z, .asm_1553e jr .asm_1554c .asm_1553e ld a, [PlayerState] ; $d95d cp $1 jr nz, .asm_1554c .asm_15545 ld a, $0 ld [PlayerState], a ; $d95d scf ret .asm_1554c and a ret ; known jump sources: 154fd (5:54fd) Function1554e: ; 1554e (5:554e) call Function1852 jr nz, .asm_15565 ld a, [PlayerState] ; $d95d cp $4 jr z, .asm_15563 cp $8 jr z, .asm_15563 ld a, $4 ld [PlayerState], a ; $d95d .asm_15563 scf ret .asm_15565 and a ret ; 15567 Function15567: ; 15567 ld a, $6 call Function3cb4 ret ; 1556d Function1556d: ; 1556d callba _UpdateTimePals ret Function15574: ; 15574 ld e, 0 ld a, [MusicFadeIDLo] ; $c2a9 ld d, 0 ld a, [MusicFadeIDHi] ; $c2aa ld a, $4 ld [MusicFade], a ; $c2a7 call Function4b6 ret ; 15587 Function15587: ; 15587 ld a, [PlayerState] ; $d95d cp $1 jr nz, .asm_15596 call VolumeOff ld a, $88 ld [MusicFade], a ; $c2a7 .asm_15596 call Function3d2f ret ; 1559a Function1559a: ; 1559a call Function15650 ret c call Function156b3 ld hl, UnknownText_0x15a27 call Function15a20 ld hl, UnknownText_0x15a2c call Function157bb ld hl, MenuDataHeader_0x155d6 call LoadMenuDataHeader .asm_155b3 xor a ld [hBGMapMode], a call Function1563e ld [$cf76], a call Function1e5d jr c, .asm_155cc ld a, [MenuSelection] ld hl, Unknown_155e6 call Function1fa7 jr nc, .asm_155b3 .asm_155cc call Function156b8 call Function1c07 call Function1c17 ret ; 155d6 MenuDataHeader_0x155d6: ; 0x155d6 db $48 ; flags db 00, 00 ; start coords db 12, 15 ; end coords dw MenuData2_0x155de db 1 ; default option ; 0x155de MenuData2_0x155de: ; 0x155de db $a0 ; flags db 0 ; items dw Unknown_1562c dw Function1f8d dw Unknown_155e6 ; 0x155e6 Unknown_155e6: ; 155e6 dw Function15679, String_155fa dw Function15668, String_15600 dw Function15689, String_15609 dw Function1569a, String_15616 dw Function156ab, String_15623 ; 155fa String_155fa: db $52, "'s PC@" String_15600: db "BILL's PC@" String_15609: db "PROF.OAK's PC@" String_15616: db "HALL OF FAME@" String_15623: db "TURN OFF@" ; 1562c Unknown_1562c: ; 1562c db 3 db 1, 0, 4, $ff db 4 db 1, 0, 2, 4, $ff db 5 db 1, 0, 2, 3, 4, $ff ; 1563e Function1563e: ; 1563e call Function2ead jr nz, .asm_15646 ld a, $0 ret .asm_15646 ld a, [$d95e] and a ld a, $1 ret z ld a, $2 ret ; 15650 Function15650: ; 15650 ld a, [PartyCount] and a ret nz ld de, SFX_CHOOSE_PC_OPTION call PlaySFX ld hl, UnknownText_0x15663 call Function15a20 scf ret ; 15663 UnknownText_0x15663: ; 0x15663 ; Bzzzzt! You must have a #MON to use this! text_jump UnknownText_0x1c1328 db "@" ; 0x15668 Function15668: ; 15668 call Function156c2 ld hl, UnknownText_0x15a31 call Function15a20 callba Functione3fd and a ret ; 15679 (5:5679) Function15679: ; 15679 call Function156c2 ld hl, UnknownText_0x15a36 call Function15a20 ld b, $0 call Function15704 and a ret ; 15689 Function15689: ; 15689 call Function156c2 ld hl, UnknownText_0x15a3b call Function15a20 callba ProfOaksPC and a ret ; 1569a Function1569a: ; 1569a call Function156c2 call FadeToMenu callba Function86650 call Function2b3c and a ret ; 156ab Function156ab: ; 156ab ld hl, UnknownText_0x15a40 call PrintText scf ret ; 156b3 Function156b3: ; 156b3 ld de, SFX_BOOT_PC jr Function156d0 Function156b8: ; 156b8 ld de, SFX_SHUT_DOWN_PC call Function156d0 call WaitSFX ret Function156c2: ; 156c2 ld de, SFX_CHOOSE_PC_OPTION jr Function156d0 Function156c7: ; 156c7 ld de, SFX_SWITCH_POKEMON call Function156d0 ld de, SFX_SWITCH_POKEMON Function156d0: ; 156d0 push de call WaitSFX pop de call PlaySFX ret ; 156d9 Function156d9: ; 156d9 call Function156b3 ld hl, UnknownText_0x156ff call Function15a20 ld b, $1 call Function15704 and a jr nz, .asm_156f9 call Function2173 call Function321c call Function1ad2 call Function156b8 ld c, $0 ret .asm_156f9 call WhiteBGMap ld c, $1 ret ; 156ff UnknownText_0x156ff: ; 0x156ff ; turned on the PC. text_jump UnknownText_0x1c1353 db "@" ; 0x15704 Function15704: ; 15704 ld a, b ld [$cf76], a ld hl, UnknownText_0x157cc call Function157bb call Function15715 call Function1c07 ret ; 15715 Function15715: ; 15715 xor a ld [$d0d7], a ld [$d0dd], a ld hl, KrissPCMenuData call LoadMenuDataHeader .asm_15722 call UpdateTimePals call Function1e5d jr c, .asm_15731 call Function1fa7 jr nc, .asm_15722 jr .asm_15732 .asm_15731 xor a .asm_15732 call Function1c07 ret ; 15736 KrissPCMenuData: ; 0x15736 db %01000000 db 0, 0 ; top left corner coords (y, x) db 12, 15 ; bottom right corner coords (y, x) dw .KrissPCMenuData2 db 1 ; default selected option .KrissPCMenuData2 db %10100000 ; bit7 db 0 ; # items? dw .KrissPCMenuList1 dw Function1f8d dw .KrissPCMenuPointers .KrissPCMenuPointers ; 0x15746 dw KrisWithdrawItemMenu, .WithdrawItem dw KrisDepositItemMenu, .DepositItem dw KrisTossItemMenu, .TossItem dw KrisMailBoxMenu, .MailBox dw KrisDecorationMenu, .Decoration dw KrisLogOffMenu, .LogOff dw KrisLogOffMenu, .TurnOff .WithdrawItem db "WITHDRAW ITEM@" .DepositItem db "DEPOSIT ITEM@" .TossItem db "TOSS ITEM@" .MailBox db "MAIL BOX@" .Decoration db "DECORATION@" .TurnOff db "TURN OFF@" .LogOff db "LOG OFF@" WITHDRAW_ITEM EQU 0 DEPOSIT_ITEM EQU 1 TOSS_ITEM EQU 2 MAIL_BOX EQU 3 DECORATION EQU 4 TURN_OFF EQU 5 LOG_OFF EQU 6 .KrissPCMenuList1 db 5 db WITHDRAW_ITEM db DEPOSIT_ITEM db TOSS_ITEM db MAIL_BOX db TURN_OFF db $ff .KrissPCMenuList2 db 6 db WITHDRAW_ITEM db DEPOSIT_ITEM db TOSS_ITEM db MAIL_BOX db DECORATION db LOG_OFF db $ff Function157bb: ; 157bb ld a, [Options] push af set 4, a ld [Options], a call Function1d4f pop af ld [Options], a ret ; 157cc UnknownText_0x157cc: ; 0x157cc ; What do you want to do? text_jump UnknownText_0x1c1368 db "@" ; 0x157d1 KrisWithdrawItemMenu: ; 0x157d1 call Function1d6e callba ClearPCItemScreen .asm_157da call Function15985 jr c, .asm_157e4 call Function157e9 jr .asm_157da .asm_157e4 call Function2b3c xor a ret ; 0x157e9 Function157e9: ; 0x157e9 ; check if the item has a quantity callba _CheckTossableItem ld a, [$d142] and a jr z, .askquantity ; items without quantity are always ×1 ld a, 1 ld [$d10c], a jr .withdraw .askquantity ld hl, .HowManyText call Function1d4f callba Function24fbf call Function1c07 call Function1c07 jr c, .done .withdraw ld a, [$d10c] ld [Buffer1], a ; quantity ld a, [$d107] ld [Buffer2], a ld hl, NumItems call ReceiveItem jr nc, .PackFull ld a, [Buffer1] ld [$d10c], a ld a, [Buffer2] ld [$d107], a ld hl, PCItems call TossItem ld a, $3b call Predef ld hl, .WithdrewText call Function1d4f xor a ld [hBGMapMode], a call Function1c07 ret .PackFull ld hl, .NoRoomText call Function1d67 ret .done ret ; 0x15850 .HowManyText ; 0x15850 TX_FAR _KrissPCHowManyWithdrawText db "@" .WithdrewText ; 0x15855 TX_FAR _KrissPCWithdrewItemsText db "@" .NoRoomText ; 0x1585a TX_FAR _KrissPCNoRoomWithdrawText db "@" KrisTossItemMenu: ; 0x1585f call Function1d6e callba ClearPCItemScreen .asm_15868 call Function15985 jr c, .asm_15878 ld de, PCItems callba Function129f4 jr .asm_15868 .asm_15878 call Function2b3c xor a ret ; 0x1587d KrisDecorationMenu: ; 0x1587d callba _KrisDecorationMenu ld a, c and a ret z scf ret ; 0x15888 KrisLogOffMenu: ; 0x15888 xor a scf ret ; 0x1588b KrisDepositItemMenu: ; 0x1588b call Function158b8 jr c, .asm_158b6 call Function2ed3 call Function1d6e callba Function106a5 .asm_1589c callba Function106be ld a, [$cf66] and a jr z, .asm_158b3 call Function158cc callba CheckRegisteredItem jr .asm_1589c .asm_158b3 call Function2b3c .asm_158b6 xor a ret ; 0x158b8 Function158b8: ; 0x158b8 callba Function129d5 ret nc ld hl, UnknownText_0x158c7 call Function1d67 scf ret ; 0x158c7 UnknownText_0x158c7: ; 0x158c7 ; No items here! text_jump UnknownText_0x1c13df db "@" ; 0x158cc Function158cc: ; 0x158cc ld a, [$c2ce] push af ld a, $0 ld [$c2ce], a callba CheckItemMenu ld a, [$d142] ld hl, Jumptable_158e7 rst JumpTable pop af ld [$c2ce], a ret ; 0x158e7 Jumptable_158e7: ; 0x158e7 dw .jump2 dw .jump1 dw .jump1 dw .jump1 dw .jump2 dw .jump2 dw .jump2 .jump1: ret .jump2: ld a, [Buffer1] push af ld a, [Buffer2] push af call Function1590a pop af ld [Buffer2], a pop af ld [Buffer1], a ret ; 0x1590a Function1590a: ; 0x1590a callba _CheckTossableItem ld a, [$d142] and a jr z, .asm_1591d ld a, $1 ld [$d10c], a jr .asm_15933 .asm_1591d ld hl, .HowManyText call Function1d4f callba Function24fbf push af call Function1c07 call Function1c07 pop af jr c, .asm_1596c .asm_15933 ld a, [$d10c] ld [Buffer1], a ld a, [$d107] ld [Buffer2], a ld hl, PCItems call ReceiveItem jr nc, .asm_15965 ld a, [Buffer1] ld [$d10c], a ld a, [Buffer2] ld [$d107], a ld hl, NumItems call TossItem ld a, $3b call Predef ld hl, .DepositText call PrintText ret .asm_15965 ld hl, .NoRoomText call PrintText ret .asm_1596c and a ret ; 0x1596e .HowManyText ; 0x1596e TX_FAR _KrissPCHowManyDepositText db "@" .DepositText ; 0x15973 TX_FAR _KrissPCDepositItemsText db "@" .NoRoomText ; 0x15978 TX_FAR _KrissPCNoRoomDepositText db "@" KrisMailBoxMenu: ; 0x1597d callba _KrisMailBoxMenu xor a ret ; 0x15985 Function15985: ; 0x15985 xor a ld [$d0e3], a .asm_15989 ld a, [$c2ce] push af ld a, $0 ld [$c2ce], a ld hl, MenuData15a08 call Function1d3c hlcoord 0, 0 ld b, $a ld c, $12 call TextBox ld a, [$d0d7] ld [$cf88], a ld a, [$d0dd] ld [$d0e4], a call Function350c ld a, [$d0e4] ld [$d0dd], a ld a, [$cfa9] ld [$d0d7], a pop af ld [$c2ce], a ld a, [$d0e3] and a jr nz, .asm_159d8 ld a, [$cf73] cp $2 jr z, .asm_15a06 cp $1 jr z, .asm_159fb cp $4 jr z, .asm_159f2 jr .asm_159f8 .asm_159d8 ld a, [$cf73] cp $2 jr z, .asm_159e9 cp $1 jr z, .asm_159ef cp $4 jr z, .asm_159ef jr .asm_159f8 .asm_159e9 xor a ld [$d0e3], a jr .asm_159f8 .asm_159ef call Function156c7 .asm_159f2 callba Function2490c .asm_159f8 jp .asm_15989 .asm_159fb callba Function24706 call Function1bee and a ret .asm_15a06 scf ret ; 0x15a08 MenuData15a08: ; 0x15a08 db %01000000 db 1, 4 ; start coords db 10, 18 ; end coords dw .MenuData2 db 1 ; default option .MenuData2 db %10110000 db 4, 8 ; rows/cols? db 2 ; horizontal spacing? dbw 0, PCItems dbw BANK(Function24ab4), Function24ab4 dbw BANK(Function24ac3), Function24ac3 dbw BANK(Function244c3), Function244c3 Function15a20: ; 15a20 call Function1d4f call Function1c07 ret ; 15a27 UnknownText_0x15a27: ; 0x15a27 ; turned on the PC. text_jump UnknownText_0x1c144d db "@" ; 0x15a2c UnknownText_0x15a2c: ; 0x15a2c ; Access whose PC? text_jump UnknownText_0x1c1462 db "@" ; 0x15a31 UnknownText_0x15a31: ; 0x15a31 ; BILL's PC accessed. #MON Storage System opened. text_jump UnknownText_0x1c1474 db "@" ; 0x15a36 UnknownText_0x15a36: ; 0x15a36 ; Accessed own PC. Item Storage System opened. text_jump UnknownText_0x1c14a4 db "@" ; 0x15a3b UnknownText_0x15a3b: ; 0x15a3b ; PROF.OAK's PC accessed. #DEX Rating System opened. text_jump UnknownText_0x1c14d2 db "@" ; 0x15a40 UnknownText_0x15a40: ; 0x15a40 ; … Link closed… text_jump UnknownText_0x1c1505 db "@" ; 0x15a45 OpenMartDialog:: ; 15a45 call GetMart ld a, c ld [EngineBuffer1], a call Function15b10 ld a, [EngineBuffer1] ld hl, .dialogs rst JumpTable ret ; 15a57 .dialogs dw MartDialog dw HerbShop dw BargainShop dw Pharmacist dw VendingMachine ; 15a61 MartDialog: ; 15a61 ld a, 0 ld [EngineBuffer1], a xor a ld [MovementAnimation], a call Function15b47 ret ; 15a6e HerbShop: ; 15a6e call ReadMart call Function1d6e ld hl, UnknownText_0x15e4a call Function15fcd call Function15c62 ld hl, UnknownText_0x15e68 call Function15fcd ret ; 15a84 BargainShop: ; 15a84 ld b, BANK(Unknown_15c51) ld de, Unknown_15c51 call Function15b10 call Function15c25 call Function1d6e ld hl, UnknownText_0x15e6d call Function15fcd call Function15c62 ld hl, WalkingDirection ld a, [hli] or [hl] jr z, .asm_15aa7 ld hl, $dc1e set 6, [hl] .asm_15aa7 ld hl, UnknownText_0x15e8b call Function15fcd ret ; 15aae Pharmacist: ; 15aae call ReadMart call Function1d6e ld hl, UnknownText_0x15e90 call Function15fcd call Function15c62 ld hl, UnknownText_0x15eae call Function15fcd ret ; 15ac4 VendingMachine: ; 15ac4 ld b, BANK(Unknown_15aee) ld de, Unknown_15aee ld hl, StatusFlags bit 6, [hl] jr z, .asm_15ad5 ld b, BANK(Unknown_15aff) ld de, Unknown_15aff .asm_15ad5 call Function15b10 call Function15c25 call Function1d6e ld hl, UnknownText_0x15f83 call Function15fcd call Function15c62 ld hl, UnknownText_0x15fb4 call Function15fcd ret ; 15aee Unknown_15aee: ; 15aee db $05, $05, $96, $00, $04, $f4, $01, $11, $f4, $01, $26, $f4, $01, $27, $b0, $04, $ff Unknown_15aff: ; 15aff db $05, $10, $e8, $03, $0e, $d0, $07, $26, $f4, $01, $02, $e8, $03, $1b, $78, $1e, $ff ; 15b10 Function15b10: ; 15b10 ld a, b ld [$d03f], a ld a, e ld [MartPointer], a ld a, d ld [MartPointer + 1], a ld hl, CurMart xor a ld bc, CurMartEnd - CurMart call ByteFill xor a ld [MovementAnimation], a ld [WalkingDirection], a ld [FacingDirection], a ret ; 15b31 GetMart: ; 15b31 ld a, e cp (MartsEnd - Marts) / 2 jr c, .IsAMart ld b, $5 ld de, DefaultMart ret .IsAMart ld hl, Marts add hl, de add hl, de ld e, [hl] inc hl ld d, [hl] ld b, $5 ret ; 15b47 Function15b47: ; 15b47 .asm_15b47 ld a, [MovementAnimation] ld hl, .table_15b56 rst JumpTable ld [MovementAnimation], a cp $ff jr nz, .asm_15b47 ret .table_15b56 dw Function15b62 dw Function15b6e dw Function15b8d dw Function15b9a dw Function15ba3 dw Function15baf ; 15b62 Function15b62: ; 15b62 call Function1d6e ld hl, UnknownText_0x15f83 call PrintText ld a, $1 ret ; 15b6e Function15b6e: ; 15b6e ld hl, MenuDataHeader_0x15f88 call Function1d3c call Function1d81 jr c, .asm_15b84 ld a, [$cfa9] cp $1 jr z, .asm_15b87 cp $2 jr z, .asm_15b8a .asm_15b84 ld a, $4 ret .asm_15b87 ld a, $2 ret .asm_15b8a ld a, $3 ret ; 15b8d Function15b8d: ; 15b8d call Function1c07 call ReadMart call Function15c62 and a ld a, $5 ret ; 15b9a Function15b9a: ; 15b9a call Function1c07 call Function15eb3 ld a, $5 ret ; 15ba3 Function15ba3: ; 15ba3 call Function1c07 ld hl, UnknownText_0x15fb4 call Function15fcd ld a, $ff ret ; 15baf Function15baf: ; 15baf call Function1d6e ld hl, UnknownText_0x15fb9 call PrintText ld a, $1 ret ; 15bbb ReadMart: ; 15bbb ld hl, MartPointer ld a, [hli] ld h, [hl] ld l, a ld de, CurMart .CopyMart ld a, [$d03f] call GetFarByte ld [de], a inc hl inc de cp $ff jr nz, .CopyMart ld hl, DefaultFlypoint ld de, CurMart + 1 .ReadMartItem ld a, [de] inc de cp $ff jr z, .asm_15be4 push de call GetMartItemPrice pop de jr .ReadMartItem .asm_15be4 ret ; 15be5 GetMartItemPrice: ; 15be5 ; Return the price of item a in BCD at hl and in tiles at StringBuffer1. push hl ld [CurItem], a callba GetItemPrice pop hl GetMartPrice: ; 15bf0 ; Return price de in BCD at hl and in tiles at StringBuffer1. push hl ld a, d ld [StringBuffer2], a ld a, e ld [StringBuffer2 + 1], a ld hl, StringBuffer1 ld de, StringBuffer2 ld bc, $82 << 8 + 6 ; 6 digits call PrintNum pop hl ld de, StringBuffer1 ld c, 6 / 2 ; 6 digits .asm_15c0b call .TileToNum swap a ld b, a call .TileToNum or b ld [hli], a dec c jr nz, .asm_15c0b ret ; 15c1a .TileToNum ; 15c1a ld a, [de] inc de cp " " jr nz, .asm_15c22 ld a, "0" .asm_15c22 sub "0" ret ; 15c25 Function15c25: ; 15c25 ld hl, MartPointer ld a, [hli] ld h, [hl] ld l, a push hl inc hl ld bc, DefaultFlypoint ld de, CurMart + 1 .asm_15c33 ld a, [hli] ld [de], a inc de cp $ff jr z, .asm_15c4b push de ld a, [hli] ld e, a ld a, [hli] ld d, a push hl ld h, b ld l, c call GetMartPrice ld b, h ld c, l pop hl pop de jr .asm_15c33 .asm_15c4b pop hl ld a, [hl] ld [CurMart], a ret ; 15c51 Unknown_15c51: ; 15c51 db $05, $24, $94, $11, $6e, $8a, $02, $6f, $ac, $0d, $83, $84, $03, $84, $f8, $11, $ff ; 15c62 Function15c62: ; 15c62 call FadeToMenu callba Function8000 xor a ld [WalkingY], a ld a, 1 ld [WalkingX], a .asm_15c74 call Function15cef jr nc, .asm_15c74 call Function2b3c ret ; 15c7d Function15c7d: ; 15c7d push af call Function15ca3 ld a, [hli] ld h, [hl] ld l, a pop af ld e, a ld d, 0 add hl, de add hl, de ld a, [hli] ld h, [hl] ld l, a call PrintText ret ; 15c91 Function15c91: ; 15c91 call Function15ca3 inc hl inc hl ld a, [hl] and a jp z, Function15d83 cp 1 jp z, Function15da5 jp Function15de2 ; 15ca3 Function15ca3: ; 15ca3 ld a, [EngineBuffer1] ld e, a ld d, 0 ld hl, .data_15cb0 add hl, de add hl, de add hl, de ret ; 15cb0 .data_15cb0 ; 15cb0 dwb Unknown_15cbf, 0 dwb Unknown_15ccb, 0 dwb Unknown_15cd7, 1 dwb Unknown_15ce3, 0 dwb Unknown_15cbf, 2 ; 15cbf Unknown_15cbf: ; 15cbf dw UnknownText_0x15e0e dw UnknownText_0x15e13 dw UnknownText_0x15fa5 dw UnknownText_0x15faa dw UnknownText_0x15fa0 dw Function15cef Unknown_15ccb: ; 15ccb dw UnknownText_0x15e4f dw UnknownText_0x15e54 dw UnknownText_0x15e63 dw UnknownText_0x15e5e dw UnknownText_0x15e59 dw Function15cef Unknown_15cd7: ; 15cd7 dw Function15cef dw UnknownText_0x15e72 dw UnknownText_0x15e86 dw UnknownText_0x15e7c dw UnknownText_0x15e77 dw UnknownText_0x15e81 Unknown_15ce3: ; 15ce3 dw UnknownText_0x15e95 dw UnknownText_0x15e9a dw UnknownText_0x15ea9 dw UnknownText_0x15ea4 dw UnknownText_0x15e9f dw Function15cef ; 15cef Function15cef: ; 15cef callba Function24ae8 call Function1ad2 ld hl, MenuDataHeader_0x15e18 call Function1d3c ld a, [WalkingX] ld [$cf88], a ld a, [WalkingY] ld [$d0e4], a call Function350c ld a, [$d0e4] ld [WalkingY], a ld a, [$cfa9] ld [WalkingX], a call SpeechTextBox ld a, [$cf73] cp $2 jr z, .asm_15d6d cp $1 jr z, .asm_15d27 .asm_15d27 call Function15c91 jr c, .asm_15d68 call Function15d97 jr c, .asm_15d68 ld de, Money ld bc, $ffc3 ld a, $3 call Function1600b jr c, .asm_15d79 ld hl, NumItems call ReceiveItem jr nc, .asm_15d6f ld a, [$d107] ld e, a ld d, $0 ld b, $1 ld hl, WalkingDirection call FlagAction call Function15fc3 ld de, Money ld bc, $ffc3 call Function15ffa ld a, $4 call Function15c7d call Functiona36 .asm_15d68 call SpeechTextBox and a ret .asm_15d6d scf ret .asm_15d6f ld a, $3 call Function15c7d call Functiona36 and a ret .asm_15d79 ld a, $2 call Function15c7d call Functiona36 and a ret ; 15d83 Function15d83: ; 15d83 ld a, $63 ld [$d10d], a ld a, $0 call Function15c7d callba Function24fc9 call Function1c07 ret ; 15d97 Function15d97: ; 15d97 ld a, $3b call Predef ld a, $1 call Function15c7d call YesNoBox ret ; 15da5 Function15da5: ; 15da5 ld a, $1 ld [$d10c], a ld a, [$d107] ld e, a ld d, $0 ld b, $2 ld hl, WalkingDirection call FlagAction ld a, c and a jr nz, .asm_15dd8 ld a, [$d107] ld e, a ld d, $0 ld hl, MartPointer ld a, [hli] ld h, [hl] ld l, a inc hl add hl, de add hl, de add hl, de inc hl ld a, [hli] ld [$ffc5], a ld a, [hl] ld [$ffc4], a xor a ld [$ffc3], a and a ret .asm_15dd8 ld a, $5 call Function15c7d call Functiona36 scf ret ; 15de2 Function15de2: ; 15de2 ld a, $0 call Function15c7d call Function15df9 ld a, $63 ld [$d10d], a callba Function24fcf call Function1c07 ret ; 15df9 Function15df9: ; 15df9 ld a, [$d107] ld e, a ld d, 0 ld hl, MartPointer ld a, [hli] ld h, [hl] ld l, a inc hl add hl, de add hl, de add hl, de inc hl ld e, [hl] inc hl ld d, [hl] ret ; 15e0e UnknownText_0x15e0e: ; 0x15e0e ; How many? text_jump UnknownText_0x1c4bfd db "@" ; 0x15e13 UnknownText_0x15e13: ; 0x15e13 ; @ (S) will be ¥@ . text_jump UnknownText_0x1c4c08 db "@" ; 0x15e18 MenuDataHeader_0x15e18: ; 0x15e18 db $40 ; flags db 03, 01 ; start coords db 11, 19 ; end coords dw MenuData2_0x15e20 db 1 ; default option ; 0x15e20 MenuData2_0x15e20: ; 0x15e20 db $30 ; flags db 4, 8 ; rows, columns db 1 ; horizontal spacing dbw 0, $d0f0 dbw BANK(Function24ab4), Function24ab4 dbw BANK(Function15e30), Function15e30 dbw BANK(Function244c3), Function244c3 ; 15e30 Function15e30: ; 15e30 ld a, [$cf77] ld c, a ld b, 0 ld hl, DefaultFlypoint ; $d002 add hl, bc add hl, bc add hl, bc push de ld d, h ld e, l pop hl ld bc, $14 add hl, bc ld c, $a3 call PrintBCDNumber ret ; 15e4a (5:5e4a) UnknownText_0x15e4a: ; 0x15e4a ; Hello, dear. I sell inexpensive herbal medicine. They're good, but a trifle bitter. Your #MON may not like them. Hehehehe… text_jump UnknownText_0x1c4c28 db "@" ; 0x15e4f UnknownText_0x15e4f: ; 0x15e4f ; How many? text_jump UnknownText_0x1c4ca3 db "@" ; 0x15e54 UnknownText_0x15e54: ; 0x15e54 ; @ (S) will be ¥@ . text_jump UnknownText_0x1c4cae db "@" ; 0x15e59 UnknownText_0x15e59: ; 0x15e59 ; Thank you, dear. Hehehehe… text_jump UnknownText_0x1c4cce db "@" ; 0x15e5e UnknownText_0x15e5e: ; 0x15e5e ; Oh? Your PACK is full, dear. text_jump UnknownText_0x1c4cea db "@" ; 0x15e63 UnknownText_0x15e63: ; 0x15e63 ; Hehehe… You don't have the money. text_jump UnknownText_0x1c4d08 db "@" ; 0x15e68 UnknownText_0x15e68: ; 0x15e68 ; Come again, dear. Hehehehe… text_jump UnknownText_0x1c4d2a db "@" ; 0x15e6d UnknownText_0x15e6d: ; 0x15e6d ; Hiya! Care to see some bargains? I sell rare items that nobody else carries--but only one of each item. text_jump UnknownText_0x1c4d47 db "@" ; 0x15e72 UnknownText_0x15e72: ; 0x15e72 ; costs ¥@ . Want it? text_jump UnknownText_0x1c4db0 db "@" ; 0x15e77 UnknownText_0x15e77: ; 0x15e77 ; Thanks. text_jump UnknownText_0x1c4dcd db "@" ; 0x15e7c UnknownText_0x15e7c: ; 0x15e7c ; Uh-oh, your PACK is chock-full. text_jump UnknownText_0x1c4dd6 db "@" ; 0x15e81 UnknownText_0x15e81: ; 0x15e81 ; You bought that already. I'm all sold out of it. text_jump UnknownText_0x1c4df7 db "@" ; 0x15e86 UnknownText_0x15e86: ; 0x15e86 ; Uh-oh, you're short on funds. text_jump UnknownText_0x1c4e28 db "@" ; 0x15e8b UnknownText_0x15e8b: ; 0x15e8b ; Come by again sometime. text_jump UnknownText_0x1c4e46 db "@" ; 0x15e90 UnknownText_0x15e90: ; 0x15e90 ; What's up? Need some medicine? text_jump UnknownText_0x1c4e5f db "@" ; 0x15e95 UnknownText_0x15e95: ; 0x15e95 ; How many? text_jump UnknownText_0x1c4e7e db "@" ; 0x15e9a UnknownText_0x15e9a: ; 0x15e9a ; @ (S) will cost ¥@ . text_jump UnknownText_0x1c4e89 db "@" ; 0x15e9f UnknownText_0x15e9f: ; 0x15e9f ; Thanks much! text_jump UnknownText_0x1c4eab db "@" ; 0x15ea4 UnknownText_0x15ea4: ; 0x15ea4 ; You don't have any more space. text_jump UnknownText_0x1c4eb9 db "@" ; 0x15ea9 UnknownText_0x15ea9: ; 0x15ea9 ; Huh? That's not enough money. text_jump UnknownText_0x1c4ed8 db "@" ; 0x15eae UnknownText_0x15eae: ; 0x15eae ; All right. See you around. text_jump UnknownText_0x1c4ef6 db "@" ; 0x15eb3 Function15eb3: ; 15eb3 call Function2ed3 callba Function106a5 .asm_15ebc callba Function106be ld a, [$cf66] and a jp z, Function15ece call Function15ee0 jr .asm_15ebc ; 15ece Function15ece: ; 15ece call Function2b74 and a ret ; 15ed3 Function15ed3: ; 15ed3 ld hl, UnknownText_0x15edb call Function1d67 and a ret ; 15edb UnknownText_0x15edb: ; 0x15edb ; You don't have anything to sell. text_jump UnknownText_0x1c4f12 db "@" ; 0x15ee0 Function15ee0: ; 15ee0 callba CheckItemMenu ld a, [$d142] ld hl, Jumptable_15eee rst JumpTable ret ; 15eee Jumptable_15eee: ; 15eee dw Function15efd dw Function15efc dw Function15efc dw Function15efc dw Function15efd dw Function15efd dw Function15efd ; 15efc Function15efc: ; 15efc ret ; 15efd Function15efd: ; 15efd callba _CheckTossableItem ld a, [$d142] and a jr z, .asm_15f11 ld hl, UnknownText_0x15faf call PrintText and a ret .asm_15f11 ld hl, UnknownText_0x15f73 call PrintText callba Function24af8 callba Function24fe1 call Function1c07 jr c, .asm_15f6e ld hl, $c5b9 ld bc, $0312 call ClearBox ld hl, UnknownText_0x15f78 call PrintTextBoxText call YesNoBox jr c, .asm_15f6e ld de, Money ld bc, $ffc3 call Function15fd7 ld a, [$d107] ld hl, NumItems call TossItem ld a, $3b call Predef ld hl, $c5b9 ld bc, $0312 call ClearBox ld hl, UnknownText_0x15fbe call PrintTextBoxText call Function15fc3 callba Function24af0 call Functiona36 .asm_15f6e call Function1c07 and a ret ; 15f73 UnknownText_0x15f73: ; 0x15f73 ; How many? text_jump UnknownText_0x1c4f33 db "@" ; 0x15f78 UnknownText_0x15f78: ; 0x15f78 ; I can pay you ¥@ . Is that OK? text_jump UnknownText_0x1c4f3e db "@" ; 0x15f7d String15f7d: ; 15f7d db "!ダミー!@" UnknownText_0x15f83: ; 0x15f83 ; Welcome! How may I help you? text_jump UnknownText_0x1c4f62 db "@" ; 0x15f88 MenuDataHeader_0x15f88: ; 0x15f88 db $40 ; flags db 00, 00 ; start coords db 08, 07 ; end coords dw MenuData2_0x15f90 db 1 ; default option ; 0x15f90 MenuData2_0x15f90: ; 0x15f90 db $80 ; flags db 3 ; items db "BUY@" db "SELL@" db "QUIT@" ; 0x15f96 UnknownText_0x15fa0: ; 0x15fa0 ; Here you are. Thank you! text_jump UnknownText_0x1c4f80 db "@" ; 0x15fa5 UnknownText_0x15fa5: ; 0x15fa5 ; You don't have enough money. text_jump UnknownText_0x1c4f9a db "@" ; 0x15faa UnknownText_0x15faa: ; 0x15faa ; You can't carry any more items. text_jump UnknownText_0x1c4fb7 db "@" ; 0x15faf UnknownText_0x15faf: ; 0x15faf ; Sorry, I can't buy that from you. text_jump UnknownText_0x1c4fd7 db "@" ; 0x15fb4 UnknownText_0x15fb4: ; 0x15fb4 ; Please come again! text_jump UnknownText_0x1c4ff9 db "@" ; 0x15fb9 UnknownText_0x15fb9: ; 0x15fb9 text_jump UnknownText_0x1c500d db "@" ; 0x15fbe UnknownText_0x15fbe: ; 0x15fbe text_jump UnknownText_0x1c502e db "@" ; 0x15fc3 Function15fc3: ; 15fc3 call WaitSFX ld de, SFX_TRANSACTION call PlaySFX ret ; 15fcd Function15fcd: ; 15fcd call Function1d4f call Functiona36 call Function1c07 ret ; 15fd7 Function15fd7:: ; 15fd7 ld a, $3 call Function16053 ld bc, Unknown_15ff7 ld a, $3 call Function1600b jr z, .asm_15ff5 jr c, .asm_15ff5 ld hl, Unknown_15ff7 ld a, [hli] ld [de], a inc de ld a, [hli] ld [de], a inc de ld a, [hli] ld [de], a scf ret .asm_15ff5 and a ret ; 15ff7 Unknown_15ff7: ; 15ff7 dt 999999 ; 15ffa Function15ffa:: ; 15ffa ld a, $3 call Function16035 jr nc, .asm_16009 xor a ld [de], a inc de ld [de], a inc de ld [de], a scf ret .asm_16009 and a ret ; 1600b Function1600b:: ; 1600b ld a, $3 Function1600d: ; 1600d push hl push de push bc ld h, b ld l, c ld c, $0 ld b, a .asm_16015 dec a jr z, .asm_1601c inc de inc hl jr .asm_16015 .asm_1601c and a .asm_1601d ld a, [de] sbc [hl] jr z, .asm_16022 inc c .asm_16022 dec de dec hl dec b jr nz, .asm_1601d jr c, .asm_1602d ld a, c and a jr .asm_16031 .asm_1602d ld a, $1 and a scf .asm_16031 pop bc pop de pop hl ret ; 16035 Function16035: ; 16035 ld a, $3 Function16037: ; 16037 push hl push de push bc ld h, b ld l, c ld b, a ld c, $0 .asm_1603f dec a jr z, .asm_16046 inc de inc hl jr .asm_1603f .asm_16046 and a .asm_16047 ld a, [de] sbc [hl] ld [de], a dec de dec hl dec b jr nz, .asm_16047 pop bc pop de pop hl ret ; 16053 Function16053: ; 16053 ld a, $3 Function16055: ; 16055 push hl push de push bc ld h, b ld l, c ld b, a .asm_1605b dec a jr z, .asm_16062 inc de inc hl jr .asm_1605b .asm_16062 and a .asm_16063 ld a, [de] adc [hl] ld [de], a dec de dec hl dec b jr nz, .asm_16063 pop bc pop de pop hl ret ; 1606f Function1606f:: ; 1606f ld a, $2 ld de, Coins call Function16055 ld a, $2 ld bc, Unknown_1608d call Function1600d jr c, .asm_1608b ld hl, Unknown_1608d ld a, [hli] ld [de], a inc de ld a, [hli] ld [de], a scf ret .asm_1608b and a ret ; 1608d Unknown_1608d: ; 1608d bigdw 9999 ; 1608f Function1608f:: ; 1608f ld a, $2 ld de, Coins call Function16037 jr nc, .asm_1609f xor a ld [de], a inc de ld [de], a scf ret .asm_1609f and a ret ; 160a1 Function160a1:: ; 160a1 ld a, $2 ld de, Coins jp Function1600d ; 160a9 INCLUDE "items/marts.asm" Function16218: ; 16218 ld a, [$ffaa] push af ld a, $1 ld [$ffaa], a xor a ld [$cf63], a .asm_16223 ld a, [$cf63] bit 7, a jr nz, .asm_1622f call Function16233 jr .asm_16223 .asm_1622f pop af ld [$ffaa], a ret ; 16233 Function16233: ; 16233 ld a, [$cf63] ld e, a ld d, 0 ld hl, Jumptable_16242 add hl, de add hl, de ld a, [hli] ld h, [hl] ld l, a jp [hl] ; 16242 Jumptable_16242: ; 16242 dw Function16254 dw Function1626a dw Function16290 dw Function162a8 dw Function162e0 dw Function16373 dw Function16406 dw Function1642d dw Function16433 ; 16254 Function16254: ; 16254 ld a, [$d854] bit 7, a jr nz, .asm_16264 set 7, a ld [$d854], a ld a, $1 jr .asm_16266 .asm_16264 ld a, $2 .asm_16266 ld [$cf63], a ret ; 1626a Function1626a: ; 1626a ld hl, UnknownText_0x16649 call PrintText call YesNoBox jr c, .asm_1627f ld hl, UnknownText_0x1664e call PrintText ld a, $81 jr .asm_16281 .asm_1627f ld a, $80 .asm_16281 ld [$d854], a ld hl, UnknownText_0x16653 call PrintText ld a, $8 ld [$cf63], a ret ; 16290 Function16290: ; 16290 ld hl, UnknownText_0x16658 call PrintText call YesNoBox jr c, .asm_1629f ld a, $3 jr .asm_162a4 .asm_1629f call Function16439 ld a, $7 .asm_162a4 ld [$cf63], a ret ; 162a8 Function162a8: ; 162a8 ld hl, UnknownText_0x1665d call PrintText call Function1d6e ld hl, MenuDataHeader_0x166b5 call Function1d3c call Function1d81 call Function1c17 jr c, .asm_162ce ld a, [$cfa9] cp $1 jr z, .asm_162d2 cp $2 jr z, .asm_162d6 cp $3 jr z, .asm_162da .asm_162ce ld a, $7 jr .asm_162dc .asm_162d2 ld a, $5 jr .asm_162dc .asm_162d6 ld a, $4 jr .asm_162dc .asm_162da ld a, $6 .asm_162dc ld [$cf63], a ret ; 162e0 Function162e0: ; 162e0 ld hl, UnknownText_0x16662 call PrintText xor a ld hl, StringBuffer2 ld [hli], a ld [hli], a ld [hl], a ld a, $5 ld [$cf64], a call Function1d6e call Function16517 call Function1656b call Function16571 call Function1c17 jr c, .asm_1636d ld hl, StringBuffer2 ld a, [hli] or [hl] inc hl or [hl] jr z, .asm_1636d ld de, Money ld bc, StringBuffer2 callba Function1600b jr c, .asm_1635f ld hl, StringBuffer2 ld de, $d089 ld bc, $0003 call CopyBytes ld bc, $d851 ld de, StringBuffer2 callba Function15fd7 jr c, .asm_16366 ld bc, $d089 ld de, Money callba Function15ffa ld hl, StringBuffer2 ld de, $d851 ld bc, $0003 call CopyBytes ld de, SFX_TRANSACTION call PlaySFX call WaitSFX ld hl, UnknownText_0x1668a call PrintText ld a, $8 jr .asm_1636f .asm_1635f ld hl, UnknownText_0x1667b call PrintText ret .asm_16366 ld hl, UnknownText_0x16680 call PrintText ret .asm_1636d ld a, $7 .asm_1636f ld [$cf63], a ret ; 16373 Function16373: ; 16373 ld hl, UnknownText_0x16667 call PrintText xor a ld hl, StringBuffer2 ld [hli], a ld [hli], a ld [hl], a ld a, $5 ld [$cf64], a call Function1d6e call Function16512 call Function1656b call Function16571 call Function1c17 jr c, .asm_16400 ld hl, StringBuffer2 ld a, [hli] or [hl] inc hl or [hl] jr z, .asm_16400 ld hl, StringBuffer2 ld de, $d089 ld bc, $0003 call CopyBytes ld de, $d851 ld bc, StringBuffer2 callba Function1600b jr c, .asm_163f2 ld bc, Money ld de, StringBuffer2 callba Function15fd7 jr c, .asm_163f9 ld bc, $d089 ld de, $d851 callba Function15ffa ld hl, StringBuffer2 ld de, Money ld bc, $0003 call CopyBytes ld de, SFX_TRANSACTION call PlaySFX call WaitSFX ld hl, UnknownText_0x1668f call PrintText ld a, $8 jr .asm_16402 .asm_163f2 ld hl, UnknownText_0x16671 call PrintText ret .asm_163f9 ld hl, UnknownText_0x16676 call PrintText ret .asm_16400 ld a, $7 .asm_16402 ld [$cf63], a ret ; 16406 Function16406: ; 16406 ld hl, UnknownText_0x1666c call PrintText call YesNoBox jr c, .asm_16422 ld a, $81 ld [$d854], a ld hl, UnknownText_0x16685 call PrintText ld a, $8 ld [$cf63], a ret .asm_16422 ld a, $80 ld [$d854], a ld a, $7 ld [$cf63], a ret ; 1642d Function1642d: ; 1642d ld hl, UnknownText_0x16694 call PrintText Function16433: ; 16433 ld hl, $cf63 set 7, [hl] ret ; 16439 Function16439: ; 16439 ld a, [$d4c2] bit 7, a ld a, [hHours] jr z, .asm_16447 and a jr z, .asm_1644b jr .asm_16468 .asm_16447 cp $17 jr nz, .asm_16468 .asm_1644b call Function164ea ld bc, $c5b9 ld hl, UnknownText_0x164f4 call Function13e5 call YesNoBox ret c call Function164ea ld bc, $c5b9 ld hl, UnknownText_0x164f9 call Function13e5 ret .asm_16468 call Function164ea ld bc, $c5b9 ld a, [$d4c2] bit 7, a jr z, .asm_16497 ld hl, UnknownText_0x16508 call Function13e5 call YesNoBox ret c ld a, [$d4c2] res 7, a ld [$d4c2], a call Function164d1 call Function164ea ld bc, $c5b9 ld hl, UnknownText_0x1650d call Function13e5 ret .asm_16497 ld hl, UnknownText_0x164fe call Function13e5 call YesNoBox ret c ld a, [$d4c2] set 7, a ld [$d4c2], a call Function164b9 call Function164ea ld bc, $c5b9 ld hl, UnknownText_0x16503 call Function13e5 ret ; 164b9 Function164b9: ; 164b9 ld a, [StartHour] add 1 sub 24 jr nc, .asm_164c4 add 24 .asm_164c4 ld [StartHour], a ccf ld a, [StartDay] adc 0 ld [StartDay], a ret ; 164d1 Function164d1: ; 164d1 ld a, [StartHour] sub 1 jr nc, .asm_164da add 24 .asm_164da ld [StartHour], a ld a, [StartDay] sbc 0 jr nc, .asm_164e6 add 7 .asm_164e6 ld [StartDay], a ret ; 164ea Function164ea: ; 164ea ld hl, $c5b9 ld bc, $0312 call ClearBox ret ; 164f4 UnknownText_0x164f4: ; 0x164f4 ; Do you want to adjust your clock for Daylight Saving Time? text_jump UnknownText_0x1c6095 db "@" ; 0x164f9 UnknownText_0x164f9: ; 0x164f9 ; I lost the in- struction booklet for the #GEAR. Come back again in a while. text_jump UnknownText_0x1c60d1 db "@" ; 0x164fe UnknownText_0x164fe: ; 0x164fe ; Do you want to switch to Daylight Saving Time? text_jump UnknownText_0x1c6000 db "@" ; 0x16503 UnknownText_0x16503: ; 0x16503 ; I set the clock forward by one hour. text_jump UnknownText_0x1c6030 db "@" ; 0x16508 UnknownText_0x16508: ; 0x16508 ; Is Daylight Saving Time over? text_jump UnknownText_0x1c6056 db "@" ; 0x1650d UnknownText_0x1650d: ; 0x1650d ; I put the clock back one hour. text_jump UnknownText_0x1c6075 db "@" ; 0x16512 Function16512: ; 16512 ld de, String_1669f jr Function1651a Function16517: ; 16517 ld de, String_166a8 Function1651a: ; 1651a push de xor a ld [hBGMapMode], a ld hl, TileMap ld bc, $0612 call TextBox ld hl, $c4c9 ld de, String_16699 call PlaceString ld hl, $c4d4 ld de, $d851 ld bc, $2306 call PrintNum ld hl, $c4f1 ld de, String_166b0 call PlaceString ld hl, $c4fc ld de, Money ld bc, $2306 call PrintNum ld hl, $c519 pop de call PlaceString ld hl, $c524 ld de, StringBuffer2 ld bc, $a306 call PrintNum call Function1ad2 call Function3238 ret ; 1656b Function1656b: ; 1656b ld c, $a call DelayFrames ret ; 16571 Function16571: ; 16571 .asm_16571 call Functiona57 ld hl, hJoyPressed ld a, [hl] and $2 jr nz, .asm_165b5 ld a, [hl] and $1 jr nz, .asm_165b7 call Function165b9 xor a ld [hBGMapMode], a ld hl, $c524 ld bc, $0007 ld a, $7f call ByteFill ld hl, $c524 ld de, StringBuffer2 ld bc, $a306 call PrintNum ld a, [$ff9b] and $10 jr nz, .asm_165b0 ld hl, $c525 ld a, [$cf64] ld c, a ld b, $0 add hl, bc ld [hl], $7f .asm_165b0 call WaitBGMap jr .asm_16571 .asm_165b5 scf ret .asm_165b7 and a ret ; 165b9 Function165b9: ; 165b9 ld hl, $ffa9 ld a, [hl] and $40 jr nz, .asm_165e3 ld a, [hl] and $80 jr nz, .asm_165f5 ld a, [hl] and $20 jr nz, .asm_165d2 ld a, [hl] and $10 jr nz, .asm_165da and a ret .asm_165d2 ld hl, $cf64 ld a, [hl] and a ret z dec [hl] ret .asm_165da ld hl, $cf64 ld a, [hl] cp $5 ret nc inc [hl] ret .asm_165e3 ld hl, Unknown_16613 call Function16607 ld c, l ld b, h ld de, StringBuffer2 callba Function15fd7 ret .asm_165f5 ld hl, Unknown_16613 call Function16607 ld c, l ld b, h ld de, StringBuffer2 callba Function15ffa ret ; 16607 Function16607: ; 16607 ld a, [$cf64] push de ld e, a ld d, 0 add hl, de add hl, de add hl, de pop de ret ; 16613 Unknown_16613: ; 16613 dt 100000 dt 10000 dt 1000 dt 100 dt 10 dt 1 dt 100000 dt 10000 dt 1000 dt 100 dt 10 dt 1 dt 900000 dt 90000 dt 9000 dt 900 dt 90 dt 9 ; 16649 UnknownText_0x16649: ; 0x16649 ; Wow, that's a cute #MON. Where did you get it? … So, you're leaving on an adventure… OK! I'll help too. But what can I do for you? I know! I'll save money for you. On a long journey, money's important. Do you want me to save your money? text_jump UnknownText_0x1bd77f db "@" ; 0x1664e UnknownText_0x1664e: ; 0x1664e ; OK, I'll take care of your money. text_jump UnknownText_0x1bd868 db "@" ; 0x16653 UnknownText_0x16653: ; 0x16653 ; Be careful. #MON are your friends. You need to work as a team. Now, go on! text_jump UnknownText_0x1bd88e db "@" ; 0x16658 UnknownText_0x16658: ; 0x16658 ; Hi! Welcome home! You're trying very hard, I see. I've kept your room tidy. Or is this about your money? text_jump UnknownText_0x1bd8da db "@" ; 0x1665d UnknownText_0x1665d: ; 0x1665d ; What do you want to do? text_jump UnknownText_0x1bd942 db "@" ; 0x16662 UnknownText_0x16662: ; 0x16662 ; How much do you want to save? text_jump UnknownText_0x1bd95b db "@" ; 0x16667 UnknownText_0x16667: ; 0x16667 ; How much do you want to take? text_jump UnknownText_0x1bd97a db "@" ; 0x1666c UnknownText_0x1666c: ; 0x1666c ; Do you want to save some money? text_jump UnknownText_0x1bd999 db "@" ; 0x16671 UnknownText_0x16671: ; 0x16671 ; You haven't saved that much. text_jump UnknownText_0x1bd9ba db "@" ; 0x16676 UnknownText_0x16676: ; 0x16676 ; You can't take that much. text_jump UnknownText_0x1bd9d7 db "@" ; 0x1667b UnknownText_0x1667b: ; 0x1667b ; You don't have that much. text_jump UnknownText_0x1bd9f1 db "@" ; 0x16680 UnknownText_0x16680: ; 0x16680 ; You can't save that much. text_jump UnknownText_0x1bda0b db "@" ; 0x16685 UnknownText_0x16685: ; 0x16685 ; OK, I'll save your money. Trust me! , stick with it! text_jump UnknownText_0x1bda25 db "@" ; 0x1668a UnknownText_0x1668a: ; 0x1668a ; Your money's safe here! Get going! text_jump UnknownText_0x1bda5b db "@" ; 0x1668f UnknownText_0x1668f: ; 0x1668f ; , don't give up! text_jump UnknownText_0x1bda7e db "@" ; 0x16694 UnknownText_0x16694: ; 0x16694 ; Just do what you can. text_jump UnknownText_0x1bda90 db "@" ; 0x16699 String_16699: ; 16699 db "SAVED@" ; 1669f String_1669f: ; 1669f db "WITHDRAW@" ; 166a8 String_166a8: ; 166a8 db "DEPOSIT@" ; 166b0 String_166b0: ; 166b0 db "HELD@" ; 166b5 MenuDataHeader_0x166b5: ; 0x166b5 db $40 ; flags db 00, 00 ; start coords db 10, 10 ; end coords dw MenuData2_0x166bd db 1 ; default option ; 0x166bd MenuData2_0x166bd: ; 0x166bd db $80 ; flags db 4 ; items db "GET@" db "SAVE@" db "CHANGE@" db "CANCEL@" ; 0x166d6 Function166d6: ; 166d6 ld hl, DaycareMan bit 0, [hl] jr nz, .asm_166fe ld hl, DaycareMan ld a, $0 call Function1678f jr c, .asm_16724 call Function16798 jr c, .asm_16721 callba Functionde2a ld hl, DaycareMan set 0, [hl] call Function167f6 call Function16a3b ret .asm_166fe callba Functione698 ld hl, BreedMon1Nick call Function1686d call Function16807 jr c, .asm_16721 callba Functiondd21 call Function16850 ld hl, DaycareMan res 0, [hl] res 5, [hl] jr .asm_16724 .asm_16721 call Function1689b .asm_16724 ld a, $13 call Function1689b ret ; 1672a Function1672a: ; 1672a ld hl, DaycareLady bit 0, [hl] jr nz, .asm_16752 ld hl, DaycareLady ld a, $2 call Function16781 jr c, .asm_1677b call Function16798 jr c, .asm_16778 callba Functionde37 ld hl, DaycareLady set 0, [hl] call Function167f6 call Function16a3b ret .asm_16752 callba Functione6b3 ld hl, BreedMon2Nick call Function1686d call Function16807 jr c, .asm_16778 callba Functiondd42 call Function16850 ld hl, DaycareLady res 0, [hl] ld hl, DaycareMan res 5, [hl] jr .asm_1677b .asm_16778 call Function1689b .asm_1677b ld a, $13 call Function1689b ret ; 16781 Function16781: ; 16781 bit 7, [hl] jr nz, .asm_16788 set 7, [hl] inc a .asm_16788 call Function1689b call YesNoBox ret ; 1678f Function1678f: ; 1678f set 7, [hl] call Function1689b call YesNoBox ret ; 16798 Function16798: ; 16798 ld a, [PartyCount] cp $2 jr c, .asm_167e5 ld a, $4 call Function1689b ld b, $6 callba Function5001d jr c, .asm_167dd ld a, [CurPartySpecies] cp EGG jr z, .asm_167e1 callba Functione538 jr c, .asm_167e9 ld hl, PartyMon1Item ld bc, $0030 ld a, [CurPartyMon] call AddNTimes ld d, [hl] callba ItemIsMail jr c, .asm_167ed ld hl, PartyMon1Nickname ld a, [CurPartyMon] call GetNick and a ret .asm_167dd ld a, $12 scf ret .asm_167e1 ld a, $6 scf ret .asm_167e5 ld a, $7 scf ret .asm_167e9 ld a, $8 scf ret .asm_167ed ld a, $a scf ret ; 167f1 UnknownText_0x167f1: ; 0x167f1 ; text_jump UnknownText_0x1bdaa7 db "@" ; 0x167f6 Function167f6: ; 167f6 ld a, $5 call Function1689b ld a, [CurPartySpecies] call Function37ce ld a, $9 call Function1689b ret ; 16807 Function16807: ; 16807 ld a, [$d087] and a jr nz, .asm_16819 ld a, $f call Function1689b call YesNoBox jr c, .asm_16844 jr .asm_1682d .asm_16819 ld a, $b call Function1689b call YesNoBox jr c, .asm_16844 ld a, $c call Function1689b call YesNoBox jr c, .asm_16844 .asm_1682d ld de, Money ld bc, $d088 callba Function1600b jr c, .asm_16848 ld a, [PartyCount] cp $6 jr nc, .asm_1684c and a ret .asm_16844 ld a, $12 scf ret .asm_16848 ld a, $11 scf ret .asm_1684c ld a, $10 scf ret ; 16850 Function16850: ; 16850 ld bc, $d088 ld de, Money callba Function15ffa ld a, $d call Function1689b ld a, [CurPartySpecies] call Function37ce ld a, $e call Function1689b ret ; 1686d Function1686d: ; 1686d ld a, b ld [StringBuffer2], a ld a, d ld [$d087], a ld de, StringBuffer1 ld bc, $000b call CopyBytes ld hl, $0000 ld bc, $0064 ld a, [$d087] call AddNTimes ld de, $0064 add hl, de xor a ld [$d088], a ld a, h ld [$d089], a ld a, l ld [$d08a], a ret ; 1689b Function1689b: ; 1689b ld e, a ld d, 0 ld hl, TextTable_168aa add hl, de add hl, de ld a, [hli] ld h, [hl] ld l, a call PrintText ret ; 168aa TextTable_168aa: ; 168aa dw UnknownText_0x168d2 dw UnknownText_0x168d7 dw UnknownText_0x168dc dw UnknownText_0x168e1 dw UnknownText_0x168e6 dw UnknownText_0x168ff dw UnknownText_0x168f0 dw UnknownText_0x168eb dw UnknownText_0x168fa dw UnknownText_0x16904 dw UnknownText_0x168f5 dw UnknownText_0x16909 dw UnknownText_0x1690e dw UnknownText_0x16913 dw UnknownText_0x16918 dw UnknownText_0x1691d dw UnknownText_0x16922 dw UnknownText_0x16927 dw UnknownText_0x1692c dw UnknownText_0x16931 ; 168d2 UnknownText_0x168d2: ; 0x168d2 ; I'm the DAY-CARE MAN. Want me to raise a #MON? text_jump UnknownText_0x1bdaa9 db "@" ; 0x168d7 UnknownText_0x168d7: ; 0x168d7 ; I'm the DAY-CARE MAN. Do you know about EGGS? I was raising #MON with my wife, you see. We were shocked to find an EGG! How incredible is that? So, want me to raise a #MON? text_jump UnknownText_0x1bdad8 db "@" ; 0x168dc UnknownText_0x168dc: ; 0x168dc ; I'm the DAY-CARE LADY. Should I raise a #MON for you? text_jump UnknownText_0x1bdb85 db "@" ; 0x168e1 UnknownText_0x168e1: ; 0x168e1 ; I'm the DAY-CARE LADY. Do you know about EGGS? My husband and I were raising some #MON, you see. We were shocked to find an EGG! How incredible could that be? Should I raise a #MON for you? text_jump UnknownText_0x1bdbbb db "@" ; 0x168e6 UnknownText_0x168e6: ; 0x168e6 ; What should I raise for you? text_jump UnknownText_0x1bdc79 db "@" ; 0x168eb UnknownText_0x168eb: ; 0x168eb ; Oh? But you have just one #MON. text_jump UnknownText_0x1bdc97 db "@" ; 0x168f0 UnknownText_0x168f0: ; 0x168f0 ; Sorry, but I can't accept an EGG. text_jump UnknownText_0x1bdcb8 db "@" ; 0x168f5 UnknownText_0x168f5: ; 0x168f5 ; Remove MAIL before you come see me. text_jump UnknownText_0x1bdcda db "@" ; 0x168fa UnknownText_0x168fa: ; 0x168fa ; If you give me that, what will you battle with? text_jump UnknownText_0x1bdcff db "@" ; 0x168ff UnknownText_0x168ff: ; 0x168ff ; OK. I'll raise your @ . text_jump UnknownText_0x1bdd30 db "@" ; 0x16904 UnknownText_0x16904: ; 0x16904 ; Come back for it later. text_jump UnknownText_0x1bdd4b db "@" ; 0x16909 UnknownText_0x16909: ; 0x16909 ; Are we geniuses or what? Want to see your @ ? text_jump UnknownText_0x1bdd64 db "@" ; 0x1690e UnknownText_0x1690e: ; 0x1690e ; Your @ has grown a lot. By level, it's grown by @ . If you want your #MON back, it will cost ¥@ . text_jump UnknownText_0x1bdd96 db "@" ; 0x16913 UnknownText_0x16913: ; 0x16913 ; Perfect! Here's your #MON. text_jump UnknownText_0x1bde04 db "@" ; 0x16918 UnknownText_0x16918: ; 0x16918 ; got back @ . text_jump UnknownText_0x1bde1f db "@" ; 0x1691d UnknownText_0x1691d: ; 0x1691d ; Huh? Back already? Your @ needs a little more time with us. If you want your #MON back, it will cost ¥100. text_jump UnknownText_0x1bde32 db "@" ; 0x16922 UnknownText_0x16922: ; 0x16922 ; You have no room for it. text_jump UnknownText_0x1bdea2 db "@" ; 0x16927 UnknownText_0x16927: ; 0x16927 ; You don't have enough money. text_jump UnknownText_0x1bdebc db "@" ; 0x1692c UnknownText_0x1692c: ; 0x1692c ; Oh, fine then. text_jump UnknownText_0x1bded9 db "@" ; 0x16931 UnknownText_0x16931: ; 0x16931 ; Come again. text_jump UnknownText_0x1bdee9 db "@" ; 0x16936 Function16936: ; 16936 ld hl, DaycareMan bit 6, [hl] jr nz, Function16949 ld hl, UnknownText_0x16944 call PrintText ret UnknownText_0x16944: ; 0x16944 ; Not yet… text_jump UnknownText_0x1bdef6 db "@" ; 0x16949 Function16949: ; 16949 ld hl, UnknownText_0x16993 call PrintText call YesNoBox jr c, .asm_1697c ld a, [PartyCount] cp $6 jr nc, .asm_16987 call Function169ac ld hl, DaycareMan res 6, [hl] call Function16a3b ld hl, UnknownText_0x16998 call PrintText ld de, SFX_GET_EGG_FROM_DAYCARE_LADY call PlaySFX ld c, $78 call DelayFrames ld hl, UnknownText_0x1699d jr .asm_1697f .asm_1697c ld hl, UnknownText_0x169a2 .asm_1697f call PrintText xor a ld [ScriptVar], a ret .asm_16987 ld hl, UnknownText_0x169a7 call PrintText ld a, $1 ld [ScriptVar], a ret ; 16993 UnknownText_0x16993: ; 0x16993 ; Ah, it's you! We were raising your #MON, and my goodness, were we surprised! Your #MON had an EGG! We don't know how it got there, but your #MON had it. You want it? text_jump UnknownText_0x1bdf00 db "@" ; 0x16998 UnknownText_0x16998: ; 0x16998 ; received the EGG! text_jump UnknownText_0x1bdfa5 db "@" ; 0x1699d UnknownText_0x1699d: ; 0x1699d ; Take good care of it. text_jump UnknownText_0x1bdfba db "@" ; 0x169a2 UnknownText_0x169a2: ; 0x169a2 ; Well then, I'll keep it. Thanks! text_jump UnknownText_0x1bdfd1 db "@" ; 0x169a7 UnknownText_0x169a7: ; 0x169a7 ; You have no room in your party. Come back later. text_jump UnknownText_0x1bdff2 db "@" ; 0x169ac Function169ac: ; 169ac ld a, [$df9a] ld [CurPartyLevel], a ld hl, PartyCount ld a, [hl] cp $6 jr nc, .asm_16a2f inc a ld [hl], a ld c, a ld b, 0 add hl, bc ld a, EGG ld [hli], a ld a, [EggSpecies] ld [CurSpecies], a ld [CurPartySpecies], a ld a, $ff ld [hl], a ld hl, PartyMon1Nickname ld bc, $000b call Function16a31 ld hl, EggNick call CopyBytes ld hl, PartyMon1OT ld bc, $000b call Function16a31 ld hl, EggOT call CopyBytes ld hl, PartyMon1Species ld bc, $0030 call Function16a31 ld hl, EggSpecies ld bc, $0020 call CopyBytes call GetBaseData ld a, [PartyCount] dec a ld hl, PartyMon1Species ld bc, $0030 call AddNTimes ld b, h ld c, l ld hl, $0007 add hl, bc push hl ld hl, $0024 add hl, bc ld d, h ld e, l pop hl push bc ld b, $0 ld a, $c call Predef pop bc ld hl, $0022 add hl, bc xor a ld [hli], a ld [hl], a and a ret .asm_16a2f scf ret ; 16a31 Function16a31: ; 16a31 ld a, [PartyCount] dec a call AddNTimes ld d, h ld e, l ret ; 16a3b Function16a3b: ; 16a3b ld a, [DaycareLady] bit 0, a ret z ld a, [DaycareMan] bit 0, a ret z callab Function16e1d ld a, [$d265] and a ret z inc a ret z ld hl, DaycareMan set 5, [hl] .asm_16a59 call Random cp 150 jr c, .asm_16a59 ld [StepsToEgg], a jp Function16a66 ; 16a66 Function16a66: ; 16a66 xor a ld hl, EggSpecies ld bc, $0020 call ByteFill ld hl, EggNick ld bc, $000b call ByteFill ld hl, EggOT ld bc, $000b call ByteFill ld a, [$df21] ld [TempMonDVs], a ld a, [$df22] ld [$d124], a ld a, [BreedMon1Species] ld [CurPartySpecies], a ld a, $3 ld [MonType], a ld a, [BreedMon1Species] cp DITTO ld a, $1 jr z, .asm_16ab6 ld a, [BreedMon2Species] cp DITTO ld a, $0 jr z, .asm_16ab6 callba GetGender ld a, $0 jr z, .asm_16ab6 inc a .asm_16ab6 ld [DittoInDaycare], a and a ld a, [BreedMon1Species] jr z, .asm_16ac2 ld a, [BreedMon2Species] .asm_16ac2 ld [CurPartySpecies], a callab GetPreEvolution callab GetPreEvolution ld a, $5 ld [CurPartyLevel], a ld a, [CurPartySpecies] cp $1d jr nz, .asm_16ae8 call Random cp $80 ld a, $1d jr c, .asm_16ae8 ld a, $20 .asm_16ae8 ld [CurPartySpecies], a ld [CurSpecies], a ld [EggSpecies], a call GetBaseData ld hl, EggNick ld de, String_16be0 call CopyName2 ld hl, PlayerName ld de, EggOT ld bc, $000b call CopyBytes xor a ld [$df7c], a ld de, $df7d xor a ld [Buffer1], a ld a, $1b call Predef callba Function170bf ld hl, $df81 ld a, [PlayerID] ld [hli], a ld a, [$d47c] ld [hl], a ld a, [CurPartyLevel] ld d, a callab Function50e47 ld hl, $df83 ld a, [hMultiplicand] ld [hli], a ld a, [$ffb5] ld [hli], a ld a, [$ffb6] ld [hl], a xor a ld b, $a ld hl, $df86 .asm_16b46 ld [hli], a dec b jr nz, .asm_16b46 ld hl, $df90 call Random ld [hli], a ld [TempMonDVs], a call Random ld [hld], a ld [$d124], a ld de, $df21 ld a, [BreedMon1Species] cp DITTO jr z, .asm_16b98 ld de, $df5a ld a, [BreedMon2Species] cp DITTO jr z, .asm_16b98 ld a, $3 ld [MonType], a push hl callba GetGender pop hl ld de, $df21 ld bc, $df5a jr c, .asm_16bab jr z, .asm_16b90 ld a, [DittoInDaycare] and a jr z, .asm_16b98 ld d, b ld e, c jr .asm_16b98 .asm_16b90 ld a, [DittoInDaycare] and a jr nz, .asm_16b98 ld d, b ld e, c .asm_16b98 ld a, [de] inc de and $f ld b, a ld a, [hl] and $f0 add b ld [hli], a ld a, [de] and $7 ld b, a ld a, [hl] and $f8 add b ld [hl], a .asm_16bab ld hl, StringBuffer1 ld de, $d050 ld bc, $000b call CopyBytes ld hl, $df7d ld de, $df92 ld a, $5 call Predef ld hl, $d050 ld de, StringBuffer1 ld bc, $000b call CopyBytes ld a, [BaseEggSteps] ld hl, $df96 ld [hli], a xor a ld [hli], a ld [hli], a ld [hl], a ld a, [CurPartyLevel] ld [$df9a], a ret ; 16be0 String_16be0: ; 16be0 db "EGG@" ; 16be4 Function16be4: ; 16be4 ld a, [UnownDex] and a ret z ld a, [$ffaa] push af ld a, $1 ld [$ffaa], a ld a, [Options] push af set 4, a ld [Options], a call WhiteBGMap call ClearTileMap ld de, UnownDexATile ld hl, $8ef0 ld bc, $0501 call Request1bpp ld de, UnownDexBTile ld hl, $8f50 ld bc, $0501 call Request1bpp ld hl, TileMap ld bc, $0312 call TextBox ld hl, $c504 ld bc, $0707 call TextBox ld hl, $c5b8 ld bc, $0212 call TextBox ld hl, $c4c9 ld de, AlphRuinsStampString call PlaceString ld hl, $c5e1 ld de, UnownDexDoWhatString call PlaceString ld hl, $c522 ld de, UnownDexMenuString call PlaceString xor a ld [$cf63], a call Function16cc8 call WaitBGMap ld a, UNOWN ld [CurPartySpecies], a xor a ld [TempMonDVs], a ld [TempMonDVs + 1], a ld b, $1c call GetSGBLayout call Function32f9 .asm_16c6b call Functiona57 ld a, [hJoyPressed] and B_BUTTON jr nz, .asm_16c95 ld a, [hJoyPressed] and A_BUTTON jr nz, .asm_16c82 call Function16ca0 call DelayFrame jr .asm_16c6b .asm_16c82 ld a, [$cf63] push af callba Function84560 call Function3d47 pop af ld [$cf63], a jr .asm_16c6b .asm_16c95 pop af ld [Options], a pop af ld [$ffaa], a call Function222a ret ; 16ca0 Function16ca0: ; 16ca0 ld a, [$ffa9] and $10 jr nz, .asm_16cb9 ld a, [$ffa9] and $20 jr nz, .asm_16cad ret .asm_16cad ld hl, $cf63 ld a, [hl] and a jr nz, .asm_16cb6 ld [hl], $1b .asm_16cb6 dec [hl] jr .asm_16cc4 .asm_16cb9 ld hl, $cf63 ld a, [hl] cp $1a jr c, .asm_16cc3 ld [hl], $ff .asm_16cc3 inc [hl] .asm_16cc4 call Function16cc8 ret ; 16cc8 Function16cc8: ; 16cc8 ld a, [$cf63] cp 26 jr z, Function16d20 inc a ld [UnownLetter], a ld a, UNOWN ld [CurPartySpecies], a xor a ld [$c2c6], a ld de, VTiles2 ld a, $3c call Predef call Function16cff ld hl, $c519 xor a ld [$ffad], a ld bc, $0707 ld a, $13 call Predef ld de, $9310 callba Functione0000 ret ; 16cff Function16cff: ; 16cff ld a, [rSVBK] push af ld a, $6 ld [rSVBK], a ld a, $0 call GetSRAMBank ld de, Unkn1Pals ld hl, $a000 ld a, [hROMBank] ld b, a ld c, $31 call Get2bpp call CloseSRAM pop af ld [rSVBK], a ret ; 16d20 Function16d20: ; 16d20 ld hl, $c519 ld bc, $0707 call ClearBox ld hl, $c555 ld de, UnownDexVacantString call PlaceString xor a call GetSRAMBank ld hl, $a000 ld bc, $0310 xor a call ByteFill ld hl, $9310 ld de, $a000 ld c, $31 ld a, [hROMBank] ld b, a call Get2bpp call CloseSRAM ld c, $14 call DelayFrames ret ; 16d57 AlphRuinsStampString: db " ALPH RUINS STAMP@" UnownDexDoWhatString: db "Do what?@" UnownDexMenuString: db $ef, " PRINT", $4e db $f5, " CANCEL", $4e db $df, " PREVIOUS", $4e db $eb, " NEXT@" UnownDexVacantString: db "VACANT@" ; 16d9c UnownDexATile: ; 16d9c INCBIN "baserom.gbc", $16d9c, $16da4 - $16d9c UnownDexBTile: ; 16da4 INCBIN "baserom.gbc", $16da4, $16dac - $16da4 ; 16dac Function16dac: ; 16dac ld hl, TileMap ld bc, $0168 ld a, $7f call ByteFill ld hl, $c583 ld a, $31 ld [$ffad], a ld bc, $0707 ld a, $13 call Predef ret ; 16dc7 Function16dc7: ; 16dc7 ld hl, UnknownText_0x16e04 call PrintText callba Function50000 jr c, .asm_16df8 ld a, [CurPartySpecies] cp EGG jr z, .asm_16dfd ld hl, UnknownText_0x16e09 call PrintText call Function2ed3 callba Function8461a call Function2b74 ld a, [$ffac] and a jr nz, .asm_16df8 ld hl, UnknownText_0x16e0e jr .asm_16e00 .asm_16df8 ld hl, UnknownText_0x16e13 jr .asm_16e00 .asm_16dfd ld hl, UnknownText_0x16e18 .asm_16e00 call PrintText ret ; 16e04 UnknownText_0x16e04: ; 0x16e04 ; Which #MON should I photo- graph? text_jump UnknownText_0x1be024 db "@" ; 0x16e09 UnknownText_0x16e09: ; 0x16e09 ; All righty. Hold still for a bit. text_jump UnknownText_0x1be047 db "@" ; 0x16e0e UnknownText_0x16e0e: ; 0x16e0e ; Presto! All done. Come again, OK? text_jump UnknownText_0x1be06a db "@" ; 0x16e13 UnknownText_0x16e13: ; 0x16e13 ; Oh, no picture? Come again, OK? text_jump UnknownText_0x1c0000 db "@" ; 0x16e18 UnknownText_0x16e18: ; 0x16e18 ; An EGG? My talent is worth more… text_jump UnknownText_0x1c0021 db "@" ; 0x16e1d Function16e1d: ; 16e1d call Function16ed6 ld c, $0 jp nc, .asm_16eb7 ld a, [BreedMon1Species] ld [CurPartySpecies], a ld a, [$df21] ld [TempMonDVs], a ld a, [$df22] ld [$d124], a ld a, $3 ld [MonType], a ld a, $24 call Predef jr c, .asm_16e70 ld b, $1 jr nz, .asm_16e48 inc b .asm_16e48 push bc ld a, [BreedMon2Species] ld [CurPartySpecies], a ld a, [$df5a] ld [TempMonDVs], a ld a, [$df5b] ld [$d124], a ld a, $3 ld [MonType], a ld a, $24 call Predef pop bc jr c, .asm_16e70 ld a, $1 jr nz, .asm_16e6d inc a .asm_16e6d cp b jr nz, .asm_16e89 .asm_16e70 ld c, $0 ld a, [BreedMon1Species] cp DITTO jr z, .asm_16e82 ld a, [BreedMon2Species] cp DITTO jr nz, .asm_16eb7 jr .asm_16e89 .asm_16e82 ld a, [BreedMon2Species] cp DITTO jr z, .asm_16eb7 .asm_16e89 call Function16ebc ld c, $ff jp z, .asm_16eb7 ld a, [BreedMon2Species] ld b, a ld a, [BreedMon1Species] cp b ld c, $fe jr z, .asm_16e9f ld c, $80 .asm_16e9f ld a, [$df12] ld b, a ld a, [$df4b] cp b jr nz, .asm_16eb7 ld a, [$df13] ld b, a ld a, [$df4c] cp b jr nz, .asm_16eb7 ld a, c sub $4d ld c, a .asm_16eb7 ld a, c ld [$d265], a ret ; 16ebc ; known jump sources: 16e89 (5:6e89) Function16ebc: ; 16ebc (5:6ebc) ld a, [$df21] and $f ld b, a ld a, [$df5a] and $f cp b ret nz ld a, [$df22] and $7 ld b, a ld a, [$df5b] and $7 cp b ret ; 16ed6 Function16ed6: ; 16ed6 ld a, [BreedMon2Species] ld [CurSpecies], a call GetBaseData ld a, [BaseEggGroups] cp $ff jr z, .asm_16f3a ld a, [BreedMon1Species] ld [CurSpecies], a call GetBaseData ld a, [BaseEggGroups] cp $ff jr z, .asm_16f3a ld a, [BreedMon2Species] cp DITTO jr z, .asm_16f3c ld [CurSpecies], a call GetBaseData ld a, [BaseEggGroups] push af and $f ld b, a pop af and $f0 swap a ld c, a ld a, [BreedMon1Species] cp DITTO jr z, .asm_16f3c ld [CurSpecies], a push bc call GetBaseData pop bc ld a, [BaseEggGroups] push af and $f ld d, a pop af and $f0 swap a ld e, a ld a, d cp b jr z, .asm_16f3c cp c jr z, .asm_16f3c ld a, e cp b jr z, .asm_16f3c cp c jr z, .asm_16f3c .asm_16f3a and a ret .asm_16f3c scf ret ; 16f3e Function16f3e:: ; 16f3e ld de, PartySpecies ld hl, PartyMon1Happiness ld c, 0 .loop ld a, [de] inc de cp $ff ret z cp EGG jr nz, .next dec [hl] jr nz, .next ld a, 1 and a ret .next push de ld de, PartyMon2 - PartyMon1 add hl, de pop de jr .loop ; 16f5e Function16f5e:: ; 16f5e call ResetWindow call Function1d6e call Function16f70 call Function2b4d call Function3d47 jp Function2dcf ; 16f70 ; known jump sources: 16f64 (5:6f64) Function16f70: ; 16f70 (5:6f70) ld de, PartySpecies ; $dcd8 ld hl, PartyMon1Happiness ; $dcfa xor a ld [CurPartyMon], a ; $d109 ; known jump sources: 17087 (5:7087) Function16f7a: ; 16f7a (5:6f7a) ld a, [de] inc de cp $ff jp z, Function1708a push de push hl cp EGG jp nz, Function1707d ld a, [hl] and a jp nz, Function1707d ld [hl], $78 push de callba Function4dbb8 callba Function10608d ld a, [CurPartyMon] ; $d109 ld hl, PartyMons ; $dcdf (aliases: PartyMon1, PartyMon1Species) ld bc, $30 call AddNTimes ld a, [hl] ld [CurPartySpecies], a ; $d108 dec a call SetSeenAndCaughtMon ld a, [CurPartySpecies] ; $d108 cp $af jr nz, .asm_16fbf ld de, $54 ld b, $1 call EventFlagAction .asm_16fbf pop de ld a, [CurPartySpecies] ; $d108 dec de ld [de], a ld [$d265], a ld [CurSpecies], a ; $cf60 call GetPokemonName xor a ld [$d26b], a call GetBaseData ld a, [CurPartyMon] ; $d109 ld hl, PartyMons ; $dcdf (aliases: PartyMon1, PartyMon1Species) ld bc, $30 call AddNTimes push hl ld bc, $24 add hl, bc ld d, h ld e, l pop hl push hl ld bc, $1f add hl, bc ld a, [hl] ld [CurPartyLevel], a ; $d143 pop hl push hl ld bc, $20 add hl, bc xor a ld [hli], a ld [hl], a pop hl push hl ld bc, $a add hl, bc ld b, $0 ld a, $c call Predef pop bc ld hl, $24 add hl, bc ld d, h ld e, l ld hl, $22 add hl, bc ld a, [de] inc de ld [hli], a ld a, [de] ld [hl], a ld hl, $6 add hl, bc ld a, [PlayerID] ; $d47b ld [hli], a ld a, [$d47c] ld [hl], a ld a, [CurPartyMon] ; $d109 ld hl, PartyMonOT ; $ddff (aliases: PartyMon1OT) ld bc, $b call AddNTimes ld d, h ld e, l ld hl, PlayerName ; $d47d call CopyBytes ld hl, UnknownText_0x1708b call PrintText ld a, [CurPartyMon] ; $d109 ld hl, PartyMonNicknames ; $de41 (aliases: PartyMon1Nickname) ld bc, $b call AddNTimes ld d, h ld e, l push de ld hl, UnknownText_0x170ba call PrintText call YesNoBox pop de jr c, .asm_17074 ld a, $1 ld [$d26b], a xor a ld [MonType], a ; $cf5f push de ld b, $0 callba Function116c1 pop hl ld de, StringBuffer1 ; $d073 call InitName jr Function1707d .asm_17074 ld hl, StringBuffer1 ; $d073 ld bc, $b call CopyBytes ; known jump sources: 16f85 (5:6f85), 16f8a (5:6f8a), 17072 (5:7072) Function1707d: ; 1707d (5:707d) ld hl, CurPartyMon ; $d109 inc [hl] pop hl ld de, $30 add hl, de pop de jp Function16f7a ; known jump sources: 16f7e (5:6f7e) Function1708a: ; 1708a (5:708a) ret ; 1708b (5:708b) UnknownText_0x1708b: ; 0x1708b ; Huh? @ @ text_jump UnknownText_0x1c0db0 start_asm ; 0x17090 Function17090: ; 17090 ld hl, VramState ; $d0ed res 0, [hl] push hl push de push bc ld a, [CurPartySpecies] ; $d108 push af call Function1728f ld hl, UnknownText_0x170b0 call PrintText pop af ld [CurPartySpecies], a ; $d108 pop bc pop de pop hl ld hl, UnknownText_0x170b5 ret ; 170b0 (5:70b0) UnknownText_0x170b0: ; 0x170b0 ; text_jump UnknownText_0x1c0db8 db "@" ; 0x170b5 UnknownText_0x170b5: ; 0x170b5 ; came out of its EGG!@ @ text_jump UnknownText_0x1c0dba db "@" ; 0x170ba UnknownText_0x170ba: ; 0x170ba ; Give a nickname to @ ? text_jump UnknownText_0x1c0dd8 db "@" ; 0x170bf Function170bf: ; 170bf call Function17197 ld d, h ld e, l ld b, $4 .asm_170c6 ld a, [de] and a jr z, .asm_170e3 ld hl, $df7d ld c, $4 .asm_170cf ld a, [de] cp [hl] jr z, .asm_170df inc hl dec c jr nz, .asm_170cf call Function170e4 jr nc, .asm_170df call Function17169 .asm_170df inc de dec b jr nz, .asm_170c6 .asm_170e3 ret ; 170e4 Function170e4: ; 170e4 GLOBAL EggMoves push bc ld a, [EggSpecies] dec a ld c, a ld b, 0 ld hl, EggMovePointers add hl, bc add hl, bc ld a, BANK(EggMovePointers) call GetFarHalfword .asm_170f6 ld a, BANK(EggMoves) call GetFarByte cp $ff jr z, .asm_17107 ld b, a ld a, [de] cp b jr z, .asm_17163 inc hl jr .asm_170f6 .asm_17107 call Function1720b ld b, NUM_MOVES .asm_1710c ld a, [de] cp [hl] jr z, .asm_17116 inc hl dec b jr z, .asm_17146 jr .asm_1710c .asm_17116 ld a, [EggSpecies] dec a ld c, a ld b, 0 ld hl, EvosAttacksPointers add hl, bc add hl, bc ld a, BANK(EvosAttacksPointers) call GetFarHalfword .asm_17127 ld a, BANK(EvosAttacks) call GetFarByte inc hl and a jr nz, .asm_17127 .asm_17130 ld a, BANK(EvosAttacks) call GetFarByte and a jr z, .asm_17146 inc hl ld a, BANK(EvosAttacks) call GetFarByte ld b, a ld a, [de] cp b jr z, .asm_17163 inc hl jr .asm_17130 .asm_17146 ld hl, TMHMMoves .asm_17149 ld a, BANK(TMHMMoves) call GetFarByte inc hl and a jr z, .asm_17166 ld b, a ld a, [de] cp b jr nz, .asm_17149 ld [$d262], a ld a, $e call Predef ld a, c and a jr z, .asm_17166 .asm_17163 pop bc scf ret .asm_17166 pop bc and a ret ; 17169 Function17169: ; 17169 push de push bc ld a, [de] ld b, a ld hl, $df7d ld c, NUM_MOVES .asm_17172 ld a, [hli] and a jr z, .asm_17187 dec c jr nz, .asm_17172 ld de, $df7d ld hl, $df7e ld a, [hli] ld [de], a inc de ld a, [hli] ld [de], a inc de ld a, [hli] ld [de], a .asm_17187 dec hl ld [hl], b ld hl, $df7d ld de, $df92 ld a, $5 call Predef pop bc pop de ret ; 17197 Function17197: ; 17197 ld hl, $df47 ld a, [BreedMon1Species] cp DITTO jr z, .asm_171b1 ld a, [BreedMon2Species] cp DITTO jr z, .asm_171d7 ld a, [DittoInDaycare] and a ret z ld hl, $df0e ret .asm_171b1 ld a, [CurPartySpecies] push af ld a, [BreedMon2Species] ld [CurPartySpecies], a ld a, [$df5a] ld [TempMonDVs], a ld a, [$df5b] ld [$d124], a ld a, $3 ld [MonType], a ld a, $24 call Predef jr c, .asm_171fb jr nz, .asm_171fb jr .asm_17203 .asm_171d7 ld a, [CurPartySpecies] push af ld a, [BreedMon1Species] ld [CurPartySpecies], a ld a, [$df21] ld [TempMonDVs], a ld a, [$df22] ld [$d124], a ld a, $3 ld [MonType], a ld a, $24 call Predef jr c, .asm_17203 jr nz, .asm_17203 .asm_171fb ld hl, $df47 pop af ld [CurPartySpecies], a ret .asm_17203 ld hl, $df0e pop af ld [CurPartySpecies], a ret ; 1720b Function1720b: ; 1720b ld hl, $df0e ld a, [BreedMon1Species] cp DITTO ret z ld a, [BreedMon2Species] cp DITTO jr z, .asm_17220 ld a, [DittoInDaycare] and a ret z .asm_17220 ld hl, $df47 ret ; 17224 ; known jump sources: 172ca (5:72ca) Function17224: ; 17224 (5:7224) push de ld [CurPartySpecies], a ; $d108 ld [CurSpecies], a ; $cf60 call GetBaseData ld hl, BattleMonDVs ; $c632 (aliases: BattleMonAtkDefDV) ld a, $2d call Predef pop de ld a, $3c jp Predef ; known jump sources: 172c2 (5:72c2) Function1723c: ; 1723c (5:723c) push de ld [CurPartySpecies], a ; $d108 ld [CurSpecies], a ; $cf60 call GetBaseData ld hl, BattleMonDVs ; $c632 (aliases: BattleMonAtkDefDV) ld a, $2d call Predef pop de ld a, $3e jp Predef ; known jump sources: 172df (5:72df), 17343 (5:7343) Function17254: ; 17254 (5:7254) push af call WaitTop push hl push bc ld hl, TileMap ; $c4a0 (aliases: SpritesEnd) ld bc, $168 ld a, $7f call ByteFill pop bc pop hl ld a, b ld [$ffd7], a ld a, c ld [$ffad], a ld bc, $707 ld a, $13 call Predef pop af call Function17363 call Function32f9 jp WaitBGMap ; known jump sources: 17301 (5:7301), 17312 (5:7312), 173eb (5:73eb), 1741a (5:741a) Function1727f: ; 1727f (5:727f) push hl push de push bc callab Function8cf69 call DelayFrame pop bc pop de pop hl ret ; known jump sources: 1709c (5:709c) Function1728f: ; 1728f (5:728f) ld a, [$d265] ld [$cf63], a ld a, [CurSpecies] ; $cf60 push af ld de, MUSIC_NONE call PlayMusic callba Function8000 call DisableLCD ld hl, EggHatchGFX ld de, $8000 ld bc, $20 ld a, BANK(EggHatchGFX) call FarCopyBytes callba Function8cf53 ld de, $9000 ld a, [$cf63] call Function1723c ld de, $9310 ld a, EGG call Function17224 ld de, MUSIC_EVOLUTION call PlayMusic call EnableLCD ld hl, $c4f7 ld b, $98 ld c, $31 ld a, EGG call Function17254 ld c, $50 call DelayFrames xor a ld [$cf64], a ld a, [hSCX] ; $ff00+$cf ld b, a .asm_172ee ld hl, $cf64 ld a, [hl] inc [hl] cp $8 jr nc, .asm_17327 ld e, [hl] .asm_172f8 ld a, $2 ld [hSCX], a ; $ff00+$cf ld a, $fe ld [$c3c0], a call Function1727f ld c, $2 call DelayFrames ld a, $fe ld [hSCX], a ; $ff00+$cf ld a, $2 ld [$c3c0], a call Function1727f ld c, $2 call DelayFrames dec e jr nz, .asm_172f8 ld c, $10 call DelayFrames call Function1736d jr .asm_172ee .asm_17327 ld de, SFX_EGG_HATCH call PlaySFX xor a ld [hSCX], a ; $ff00+$cf ld [$c3c0], a call ClearSprites call Function173b3 ld hl, $c4e2 ld b, $98 ld c, $0 ld a, [$cf63] call Function17254 call Function17418 call WaitSFX ld a, [$cf63] ld [CurPartySpecies], a ; $d108 ld hl, $c4e2 ld d, $0 ld e, $5 ld a, $47 call Predef pop af ld [CurSpecies], a ; $cf60 ret ; known jump sources: 17276 (5:7276) Function17363: ; 17363 (5:7363) ld [PlayerHPPal], a ; $cd99 ld b, $b ld c, $0 jp GetSGBLayout ; known jump sources: 17322 (5:7322) Function1736d: ; 1736d (5:736d) ld a, [$cf64] dec a and $7 cp $7 ret z srl a ret nc swap a srl a add $4c ld d, a ld e, $58 ld a, $19 call Function3b2a ld hl, $3 add hl, bc ld [hl], $0 ld de, SFX_EGG_CRACK jp PlaySFX ; 17393 (5:7393) EggHatchGFX: ; 17393 INCBIN "baserom.gbc",$17393,$173b3 - $17393 ; 173b3 ; known jump sources: 17336 (5:7336) Function173b3: ; 173b3 (5:73b3) callba Function8cf53 ld hl, Unknown_173ef .asm_173bc ld a, [hli] cp $ff jr z, .asm_173e5 ld e, a ld a, [hli] ld d, a ld a, [hli] ld c, a ld a, [hli] ld b, a push hl push bc ld a, $1c call Function3b2a ld hl, $3 add hl, bc ld [hl], $0 pop de ld a, e ld hl, $1 add hl, bc add [hl] ld [hl], a ld hl, $b add hl, bc ld [hl], d pop hl jr .asm_173bc .asm_173e5 ld de, SFX_EGG_HATCH call PlaySFX call Function1727f ret ; 173ef (5:73ef) Unknown_173ef: ; 173ef ; Probably OAM. db $54, $48, $00, $3c db $5c, $48, $01, $04 db $54, $50, $00, $30 db $5c, $50, $01, $10 db $54, $58, $02, $24 db $5c, $58, $03, $1c db $50, $4c, $00, $36 db $60, $4c, $01, $0a db $50, $54, $02, $2a db $60, $54, $03, $16 db $ff ; 17418 ; known jump sources: 17346 (5:7346) Function17418: ; 17418 (5:7418) ld c, $81 .asm_1741a call Function1727f dec c jr nz, .asm_1741a ret Function17421: ; 17421 ld hl, UnknownText_0x17467 call PrintText ld a, [BreedMon1Species] call Function37ce ld a, [DaycareLady] bit 0, a jr z, Function1745f call Functionaaf ld hl, BreedMon2Nick call Function1746c jp PrintText Function17440: ; 17440 ld hl, UnknownText_0x17462 call PrintText ld a, [BreedMon2Species] call Function37ce ld a, [DaycareMan] bit 0, a jr z, Function1745f call Functionaaf ld hl, BreedMon1Nick call Function1746c jp PrintText Function1745f: ; 1745f jp Functiona80 ; 17462 UnknownText_0x17462: ; 0x17462 ; It's @ that was left with the DAY-CARE LADY. text_jump UnknownText_0x1c0df3 db "@" ; 0x17467 UnknownText_0x17467: ; 0x17467 ; It's @ that was left with the DAY-CARE MAN. text_jump UnknownText_0x1c0e24 db "@" ; 0x1746c Function1746c: ; 1746c push bc ld de, StringBuffer1 ld bc, $000b call CopyBytes call Function16e1d pop bc ld a, [$d265] ld hl, UnknownText_0x1749c cp $ff jr z, .asm_1749b ld hl, UnknownText_0x174a1 and a jr z, .asm_1749b ld hl, UnknownText_0x174a6 cp 230 jr nc, .asm_1749b cp 70 ld hl, UnknownText_0x174ab jr nc, .asm_1749b ld hl, UnknownText_0x174b0 .asm_1749b ret ; 1749c UnknownText_0x1749c: ; 0x1749c ; It's brimming with energy. text_jump UnknownText_0x1c0e54 db "@" ; 0x174a1 UnknownText_0x174a1: ; 0x174a1 ; It has no interest in @ . text_jump UnknownText_0x1c0e6f db "@" ; 0x174a6 UnknownText_0x174a6: ; 0x174a6 ; It appears to care for @ . text_jump UnknownText_0x1c0e8d db "@" ; 0x174ab UnknownText_0x174ab: ; 0x174ab ; It's friendly with @ . text_jump UnknownText_0x1c0eac db "@" ; 0x174b0 UnknownText_0x174b0: ; 0x174b0 ; It shows interest in @ . text_jump UnknownText_0x1c0ec6 db "@" ; 0x174b5 Function_174b5: ; 174b5 ld hl, String_174b9 ret ; 174b9 String_174b9: ; 174b9 db "@" ; 174ba SECTION "Tileset Data 1", ROMX, BANK[TILESETS_1] INCLUDE "tilesets/data_1.asm" SECTION "Roofs", ROMX, BANK[ROOFS] INCLUDE "tilesets/roofs.asm" SECTION "Tileset Data 2", ROMX, BANK[TILESETS_2] INCLUDE "tilesets/data_2.asm" SECTION "bank8", ROMX, BANK[$8] ; known jump sources: 200e8 (8:40e8), 200f9 (8:40f9), 20169 (8:4169) Function20000: ; 20000 (8:4000) push hl dec a ld e, a ld d, 0 ld hl, Unknown_20015 add hl, de add hl, de add hl, de add hl, de ld e, [hl] inc hl ld d, [hl] inc hl ld b, [hl] inc hl ld c, [hl] pop hl ret ; 20015 (8:4015) Unknown_20015: ; 20015 dw $d1ed db $07, $04 dw $d1ee db $18, $0c dw $d1ef db $3c, $0f ; 20021 ; no known jump sources Function20021: ; 20021 (8:4021) ld hl, UnknownText_0x20047 call PrintText ld hl, Options ; $cfcc ld a, [hl] push af set 4, [hl] call Function1d6e call ClearTileMap ld hl, UnknownText_0x2004c call PrintText call Function20051 call Function1c07 pop bc ld hl, Options ; $cfcc ld [hl], b ld c, a ret ; 20047 (8:4047) UnknownText_0x20047: ; 0x20047 ; The clock's time may be wrong. Please reset the time. text_jump UnknownText_0x1c40e6 db "@" ; 0x2004c UnknownText_0x2004c: ; 0x2004c ; Set with the Control Pad. Confirm: A Button Cancel: B Button text_jump UnknownText_0x1c411c db "@" ; 0x20051 ; known jump sources: 2003a (8:403a) Function20051: ; 20051 (8:4051) ld a, $1 ld [Buffer1], a ; $d1ea (aliases: MagikarpLength) ld [Buffer2], a ; $d1eb (aliases: MovementType) ld a, $8 ld [$d1ec], a call UpdateTime call GetWeekday ld [$d1ed], a ld a, [hHours] ; $ff00+$94 ld [$d1ee], a ld a, [hMinutes] ; $ff00+$96 ld [$d1ef], a .asm_20071 call Function200ba jr nc, .asm_20071 and a ret nz call Function2011f ld hl, UnknownText_0x200b0 call PrintText call YesNoBox jr c, .asm_200ad ld a, [$d1ed] ld [StringBuffer2], a ; $d086 ld a, [$d1ee] ld [$d087], a ld a, [$d1ef] ld [$d088], a xor a ld [$d089], a call Function677 call Function2011f ld hl, UnknownText_0x200b5 call PrintText call Functiona80 xor a ret .asm_200ad ld a, $1 ret ; 200b0 (8:40b0) UnknownText_0x200b0: ; 0x200b0 ; Is this OK? text_jump UnknownText_0x1c415b db "@" ; 0x200b5 UnknownText_0x200b5: ; 0x200b5 ; The clock has been reset. text_jump UnknownText_0x1c4168 db "@" ; 0x200ba ; known jump sources: 20071 (8:4071), 200db (8:40db) Function200ba: ; 200ba (8:40ba) call Function354b ld c, a push af call Function2011f pop af bit 0, a jr nz, .asm_200dd bit 1, a jr nz, .asm_200e1 bit 6, a jr nz, .asm_200e5 bit 7, a jr nz, .asm_200f6 bit 5, a jr nz, .asm_20108 bit 4, a jr nz, .asm_20112 jr Function200ba .asm_200dd ld a, $0 scf ret .asm_200e1 ld a, $1 scf ret .asm_200e5 ld a, [Buffer1] ; $d1ea (aliases: MagikarpLength) call Function20000 ld a, [de] inc a ld [de], a cp b jr c, .asm_2011d ld a, $0 ld [de], a jr .asm_2011d .asm_200f6 ld a, [Buffer1] ; $d1ea (aliases: MagikarpLength) call Function20000 ld a, [de] dec a ld [de], a cp $ff jr nz, .asm_2011d ld a, b dec a ld [de], a jr .asm_2011d .asm_20108 ld hl, Buffer1 ; $d1ea (aliases: MagikarpLength) dec [hl] jr nz, .asm_2011d ld [hl], $3 jr .asm_2011d .asm_20112 ld hl, Buffer1 ; $d1ea (aliases: MagikarpLength) inc [hl] ld a, [hl] cp $4 jr c, .asm_2011d ld [hl], $1 .asm_2011d xor a ret ; known jump sources: 20078 (8:4078), 2009f (8:409f), 200bf (8:40bf) Function2011f: ; 2011f (8:411f) ld hl, $c504 ld b, $5 ld c, $12 call TextBox ld de, $c541 ld a, [$d1ed] ld b, a callba Function5b05 ld a, [$d1ee] ld b, a ld a, [$d1ef] ld c, a ld de, $c54b callba Function1dd6bb ld a, [Buffer2] ; $d1eb (aliases: MovementType) lb de, $7f, $7f call Function20168 ld a, [Buffer1] ; $d1ea (aliases: MagikarpLength) lb de, $61, $ee call Function20168 ld a, [Buffer1] ; $d1ea (aliases: MagikarpLength) ld [Buffer2], a ; $d1eb (aliases: MovementType) ret ; 20160 (8:4160) Function20160: ; 20160 ld a, [$d1ec] ld b, a call GetTileCoord ret ; 20168 ; known jump sources: 2014d (8:414d), 20156 (8:4156) Function20168: ; 20168 (8:4168) push de call Function20000 ld a, [$d1ec] dec a ld b, a call GetTileCoord pop de ld [hl], d ld bc, $28 add hl, bc ld [hl], e ret ; 2017c (8:417c) String_2017c: ; 2017c db "じ@" ; HR ; 2017e String_2017e: ; 2017e db "ふん@" ; MIN ; 20181 SECTION "Tileset Data 3", ROMX, BANK[TILESETS_3] INCLUDE "tilesets/data_3.asm" SECTION "bank9", ROMX, BANK[$9] Unknown_24000:: ; 24000 dw StringBuffer3 dw StringBuffer4 dw StringBuffer5 dw StringBuffer2 dw StringBuffer1 dw EnemyMonNick dw BattleMonNick ; 2400e Function2400e:: ; 2400e ld hl, Function1c66 ld a, [$cf94] rst FarCall call Function24085 call Function1ad2 call Function321c call Function2408f ret ; 24022 Function24022:: ; 24022 ld hl, Function1c66 ld a, [$cf94] rst FarCall call Function24085 callba MobileTextBorder call Function1ad2 call Function321c call Function2408f ret ; 2403c Function2403c:: ; 2403c ld hl, Function1c66 ld a, [$cf94] rst FarCall call Function24085 callba MobileTextBorder call Function1ad2 call Function321c call Function2411a ld hl, $cfa5 set 7, [hl] .asm_2405a call DelayFrame callba Function10032e ld a, [$cd2b] and a jr nz, .asm_24076 call Function241ba ld a, [$cfa8] and c jr z, .asm_2405a call Function24098 ret .asm_24076 ld a, [$cfa4] ld c, a ld a, [$cfa3] call SimpleMultiply ld [$cf88], a and a ret ; 24085 Function24085: ; 24085 xor a ld [hBGMapMode], a call Function1cbb call Function240db ret ; 2408f Function2408f: ; 2408f call Function2411a call Function1bc9 call Function1ff8 Function24098: ; 24098 ld a, [$cf91] bit 1, a jr z, .asm_240a6 call Function1bdd bit 2, a jr nz, .asm_240c9 .asm_240a6 ld a, [$cf91] bit 0, a jr nz, .asm_240b4 call Function1bdd bit 1, a jr nz, .asm_240cb .asm_240b4 ld a, [$cfa4] ld c, a ld a, [$cfa9] dec a call SimpleMultiply ld c, a ld a, [$cfaa] add c ld [$cf88], a and a ret .asm_240c9 scf ret .asm_240cb scf ret ; 240cd Function240cd: ; 240cd ld a, [$cf92] and $f ret ; 240d3 Function240d3: ; 240d3 ld a, [$cf92] swap a and $f ret ; 240db Function240db: ; 240db ld hl, $cf95 ld e, [hl] inc hl ld d, [hl] call Function1cc6 call GetTileCoord call Function240d3 ld b, a .asm_240eb push bc push hl call Function240cd ld c, a .asm_240f1 push bc ld a, [$cf94] call Function201c inc de ld a, [$cf93] ld c, a ld b, $0 add hl, bc pop bc dec c jr nz, .asm_240f1 pop hl ld bc, $0028 add hl, bc pop bc dec b jr nz, .asm_240eb ld hl, $cf98 ld a, [hli] ld h, [hl] ld l, a or h ret z ld a, [$cf97] rst FarCall ret ; 2411a ; known jump sources: 2408f (9:408f) Function2411a: ; 2411a (9:411a) call Function1cc6 ld a, b ld [$cfa1], a dec c ld a, c ld [$cfa2], a call Function240d3 ld [$cfa3], a call Function240cd ld [$cfa4], a call Function24179 call Function2418a call Function24193 ld a, [$cfa4] ld e, a ld a, [$cf88] ld b, a xor a ld d, $0 .asm_24146 inc d add e cp b jr c, .asm_24146 sub e ld c, a ld a, b sub c and a jr z, .asm_24157 cp e jr z, .asm_24159 jr c, .asm_24159 .asm_24157 ld a, $1 .asm_24159 ld [$cfaa], a ld a, [$cfa3] ld e, a ld a, d and a jr z, .asm_24169 cp e jr z, .asm_2416b jr c, .asm_2416b .asm_24169 ld a, $1 .asm_2416b ld [$cfa9], a xor a ld [$cfab], a ld [$cfac], a ld [$cfad], a ret ; 24179 Function24179: ; 24179 xor a ld hl, $cfa5 ld [hli], a ld [hld], a ld a, [$cf91] bit 5, a ret z set 5, [hl] set 4, [hl] ret ; 2418a Function2418a: ; 2418a ld a, [$cf93] or $20 ld [$cfa7], a ret ; 24193 Function24193: ; 24193 ld hl, $cf91 ld a, $1 bit 0, [hl] jr nz, .asm_2419e or $2 .asm_2419e bit 1, [hl] jr z, .asm_241a4 or $4 .asm_241a4 ld [$cfa8], a ret ; 241a8 Function241a8:: ; 241a8 call Function24329 Function241ab:: ; 241ab ld hl, $cfa6 res 7, [hl] ld a, [hBGMapMode] push af call Function24216 pop af ld [hBGMapMode], a ret ; 241ba Function241ba: ; 241ba ld hl, $cfa6 res 7, [hl] ld a, [hBGMapMode] push af call Function2431a call Function24249 jr nc, .asm_241cd call Function24270 .asm_241cd pop af ld [hBGMapMode], a call Function1bdd ld c, a ret ; 241d5 Function241d5: ; 241d5 call Function24329 .asm_241d8 call Function2431a call $402d ; This call jumps to the middle of an instruction. call Function241fa jr nc, .asm_241f9 call Function24270 jr c, .asm_241f9 ld a, [$cfa5] bit 7, a jr nz, .asm_241f9 call Function1bdd ld c, a ld a, [$cfa8] and c jr z, .asm_241d8 .asm_241f9 ret ; 241fa Function241fa: ; 241fa .asm_241fa call Function24259 ret c ld c, $1 ld b, $3 call $462d ; So does this one. ret c callba Function100337 ret c ld a, [$cfa5] bit 7, a jr z, .asm_241fa and a ret ; 24216 Function24216: ; 24216 .asm_24216 call Function2431a call Function24238 call Function24249 jr nc, .asm_24237 call Function24270 jr c, .asm_24237 ld a, [$cfa5] bit 7, a jr nz, .asm_24237 call Function1bdd ld b, a ld a, [$cfa8] and b jr z, .asm_24216 .asm_24237 ret ; 24238 Function24238: ; 24238 ld a, [hOAMUpdate] push af ld a, $1 ld [hOAMUpdate], a call WaitBGMap pop af ld [hOAMUpdate], a xor a ld [hBGMapMode], a ret ; 24249 Function24249: ; 24249 .asm_24249 call RTC call Function24259 ret c ld a, [$cfa5] bit 7, a jr z, .asm_24249 and a ret ; 24259 Function24259: ; 24259 ld a, [$cfa5] bit 6, a jr z, .asm_24266 callab Function8cf62 .asm_24266 call Functiona57 call Function1bdd and a ret z scf ret ; 24270 Function24270: ; 24270 call Function1bdd bit 0, a jp nz, Function24318 bit 1, a jp nz, Function24318 bit 2, a jp nz, Function24318 bit 3, a jp nz, Function24318 bit 4, a jr nz, .asm_242fa bit 5, a jr nz, .asm_242dc bit 6, a jr nz, .asm_242be bit 7, a jr nz, .asm_242a0 and a ret .asm_24299: ; 24299 ld hl, $cfa6 set 7, [hl] scf ret .asm_242a0 ld hl, $cfa9 ld a, [$cfa3] cp [hl] jr z, .asm_242ac inc [hl] xor a ret .asm_242ac ld a, [$cfa5] bit 5, a jr nz, .asm_242ba bit 3, a jp nz, .asm_24299 xor a ret .asm_242ba ld [hl], $1 xor a ret .asm_242be ld hl, $cfa9 ld a, [hl] dec a jr z, .asm_242c8 ld [hl], a xor a ret .asm_242c8 ld a, [$cfa5] bit 5, a jr nz, .asm_242d6 bit 2, a jp nz, .asm_24299 xor a ret .asm_242d6 ld a, [$cfa3] ld [hl], a xor a ret .asm_242dc ld hl, $cfaa ld a, [hl] dec a jr z, .asm_242e6 ld [hl], a xor a ret .asm_242e6 ld a, [$cfa5] bit 4, a jr nz, .asm_242f4 bit 1, a jp nz, .asm_24299 xor a ret .asm_242f4 ld a, [$cfa4] ld [hl], a xor a ret .asm_242fa ld hl, $cfaa ld a, [$cfa4] cp [hl] jr z, .asm_24306 inc [hl] xor a ret .asm_24306 ld a, [$cfa5] bit 4, a jr nz, .asm_24314 bit 0, a jp nz, .asm_24299 xor a ret .asm_24314 ld [hl], $1 xor a ret ; 24318 Function24318: ; 24318 xor a ret ; 2431a Function2431a: ; 2431a ld hl, $cfac ld a, [hli] ld h, [hl] ld l, a ld a, [hl] cp $ed jr nz, Function24329 ld a, [$cfab] ld [hl], a Function24329: ; 24329 ld a, [$cfa1] ld b, a ld a, [$cfa2] ld c, a call GetTileCoord ld a, [$cfa7] swap a and $f ld c, a ld a, [$cfa9] ld b, a xor a dec b jr z, .asm_24348 .asm_24344 add c dec b jr nz, .asm_24344 .asm_24348 ld c, $14 call AddNTimes ld a, [$cfa7] and $f ld c, a ld a, [$cfaa] ld b, a xor a dec b jr z, .asm_2435f .asm_2435b add c dec b jr nz, .asm_2435b .asm_2435f ld c, a add hl, bc ld a, [hl] cp $ed jr z, .asm_2436b ld [$cfab], a ld [hl], $ed .asm_2436b ld a, l ld [$cfac], a ld a, h ld [$cfad], a ret ; 24374 Function24374:: ; 24374 ld a, [rSVBK] push af ld a, $7 ld [rSVBK], a ld hl, $cf71 ld e, [hl] inc hl ld d, [hl] push de ld b, $10 ld hl, $cf81 .asm_24387 ld a, [hli] ld [de], a dec de dec b jr nz, .asm_24387 ld a, [$cf81] bit 6, a jr nz, .asm_24398 bit 7, a jr z, .asm_243ae .asm_24398 ld hl, $cf71 ld a, [hli] ld h, [hl] ld l, a set 0, [hl] call Function1cfd call Function243cd call Function1d19 call Function243cd jr .asm_243b5 .asm_243ae pop hl push hl ld a, [hld] ld l, [hl] ld h, a res 0, [hl] .asm_243b5 pop hl call Function243e7 ld a, h ld [de], a dec de ld a, l ld [de], a dec de ld hl, $cf71 ld [hl], e inc hl ld [hl], d pop af ld [rSVBK], a ld hl, $cf78 inc [hl] ret ; 243cd Function243cd: ; 243cd call Function1c53 inc b inc c call Function243e7 .asm_243d5 push bc push hl .asm_243d7 ld a, [hli] ld [de], a dec de dec c jr nz, .asm_243d7 pop hl ld bc, $0014 add hl, bc pop bc dec b jr nz, .asm_243d5 ret ; 243e7 Function243e7: ; 243e7 ret ; 243e8 Function243e8:: ; 243e8 xor a ld [hBGMapMode], a ld a, [rSVBK] push af ld a, $7 ld [rSVBK], a call Function1c7e ld a, l or h jp z, Function2445d ld a, l ld [$cf71], a ld a, h ld [$cf72], a call Function1c47 ld a, [$cf81] bit 0, a jr z, .asm_24411 ld d, h ld e, l call Function1c23 .asm_24411 call Function1c7e ld a, h or l jr z, .asm_2441b call Function1c47 .asm_2441b pop af ld [rSVBK], a ld hl, $cf78 dec [hl] ret ; 24423 Function24423: ; 24423 ld a, [VramState] bit 0, a ret z xor a call GetSRAMBank ld hl, TileMap ld de, $a000 ld bc, $0168 call CopyBytes call CloseSRAM call Function2173 xor a call GetSRAMBank ld hl, $a000 ld de, TileMap ld bc, $0168 .asm_2444c ld a, [hl] cp $61 jr c, .asm_24452 ld [de], a .asm_24452 inc hl inc de dec bc ld a, c or b jr nz, .asm_2444c call CloseSRAM ret ; 2445d Function2445d: ; 2445d ld hl, UnknownText_0x24468 call PrintText call WaitBGMap .asm_24466 jr .asm_24466 ; 24468 UnknownText_0x24468: ; 24468 text_jump UnknownText_0x1c46b7 db "@" ; 2446d Function2446d:: ; 2446d ld a, [$cf91] ld b, a ld hl, $cfa1 ld a, [$cf82] inc a bit 6, b jr nz, .asm_2447d inc a .asm_2447d ld [hli], a ld a, [$cf83] inc a ld [hli], a ld a, [$cf92] ld [hli], a ld a, $1 ld [hli], a ld [hl], $0 bit 5, b jr z, .asm_24492 set 5, [hl] .asm_24492 ld a, [$cf81] bit 4, a jr z, .asm_2449b set 6, [hl] .asm_2449b inc hl xor a ld [hli], a ld a, $20 ld [hli], a ld a, $1 bit 0, b jr nz, .asm_244a9 add $2 .asm_244a9 ld [hli], a ld a, [$cf88] and a jr z, .asm_244b7 ld c, a ld a, [$cf92] cp c jr nc, .asm_244b9 .asm_244b7 ld c, $1 .asm_244b9 ld [hl], c inc hl ld a, $1 ld [hli], a xor a ld [hli], a ld [hli], a ld [hli], a ret ; 244c3 Function244c3: ; 0x244c3 ld a, [MenuSelection] ld [CurSpecies], a hlcoord 0, 12 ld b, $4 ld c, $12 call TextBox ld a, [MenuSelection] cp $ff ret z ld de, $c5b9 callba GetItemDescription ret ; 0x244e3 Function244e3:: ; 244e3 ld hl, $4547 call Function1d3c call Function1cbb call Function1ad2 call Function321c ld b, $12 call GetSGBLayout xor a ld [hBGMapMode], a ld a, [CurPartySpecies] ld [CurSpecies], a call GetBaseData ld de, VTiles1 ld a, $3c call Predef ld a, [$cf82] inc a ld b, a ld a, [$cf83] inc a ld c, a call GetTileCoord ld a, $80 ld [$ffad], a ld bc, $0707 ld a, $13 call Predef call WaitBGMap ret ; 24528 Function24528:: ; 24528 ld hl, MenuDataHeader_0x24547 call Function1d3c call Function1ce1 call WaitBGMap call ClearSGB xor a ld [hBGMapMode], a call Function2173 call Function321c call Function1ad2 call Functione51 ret ; 24547 MenuDataHeader_0x24547: ; 0x24547 db $40 ; flags db 04, 06 ; start coords db 13, 14 ; end coords dw NULL db 1 ; default option ; 0x2454f Function2454f: ; 2454f ld hl, $d81e xor a ld bc, $10 call ByteFill nop ld bc, MapObjects ; $d71e ld de, $d81e xor a .asm_24561 push af push bc push de call Function245a7 jr c, .asm_2456c call Function2457d .asm_2456c pop de ld [de], a inc de pop bc ld hl, $10 add hl, bc ld b, h ld c, l pop af inc a cp $10 jr nz, .asm_24561 ret ; known jump sources: 24569 (9:4569) Function2457d: ; 2457d (9:457d) ld hl, $1 add hl, bc ld a, [hl] and a jr z, .asm_245a3 ld hl, $c add hl, bc ld a, [hli] ld e, a ld a, [hl] ld d, a cp $ff jr nz, .asm_24598 ld a, e cp $ff jr z, .asm_245a1 jr .asm_245a3 .asm_24598 ld b, $2 call EventFlagAction ld a, c and a jr nz, .asm_245a3 .asm_245a1 xor a ret .asm_245a3 ld a, $ff scf ret ; known jump sources: 24564 (9:4564) Function245a7: ; 245a7 (9:45a7) call Function18f5 ld a, $ff ret c xor a ret Function245af:: ; 245af xor a ld [$cf73], a ld [hBGMapMode], a inc a ld [$ffaa], a call Function2471a call Function24764 call Function247dd call Function245f1 call Function321c xor a ld [hBGMapMode], a ret ; 245cb Function245cb:: ; 245cb .asm_245cb call Function24609 jp c, Function245d6 call z, Function245e1 jr .asm_245cb ; 245d6 Function245d6: ; 245d6 call Function1ff8 ld [$cf73], a ld a, $0 ld [$ffaa], a ret ; 245e1 Function245e1: ; 245e1 call Function245f1 ld a, $1 ld [hBGMapMode], a ld c, $3 call DelayFrames xor a ld [hBGMapMode], a ret ; 245f1 Function245f1: ; 245f1 xor a ld [hBGMapMode], a ld hl, Options ld a, [hl] push af set 4, [hl] call Function247f0 call Function2488b call Function248b8 pop af ld [Options], a ret ; 24609 Function24609: ; 24609 .asm_24609 call Function1bd3 ld a, [$ffa9] and $f0 ld b, a ld a, [hJoyPressed] and $f or b bit 0, a jp nz, Function24644 bit 1, a jp nz, Function2466f bit 2, a jp nz, Function24673 bit 3, a jp nz, Function24695 bit 4, a jp nz, Function246b5 bit 5, a jp nz, Function246a1 bit 6, a jp nz, Function246c9 bit 7, a jp nz, Function246df jr .asm_24609 ; 24640 Function24640: ; 24640 ld a, $ff and a ret ; 24644 Function24644: ; 24644 call Function1bee ld a, [$cfa9] dec a call Function248d5 ld a, [MenuSelection] ld [CurItem], a ld a, [$cf75] ld [$d10d], a call Function246fc dec a ld [$cf77], a ld [$d107], a ld a, [MenuSelection] cp $ff jr z, Function2466f ld a, $1 scf ret ; 2466f Function2466f: ; 2466f ld a, $2 scf ret ; 24673 Function24673: ; 24673 ld a, [$cf91] bit 7, a jp z, Function2ec8 ld a, [$cfa9] dec a call Function248d5 ld a, [MenuSelection] cp $ff jp z, Function2ec8 call Function246fc dec a ld [$cf77], a ld a, $4 scf ret ; 24695 Function24695: ; 24695 ld a, [$cf91] bit 6, a jp z, Function2ec8 ld a, $8 scf ret ; 246a1 Function246a1: ; 246a1 ld hl, $cfa6 bit 7, [hl] jp z, Function2ec8 ld a, [$cf91] bit 3, a jp z, Function2ec8 ld a, $20 scf ret ; 246b5 Function246b5: ; 246b5 ld hl, $cfa6 bit 7, [hl] jp z, Function2ec8 ld a, [$cf91] bit 2, a jp z, Function2ec8 ld a, $10 scf ret ; 246c9 Function246c9: ; 246c9 ld hl, $cfa6 bit 7, [hl] jp z, Function2ec6 ld hl, $d0e4 ld a, [hl] and a jr z, .asm_246dc dec [hl] jp Function2ec6 .asm_246dc jp Function2ec8 ; 246df Function246df: ; 246df ld hl, $cfa6 bit 7, [hl] jp z, Function2ec6 ld hl, $d0e4 ld a, [$cf92] add [hl] ld b, a ld a, [$d144] cp b jr c, .asm_246f9 inc [hl] jp Function2ec6 .asm_246f9 jp Function2ec8 ; 246fc Function246fc: ; 246fc ld a, [$d0e4] ld c, a ld a, [$cfa9] add c ld c, a ret ; 24706 Function24706: ; 24706 (9:4706) call Function1cfd ld de, $14 add hl, de ld de, $28 ld a, [$cf92] .asm_24713 ld [hl], $7f add hl, de dec a jr nz, .asm_24713 ret Function2471a: ; 2471a ld hl, $cf96 ld a, [hli] ld h, [hl] ld l, a ld a, [$cf95] call GetFarByte ld [$d144], a ld a, [$cf92] ld c, a ld a, [$d0e4] add c ld c, a ld a, [$d144] inc a cp c jr nc, .asm_24748 ld a, [$cf92] ld c, a ld a, [$d144] inc a sub c jr nc, .asm_24745 xor a .asm_24745 ld [$d0e4], a .asm_24748 ld a, [$d0e4] ld c, a ld a, [$cf88] add c ld b, a ld a, [$d144] inc a cp b jr c, .asm_2475a jr nc, .asm_24763 .asm_2475a xor a ld [$d0e4], a ld a, $1 ld [$cf88], a .asm_24763 ret ; 24764 Function24764: ; 24764 ld a, [$cf91] ld c, a ld a, [$d144] ld b, a ld a, [$cf82] add $1 ld [$cfa1], a ld a, [$cf83] add $0 ld [$cfa2], a ld a, [$cf92] cp b jr c, .asm_24786 jr z, .asm_24786 ld a, b inc a .asm_24786 ld [$cfa3], a ld a, $1 ld [$cfa4], a ld a, $8c bit 2, c jr z, .asm_24796 set 0, a .asm_24796 bit 3, c jr z, .asm_2479c set 1, a .asm_2479c ld [$cfa5], a xor a ld [$cfa6], a ld a, $20 ld [$cfa7], a ld a, $c3 bit 7, c jr z, .asm_247b0 add $4 .asm_247b0 bit 6, c jr z, .asm_247b6 add $8 .asm_247b6 ld [$cfa8], a ld a, [$cfa3] ld b, a ld a, [$cf88] and a jr z, .asm_247c8 cp b jr z, .asm_247ca jr c, .asm_247ca .asm_247c8 ld a, $1 .asm_247ca ld [$cfa9], a ld a, $1 ld [$cfaa], a xor a ld [$cfac], a ld [$cfad], a ld [$cfab], a ret ; 247dd Function247dd: ; 247dd ld a, [$d144] ld c, a ld a, [$d0e3] and a jr z, .asm_247ef dec a cp c jr c, .asm_247ef xor a ld [$d0e3], a .asm_247ef ret ; 247f0 Function247f0: ; 247f0 call Function1cf1 ld a, [$cf91] bit 4, a jr z, .asm_2480d ld a, [$d0e4] and a jr z, .asm_2480d ld a, [$cf82] ld b, a ld a, [$cf85] ld c, a call GetTileCoord ld [hl], $61 .asm_2480d call Function1cfd ld bc, $0015 add hl, bc ld a, [$cf92] ld b, a ld c, $0 .asm_2481a ld a, [$d0e4] add c ld [$cf77], a ld a, c call Function248d5 ld a, [MenuSelection] cp $ff jr z, .asm_24851 push bc push hl call Function2486e pop hl ld bc, $0028 add hl, bc pop bc inc c ld a, c cp b jr nz, .asm_2481a ld a, [$cf91] bit 4, a jr z, .asm_24850 ld a, [$cf84] ld b, a ld a, [$cf85] ld c, a call GetTileCoord ld [hl], $ee .asm_24850 ret .asm_24851 ld a, [$cf91] bit 0, a jr nz, .asm_24866 ld de, .string_2485f call PlaceString ret .string_2485f db "CANCEL@" .asm_24866 ld d, h ld e, l ld hl, $cf98 jp CallPointerAt ; 2486e Function2486e: ; 2486e push hl ld d, h ld e, l ld hl, $cf98 call CallPointerAt pop hl ld a, [$cf93] and a jr z, .asm_2488a ld e, a ld d, $0 add hl, de ld d, h ld e, l ld hl, $cf9b call CallPointerAt .asm_2488a ret ; 2488b Function2488b: ; 2488b ld a, [$d0e3] and a jr z, .asm_248b7 ld b, a ld a, [$d0e4] cp b jr nc, .asm_248b7 ld c, a ld a, [$cf92] add c cp b jr c, .asm_248b7 ld a, b sub c dec a add a add $1 ld c, a ld a, [$cf82] add c ld b, a ld a, [$cf83] add $0 ld c, a call GetTileCoord ld [hl], $ec .asm_248b7 ret ; 248b8 Function248b8: ; 248b8 ld a, [$cf91] bit 5, a ret z bit 1, a jr z, .asm_248c7 ld a, [$d0e3] and a ret nz .asm_248c7 ld a, [$cfa9] dec a call Function248d5 ld hl, $cf9e call CallPointerAt ret ; 248d5 Function248d5: ; 248d5 push de push hl ld e, a ld a, [$d0e4] add e ld e, a ld d, $0 ld hl, $cf96 ld a, [hli] ld h, [hl] ld l, a inc hl ld a, [$cf94] cp $1 jr z, .asm_248f2 cp $2 jr z, .asm_248f1 .asm_248f1 add hl, de .asm_248f2 add hl, de ld a, [$cf95] call GetFarByte ld [MenuSelection], a ld [CurItem], a inc hl ld a, [$cf95] call GetFarByte ld [$cf75], a pop hl pop de ret ; 2490c ; no known jump sources Function2490c: ; 2490c (9:490c) ld a, [$d0e3] and a jr z, .asm_2493d ld b, a ld a, [$cf77] inc a cp b jr z, .asm_24945 ld a, [$cf77] call Function24a5c ld a, [hl] cp $ff ret z ld a, [$d0e3] dec a ld [$d0e3], a call Function249a7 jp c, Function249d1 ld a, [$cf77] ld c, a ld a, [$d0e3] cp c jr c, .asm_2497a jr .asm_2494a .asm_2493d ld a, [$cf77] inc a ld [$d0e3], a ret .asm_24945 xor a ld [$d0e3], a ret .asm_2494a ld a, [$d0e3] call Function24a40 ld a, [$cf77] ld d, a ld a, [$d0e3] ld e, a call Function24a6c push bc ld a, [$d0e3] call Function24a5c dec hl push hl call Function24a80 add hl, bc ld d, h ld e, l pop hl pop bc call Function24aab ld a, [$cf77] call Function24a4d xor a ld [$d0e3], a ret .asm_2497a ld a, [$d0e3] call Function24a40 ld a, [$cf77] ld d, a ld a, [$d0e3] ld e, a call Function24a6c push bc ld a, [$d0e3] call Function24a5c ld d, h ld e, l call Function24a80 add hl, bc pop bc call CopyBytes ld a, [$cf77] call Function24a4d xor a ld [$d0e3], a ret ; known jump sources: 2492b (9:492b) Function249a7: ; 249a7 (9:49a7) ld a, [$d0e3] call Function24a5c ld d, h ld e, l ld a, [$cf77] call Function24a5c ld a, [de] cp [hl] jr nz, .asm_249cd ld a, [$cf77] call Function24a97 cp $63 jr z, .asm_249cd ld a, [$d0e3] call Function24a97 cp $63 jr nz, .asm_249cf .asm_249cd and a ret .asm_249cf scf ret ; known jump sources: 2492e (9:492e) Function249d1: ; 249d1 (9:49d1) ld a, [$d0e3] call Function24a5c inc hl push hl ld a, [$cf77] call Function24a5c inc hl ld a, [hl] pop hl add [hl] cp $64 jr c, .asm_24a01 sub $63 push af ld a, [$cf77] call Function24a5c inc hl ld [hl], $63 ld a, [$d0e3] call Function24a5c inc hl pop af ld [hl], a xor a ld [$d0e3], a ret .asm_24a01 push af ld a, [$cf77] call Function24a5c inc hl pop af ld [hl], a ld hl, $cf96 ld a, [hli] ld h, [hl] ld l, a ld a, [$d0e3] cp [hl] jr nz, .asm_24a25 dec [hl] ld a, [$d0e3] call Function24a5c ld [hl], $ff xor a ld [$d0e3], a ret .asm_24a25 dec [hl] call Function24a80 push bc ld a, [$d0e3] call Function24a5c pop bc push hl add hl, bc pop de .asm_24a34 ld a, [hli] ld [de], a inc de cp $ff jr nz, .asm_24a34 xor a ld [$d0e3], a ret ; known jump sources: 2494d (9:494d), 2497d (9:497d) Function24a40: ; 24a40 (9:4a40) call Function24a5c ld de, DefaultFlypoint ; $d002 call Function24a80 call CopyBytes ret ; known jump sources: 24972 (9:4972), 2499f (9:499f) Function24a4d: ; 24a4d (9:4a4d) call Function24a5c ld d, h ld e, l ld hl, DefaultFlypoint ; $d002 call Function24a80 call CopyBytes ret ; known jump sources: 2491d (9:491d), 2495f (9:495f), 2498f (9:498f), 249aa (9:49aa), 249b2 (9:49b2), 249d4 (9:49d4), 249dc (9:49dc), 249ed (9:49ed), 249f6 (9:49f6), 24a05 (9:4a05), 24a1b (9:4a1b), 24a2d (9:4a2d), 24a40 (9:4a40), 24a4d (9:4a4d), 24aa1 (9:4aa1) Function24a5c: ; 24a5c (9:4a5c) push af call Function24a80 ld hl, $cf96 ld a, [hli] ld h, [hl] ld l, a inc hl pop af call AddNTimes ret ; known jump sources: 24958 (9:4958), 24988 (9:4988) Function24a6c: ; 24a6c (9:4a6c) push hl call Function24a80 ld a, d sub e jr nc, .asm_24a76 dec a cpl .asm_24a76 ld hl, $0 call AddNTimes ld b, h ld c, l pop hl ret ; known jump sources: 24964 (9:4964), 24994 (9:4994), 24a26 (9:4a26), 24a46 (9:4a46), 24a55 (9:4a55), 24a5d (9:4a5d), 24a6d (9:4a6d), 24a98 (9:4a98) Function24a80: ; 24a80 (9:4a80) push hl ld a, [$cf94] ld c, a ld b, 0 ld hl, Unknown_24a91 add hl, bc add hl, bc ld c, [hl] inc hl ld b, [hl] pop hl ret ; 24a91 (9:4a91) Unknown_24a91: ; 24a91 dw 0, 1, 2 ; 24a97 ; known jump sources: 249bc (9:49bc), 249c6 (9:49c6) Function24a97: ; 24a97 (9:4a97) push af call Function24a80 ld a, c cp $2 jr nz, .asm_24aa7 pop af call Function24a5c inc hl ld a, [hl] ret .asm_24aa7 pop af ld a, $1 ret ; known jump sources: 2496c (9:496c), 24ab1 (9:4ab1) Function24aab: ; 24aab (9:4aab) ld a, [hld] ld [de], a dec de dec bc ld a, b or c jr nz, Function24aab ret Function24ab4: ; 0x24ab4 push de ld a, [MenuSelection] ld [$d265], a call GetItemName pop hl call PlaceString ret ; 0x24ac3 Function24ac3: ; 0x24ac3 push de ld a, [MenuSelection] ld [CurItem], a callba _CheckTossableItem ld a, [$d142] pop hl and a jr nz, .done ld de, $0015 add hl, de ld [hl], $f1 inc hl ld de, $cf75 ld bc, $0102 call PrintNum .done ret ; 0x24ae8 Function24ae8: ; 24ae8 ld hl, MenuDataHeader_0x24b15 call Function1d3c jr Function24b01 Function24af0: ; 24af0 ld hl, MenuDataHeader_0x24b1d call Function1d3c jr Function24b01 Function24af8: ; 24af8 ld hl, MenuDataHeader_0x24b15 ld de, $000b call Function1e2e Function24b01: ; 24b01 call Function1cbb call Function1cfd ld de, $0015 add hl, de ld de, Money ld bc, $2306 call PrintNum ret ; 24b15 MenuDataHeader_0x24b15: ; 0x24b15 db $40 ; flags db 00, 11 ; start coords db 02, 19 ; end coords dw NULL db 1 ; default option ; 0x24b1d MenuDataHeader_0x24b1d: ; 0x24b1d db $40 ; flags db 11, 00 ; start coords db 13, 08 ; end coords dw NULL db 1 ; default option ; 0x24b25 Function24b25: ; 24b25 ld hl, $c4ab ld b, $1 ld c, $7 call TextBox ld hl, $c4ac ld de, CoinString call PlaceString ld hl, $c4c5 ld de, String24b8e call PlaceString ld de, Coins ld bc, $0204 ld hl, $c4c1 call PrintNum ret ; 24b4e Function24b4e: ; 24b4e ld hl, $c4a5 ld b, $3 ld c, $d call TextBox ld hl, $c4ba ld de, MoneyString call PlaceString ld hl, $c4c0 ld de, Money ld bc, $2306 call PrintNum ld hl, $c4e2 ld de, CoinString call PlaceString ld hl, $c4eb ld de, Coins ld bc, $0204 call PrintNum ret ; 24b83 MoneyString: ; 24b83 db "MONEY@" CoinString: ; 24b89 db "COIN@" String24b8e: ; 24b8e db "@" ; 24b8f Function24b8f: ; 24b8f ld hl, Options ld a, [hl] push af set 4, [hl] ld hl, TileMap ld b, $3 ld c, $7 call TextBox ld hl, $c4b5 ld de, $dc7a ld bc, $0203 call PrintNum ld hl, $c4b8 ld de, String24bcf call PlaceString ld hl, $c4dd ld de, String24bd4 call PlaceString ld hl, $c4e1 ld de, $dc79 ld bc, $0102 call PrintNum pop af ld [Options], a ret ; 24bcf String24bcf: ; 24bcf db "/500@" String24bd4: ; 24bd4 db "ボール こ@" ; 24bdc Function24bdc: ; 24bdc ld hl, TileMap ld b, $5 ld c, $11 call TextBox ret ; 24be7 Function24be7: ; 24be7 ld hl, Options ld a, [hl] push af set 4, [hl] call Function24bdc ld hl, $c505 ld de, String24c52 call PlaceString ld hl, $c50c ld de, $dc79 ld bc, $4102 call PrintNum ld hl, $c4b5 ld de, String24c4b call PlaceString ld a, [$df9c] and a ld de, String24c59 jr z, .asm_24c1e ld [$d265], a call GetPokemonName .asm_24c1e ld hl, $c4bc call PlaceString ld a, [$df9c] and a jr z, .asm_24c3e ld hl, $c4dd ld de, String24c5e call PlaceString ld a, [$dfbb] ld h, b ld l, c inc hl ld c, $3 call Function3842 .asm_24c3e pop af ld [Options], a ret ; 24c43 String24c43: ; 24c43 db "ボール こ@" String24c4b: ; 24c4b db "CAUGHT@" String24c52: ; 24c52 db "BALLS:@" String24c59: ; 24c59 db "None@" String24c5e: ; 24c5e db "LEVEL@" ; 24c64 Function24c64: ; 24c64 ld hl, Buffer1 xor a ld [hli], a dec a ld bc, $000a call ByteFill ld hl, ApricornBalls .asm_24c73 ld a, [hl] cp $ff jr z, .asm_24c8d push hl ld [CurItem], a ld hl, NumItems call CheckItem pop hl jr nc, .asm_24c89 ld a, [hl] call Function24c94 .asm_24c89 inc hl inc hl jr .asm_24c73 .asm_24c8d ld a, [Buffer1] and a ret nz scf ret ; 24c94 Function24c94: ; 24c94 push hl ld hl, Buffer1 inc [hl] ld e, [hl] ld d, 0 add hl, de ld [hl], a pop hl ret ; 24ca0 ApricornBalls: ; 24ca0 db RED_APRICORN, LEVEL_BALL db BLU_APRICORN, LURE_BALL db YLW_APRICORN, MOON_BALL db GRN_APRICORN, FRIEND_BALL db WHT_APRICORN, FAST_BALL db BLK_APRICORN, HEAVY_BALL db PNK_APRICORN, LOVE_BALL db $ff ; 24caf MonMenuOptionStrings: ; 24caf db "STATS@" db "SWITCH@" db "ITEM@" db "CANCEL@" db "MOVE@" db "MAIL@" db "ERROR!@" ; 24cd9 MonMenuOptions: ; 24cd9 ; Moves db 0, 1, CUT db 0, 2, FLY db 0, 3, SURF db 0, 4, STRENGTH db 0, 6, FLASH db 0, 5, WATERFALL db 0, 7, WHIRLPOOL db 0, 8, DIG db 0, 9, TELEPORT db 0, 10, SOFTBOILED db 0, 11, HEADBUTT db 0, 12, ROCK_SMASH db 0, 13, MILK_DRINK db 0, 14, SWEET_SCENT ; Options db 1, 15, 1 ; STATS db 1, 16, 2 ; SWITCH db 1, 17, 3 ; ITEM db 1, 18, 4 ; CANCEL db 1, 19, 5 ; MOVE db 1, 20, 6 ; MAIL db 1, 21, 7 ; ERROR! db $ff ; 24d19 Function24d19: ; 24d19 xor a ld [hBGMapMode], a call Function24dd4 callba Function8ea4a ld hl, MenuDataHeader_0x24d3f call LoadMenuDataHeader call Function24d47 call Function24d91 ld a, 1 ld [hBGMapMode], a call Function24d59 ld [MenuSelection], a call Function1c07 ret ; 24d3f MenuDataHeader_0x24d3f: ; 24d3f db $40 ; tile backup db 00, 06 ; start coords db 17, 19 ; end coords dw $0000 db 1 ; default option ; 24d47 Function24d47: ; 24d47 ld a, [Buffer1] inc a add a ld b, a ld a, [$cf84] sub b inc a ld [$cf82], a call Function1cbb ret ; 24d59 Function24d59: ; 24d59 .asm_24d59 ld a, $a0 ld [$cf91], a ld a, [Buffer1] ld [$cf92], a call Function1c10 ld hl, $cfa5 set 6, [hl] call Function1bc9 ld de, SFX_READ_TEXT_2 call PlaySFX ld a, [hJoyPressed] bit 0, a ; A jr nz, .asm_24d84 bit 1, a ; B jr nz, .asm_24d81 jr .asm_24d59 .asm_24d81 ld a, 18 ; CANCEL ret .asm_24d84 ld a, [$cfa9] dec a ld c, a ld b, 0 ld hl, Buffer2 add hl, bc ld a, [hl] ret ; 24d91 Function24d91: ; 24d91 call Function1cfd ld bc, $002a add hl, bc ld de, Buffer2 .asm_24d9b ld a, [de] inc de cp $ff ret z push de push hl call Function24db0 pop hl call PlaceString ld bc, $0028 add hl, bc pop de jr .asm_24d9b ; 24db0 Function24db0: ; 24db0 ld hl, MonMenuOptions + 1 ld de, $0003 call IsInArray dec hl ld a, [hli] cp $1 jr z, .asm_24dc8 inc hl ld a, [hl] ld [$d265], a call GetMoveName ret .asm_24dc8 inc hl ld a, [hl] dec a ld hl, MonMenuOptionStrings call GetNthString ld d, h ld e, l ret ; 24dd4 Function24dd4: ; 24dd4 call Function24e68 ld a, [CurPartySpecies] cp EGG jr z, .asm_24e3f ld a, [InLinkBattle] and a jr nz, .asm_24e03 ld a, $2 call GetPartyParamLocation ld d, h ld e, l ld c, $4 .asm_24ded push bc push de ld a, [de] and a jr z, .asm_24dfd push hl call Function24e52 pop hl jr nc, .asm_24dfd call Function24e83 .asm_24dfd pop de inc de pop bc dec c jr nz, .asm_24ded .asm_24e03 ld a, $f call Function24e83 ld a, $10 call Function24e83 ld a, $13 call Function24e83 ld a, [InLinkBattle] and a jr nz, .asm_24e2f push hl ld a, $1 call GetPartyParamLocation ld d, [hl] callba ItemIsMail pop hl ld a, $14 jr c, .asm_24e2c ld a, $11 .asm_24e2c call Function24e83 .asm_24e2f ld a, [Buffer1] cp $8 jr z, .asm_24e3b ld a, $12 call Function24e83 .asm_24e3b call Function24e76 ret .asm_24e3f ld a, $f call Function24e83 ld a, $10 call Function24e83 ld a, $12 call Function24e83 call Function24e76 ret ; 24e52 Function24e52: ; 24e52 ld b, a ld hl, MonMenuOptions .asm_24e56 ld a, [hli] cp $ff jr z, .asm_24e67 cp $1 jr z, .asm_24e67 ld d, [hl] inc hl ld a, [hli] cp b jr nz, .asm_24e56 ld a, d scf .asm_24e67 ret ; 24e68 Function24e68: ; 24e68 xor a ld [Buffer1], a ld hl, Buffer2 ld bc, $0009 call ByteFill ret ; 24e76 Function24e76: ; 24e76 ld a, [Buffer1] ld e, a ld d, $0 ld hl, Buffer2 add hl, de ld [hl], $ff ret ; 24e83 Function24e83: ; 24e83 push hl push de push af ld a, [Buffer1] ld e, a inc a ld [Buffer1], a ld d, $0 ld hl, Buffer2 add hl, de pop af ld [hl], a pop de pop hl ret ; 24e99 Function24e99: ; 24e99 ; BattleMonMenu ld hl, MenuDataHeader_0x24ed4 call Function1d3c xor a ld [hBGMapMode], a call Function1cbb call Function1ad2 call Function1c89 call WaitBGMap call Function1c66 ld a, [$cf91] bit 7, a jr z, .asm_24ed0 call Function1c10 ld hl, $cfa5 set 6, [hl] call Function1bc9 ld de, SFX_READ_TEXT_2 call PlaySFX ld a, [hJoyPressed] bit 1, a jr z, .asm_24ed2 ret z .asm_24ed0 scf ret .asm_24ed2 and a ret ; 24ed4 MenuDataHeader_0x24ed4: ; 24ed4 db $00 ; flags db 11, 11 ; start coords db 17, 19 ; end coords dw MenuData2_0x24edc db 1 ; default option ; 24edc MenuData2_0x24edc: ; 24edc db $c0 ; flags db 3 ; items db "SWITCH@" db "STATS@" db "CANCEL@" ; 24ef2 LoadBattleMenuDataHeader: ; 24ef2 ld hl, BattleMenuDataHeader call LoadMenuDataHeader ld a, [$d0d2] ld [$cf88], a call Function2039 ld a, [$cf88] ld [$d0d2], a call Function1c07 ret ; 24f0b Function24f0b: ; 24f0b ; Safari battle menu (untranslated). ld hl, MenuDataHeader_0x24f4e call LoadMenuDataHeader jr Function24f19 ; 24f13 Function24f13: ; 24f13 ; Park battle menu. ld hl, MenuDataHeader_0x24f89 call LoadMenuDataHeader ; 24f19 Function24f19: ; 24f19 ld a, [$d0d2] ld [$cf88], a call Function202a ld a, [$cf88] ld [$d0d2], a call Function1c07 ret ; 24f2c BattleMenuDataHeader: ; 24f2c db $40 ; flags db 12, 08 ; start coords db 17, 19 ; end coords dw MenuData_0x24f34 db 1 ; default option ; 24f34 MenuData_0x24f34: ; 0x24f34 db $81 ; flags dn 2, 2 ; rows, columns db 6 ; spacing dbw BANK(Strings24f3d), Strings24f3d dbw $09, $0000 ; 0x24f3d Strings24f3d: ; 0x24f3d db "FIGHT@" db $4a, "@" db "PACK@" db "RUN@" ; 24f4e MenuDataHeader_0x24f4e: ; 24f4e db $40 ; flags db 12, 00 ; start coords db 17, 19 ; end coords dw MenuData_0x24f56 db 1 ; default option ; 24f56 MenuData_0x24f56: ; 24f56 db $81 ; flags dn 2, 2 ; rows, columns db 11 ; spacing dbw BANK(Strings24f5f), Strings24f5f dbw BANK(Function24f7c), Function24f7c ; 24f5f Strings24f5f: ; 24f5f db "サファりボール× @" ; "SAFARI BALL× @" db "エサをなげる@" ; "THROW BAIT" db "いしをなげる@" ; "THROW ROCK" db "にげる@" ; "RUN" ; 24f7c Function24f7c: ; 24f7c ld hl, $c5b5 ld de, $dc79 ld bc, $8102 call PrintNum ret ; 24f89 MenuDataHeader_0x24f89: ; 24f89 db $40 ; flags db 12, 02 ; start coords db 17, 19 ; end coords dw MenuData_0x24f91 db 1 ; default option ; 24f91 MenuData_0x24f91: ; 24f91 db $81 ; flags dn 2, 2 ; rows, columns db 12 ; spacing dbw BANK(Strings24f9a), Strings24f9a dbw BANK(Function24fb2), Function24fb2 ; 24f9a Strings24f9a: ; 24f9a db "FIGHT@" db $4a, "@" db "PARKBALL× @" db "RUN@" ; 24fb2 Function24fb2: ; 24fb2 ld hl, $c5ed ld de, $dc79 ld bc, $8102 call PrintNum ret ; 24fbf Function24fbf: ; 24fbf ld hl, MenuDataHeader_0x250ed call LoadMenuDataHeader call Function24ff9 ret ; 24fc9 Function24fc9: ; 24fc9 callba GetItemPrice Function24fcf: ; 24fcf ld a, d ld [Buffer1], a ld a, e ld [Buffer2], a ld hl, MenuDataHeader_0x250f5 call LoadMenuDataHeader call Function24ff9 ret ; 24fe1 Function24fe1: ; 24fe1 callba GetItemPrice ld a, d ld [Buffer1], a ld a, e ld [Buffer2], a ld hl, MenuDataHeader_0x250fd call LoadMenuDataHeader call Function24ff9 ret ; 24ff9 Function24ff9: ; 24ff9 ld a, $1 ld [$d10c], a .asm_24ffe call Function25072 call Function2500e jr nc, .asm_24ffe cp $ff jr nz, .asm_2500c scf ret .asm_2500c and a ret ; 2500e Function2500e: ; 2500e call Function354b bit 1, c jr nz, .asm_2502b bit 0, c jr nz, .asm_2502f bit 7, c jr nz, .asm_25033 bit 6, c jr nz, .asm_2503f bit 5, c jr nz, .asm_2504d bit 4, c jr nz, .asm_2505f and a ret .asm_2502b ld a, $ff scf ret .asm_2502f ld a, $0 scf ret .asm_25033 ld hl, $d10c dec [hl] jr nz, .asm_2503d ld a, [$d10d] ld [hl], a .asm_2503d and a ret .asm_2503f ld hl, $d10c inc [hl] ld a, [$d10d] cp [hl] jr nc, .asm_2504b ld [hl], $1 .asm_2504b and a ret .asm_2504d ld a, [$d10c] sub $a jr c, .asm_25058 jr z, .asm_25058 jr .asm_2505a .asm_25058 ld a, $1 .asm_2505a ld [$d10c], a and a ret .asm_2505f ld a, [$d10c] add $a ld b, a ld a, [$d10d] cp b jr nc, .asm_2506c ld b, a .asm_2506c ld a, b ld [$d10c], a and a ret ; 25072 Function25072: ; 25072 call Function1cbb call Function1cfd ld de, $0015 add hl, de ld [hl], $f1 inc hl ld de, $d10c ld bc, $8102 call PrintNum ld a, [$cf86] ld e, a ld a, [$cf87] ld d, a ld a, [$cf8a] call FarCall_de ret ; 25097 Function25097: ; 25097 ret ; 25098 Function25098: ; 25098 call Function250a9 call Function250d1 ret ; 2509f Function2509f: ; 2509f call Function250a9 call Function250c1 call Function250d1 ret ; 250a9 Function250a9: ; 250a9 xor a ld [hMultiplicand], a ld a, [Buffer1] ld [$ffb5], a ld a, [Buffer2] ld [$ffb6], a ld a, [$d10c] ld [hMultiplier], a push hl call Multiply pop hl ret ; 250c1 Function250c1: ; 250c1 push hl ld hl, hMultiplicand ld a, [hl] srl a ld [hli], a ld a, [hl] rra ld [hli], a ld a, [hl] rra ld [hl], a pop hl ret ; 250d1 Function250d1: ; 250d1 push hl ld hl, $ffc3 ld a, [hMultiplicand] ld [hli], a ld a, [$ffb5] ld [hli], a ld a, [$ffb6] ld [hl], a pop hl inc hl ld de, $ffc3 ld bc, $2306 call PrintNum call WaitBGMap ret ; 250ed MenuDataHeader_0x250ed: ; 0x250ed db $40 ; flags db 09, 15 ; start coords db 11, 19 ; end coords dw Function25097 db 0 ; default option ; 0x250f5 MenuDataHeader_0x250f5: ; 0x250f5 db $40 ; flags db 15, 07 ; start coords db 17, 19 ; end coords dw Function25098 db -1 ; default option ; 0x250fd MenuDataHeader_0x250fd: ; 0x250fd db $40 ; flags db 15, 07 ; start coords db 17, 19 ; end coords dw Function2509f db 0 ; default option ; 0x25105 Function25105: ; 25105 ld a, [VramState] ; $d0ed push af xor a ld [VramState], a ; $d0ed ld hl, Options ; $cfcc ld a, [hl] push af set 4, [hl] call Function2513b .asm_25117 call UpdateTime call Functiona57 ld a, [$cf63] bit 7, a jr nz, .asm_25132 ld a, [$FF00+$a9] and $2 jr nz, .asm_25132 call Function2518e call DelayFrame jr .asm_25117 .asm_25132 pop af ld [Options], a ; $cfcc pop af ld [VramState], a ; $d0ed ret ; known jump sources: 25114 (9:5114) Function2513b: ; 2513b (9:513b) call WhiteBGMap call ClearSprites call ClearTileMap call DisableLCD callba Function8833e ld hl, CardRightCornerGFX ld de, $91c0 ld bc, $10 ld a, BANK(CardRightCornerGFX) call FarCopyBytes ld hl, CardStatusGFX ld de, $9290 ld bc, $60 + $500 ld a, BANK(CardStatusGFX) call FarCopyBytes call Function25299 ld hl, $c540 ld d, $6 call Function253b0 call EnableLCD call WaitBGMap ld b, $15 call GetSGBLayout call Function32f9 call WaitBGMap ld hl, $cf63 xor a ld [hli], a ld [hli], a ld [hli], a ld [hl], a ret ; known jump sources: 2512a (9:512a) Function2518e: ; 2518e (9:518e) ld a, [$cf63] ld e, a ld d, $0 ld hl, Jumptable_2519d add hl, de add hl, de ld a, [hli] ld h, [hl] ld l, a jp [hl] ; no known jump sources Jumptable_2519d: ; 2519d (9:519d) dw Function251b6 dw Function251d7 dw Function251f4 dw Function25221 dw Function2524c dw Function25279 dw Function251b0 ; known jump sources: 251d3 (9:51d3), 2521d (9:521d), 25275 (9:5275) Function251ab: ; 251ab (9:51ab) ld hl, $cf63 inc [hl] ret ; no known jump sources Function251b0: ; 251b0 (9:51b0) ld hl, $cf63 set 7, [hl] ret ; no known jump sources Function251b6: ; 251b6 (9:51b6) call ClearSprites ld hl, $c540 ld d, $6 call Function253b0 call WaitBGMap ld de, CardStatusGFX ld hl, $9290 lb bc, BANK(CardStatusGFX), $6 + $50 call Request2bpp call Function2530a call Function251ab ret ; no known jump sources Function251d7: ; 251d7 (9:51d7) call Function25415 ld hl, $ffa9 ld a, [hl] and $11 jr nz, .asm_251e3 ret .asm_251e3 ld a, $2 ld [$cf63], a ret ; 251e9 (9:51e9) Function251e9: ; 251e9 ld a, [KantoBadges] and a ret z ld a, $4 ld [$cf63], a ret ; 251f4 ; no known jump sources Function251f4: ; 251f4 (9:51f4) call ClearSprites ld hl, $c540 ld d, $6 call Function253b0 call WaitBGMap ld de, LeaderGFX ld hl, $9290 lb bc, BANK(LeaderGFX), $56 call Request2bpp ld de, BadgeGFX ld hl, $8000 lb bc, BANK(BadgeGFX), $2c call Request2bpp call Function2536c call Function251ab ret ; no known jump sources Function25221: ; 25221 (9:5221) ld hl, Unknown_254c9 call Function25438 ld hl, $ffa9 ld a, [hl] and $1 jr nz, Function25246 ld a, [hl] and $20 jr nz, .asm_25235 ret .asm_25235 ld a, $0 ld [$cf63], a ret ; 2523b (9:523b) Function2523b: ; 2523b ld a, [KantoBadges] and a ret z ld a, $4 ld [$cf63], a ret ; 25246 Function25246: ; 25246 ld a, $6 ld [$cf63], a ret ; no known jump sources Function2524c: ; 2524c (9:524c) call ClearSprites ld hl, $c540 ld d, $6 call Function253b0 call WaitBGMap ld de, LeaderGFX2 ld hl, $9290 lb bc, BANK(LeaderGFX2), $56 call Request2bpp ld de, BadgeGFX2 ld hl, $8000 lb bc, BANK(BadgeGFX2), $2c call Request2bpp call Function2536c call Function251ab ret ; no known jump sources Function25279: ; 25279 (9:5279) ld hl, Unknown_254c9 call Function25438 ld hl, $ffa9 ld a, [hl] and $20 jr nz, .asm_2528d ld a, [hl] and $10 jr nz, .asm_25293 ret .asm_2528d ld a, $2 ld [$cf63], a ret .asm_25293 ld a, $0 ld [$cf63], a ret ; known jump sources: 25169 (9:5169) Function25299: ; 25299 (9:5299) ld hl, TileMap ; $c4a0 (aliases: SpritesEnd) ld d, $5 call Function253b0 ld hl, $c4ca ld de, String_252ec call PlaceString ld hl, $c4f2 ld de, Tilemap_252f9 call Function253a8 ld hl, $c4cf ld de, PlayerName ; $d47d call PlaceString ld hl, $c4f5 ld de, PlayerID ; $d47b ld bc, $8205 call PrintNum ld hl, $c51f ld de, Money ; $d84e ld bc, $2306 call PrintNum ld hl, $c4dd ld de, Tilemap_252fc call Function253a8 ld hl, $c4c2 ld bc, $507 xor a ld [$FF00+$ad], a ld a, $13 call Predef ret ; 252ec (9:52ec) String_252ec: ; 252ec db "NAME/", $4e db $4e db "MONEY@" Tilemap_252f9: ; 252f9 db $27, $28, $ff ; ID NO Tilemap_252fc: ; 252fc db $25, $25, $25, $25, $25, $25, $25, $25, $25, $25, $25, $25, $26, $ff ; ____________> ; 2530a ; known jump sources: 251d0 (9:51d0) Function2530a: ; 2530a (9:530a) ld hl, $c56a ld de, String_2534c call PlaceString ld hl, $c5d6 ld de, String_2535c call PlaceString ld hl, PokedexCaught ; $de99 ld b, $20 call CountSetBits ld de, $d265 ld hl, $c577 ld bc, $103 call PrintNum call Function25415 ld hl, $c542 ld de, Tilemap_25366 call Function253a8 ld a, [StatusFlags] ; $d84c bit 0, a ret nz ld hl, $c555 ld bc, $211 call ClearBox ret ; 2534c (9:534c) String_2534c: ; 2534c db "#DEX", $4e db "PLAY TIME@" String_2535b: ; 2535b db "@" String_2535c: ; 2535c db " BADGES▶@" Tilemap_25366: ; 25366 db $29, $2a, $2b, $2c, $2d, $ff ; 2536c ; known jump sources: 2521a (9:521a), 25272 (9:5272) Function2536c: ; 2536c (9:536c) ld hl, $c542 ld de, Tilemap_253a2 call Function253a8 ld hl, $c56a ld a, $29 ld c, $4 .asm_2537c call Function253f4 inc hl inc hl inc hl inc hl dec c jr nz, .asm_2537c ld hl, $c5a6 ld a, $51 ld c, $4 .asm_2538d call Function253f4 inc hl inc hl inc hl inc hl dec c jr nz, .asm_2538d xor a ld [$cf64], a ld hl, Unknown_254c9 call Function25448 ret ; 253a2 (9:53a2) Tilemap_253a2: ; 253a2 db $79, $7a, $7b, $7c, $7d, $ff ; "BADGES" ; 253a8 ; known jump sources: 252b0 (9:52b0), 252da (9:52da), 25339 (9:5339), 25372 (9:5372), 253ae (9:53ae) Function253a8: ; 253a8 (9:53a8) ld a, [de] cp $ff ret z ld [hli], a inc de jr Function253a8 ; known jump sources: 25171 (9:5171), 251be (9:51be), 251fc (9:51fc), 25254 (9:5254), 2529e (9:529e) Function253b0: ; 253b0 (9:53b0) ld e, $14 .asm_253b2 ld a, $23 ld [hli], a dec e jr nz, .asm_253b2 ld a, $23 ld [hli], a ld e, $11 ld a, $7f .asm_253bf ld [hli], a dec e jr nz, .asm_253bf ld a, $1c ld [hli], a ld a, $23 ld [hli], a .asm_253c9 ld a, $23 ld [hli], a ld e, $12 ld a, $7f .asm_253d0 ld [hli], a dec e jr nz, .asm_253d0 ld a, $23 ld [hli], a dec d jr nz, .asm_253c9 ld a, $23 ld [hli], a ld a, $24 ld [hli], a ld e, $11 ld a, $7f .asm_253e4 ld [hli], a dec e jr nz, .asm_253e4 ld a, $23 ld [hli], a ld e, $14 .asm_253ed ld a, $23 ld [hli], a dec e jr nz, .asm_253ed ret ; known jump sources: 2537c (9:537c), 2538d (9:538d) Function253f4: ; 253f4 (9:53f4) push de push hl ld [hli], a inc a ld [hli], a inc a ld [hli], a inc a ld [hli], a inc a ld de, $11 add hl, de ld [hli], a inc a ld [hli], a inc a ld [hli], a inc a ld de, $11 add hl, de ld [hli], a inc a ld [hli], a inc a ld [hli], a inc a pop hl pop de ret ; known jump sources: 251d7 (9:51d7), 25330 (9:5330) Function25415: ; 25415 (9:5415) ld hl, $c59b ld de, GameTimeHours ; $d4c4 ld bc, $204 call PrintNum inc hl ld de, GameTimeMinutes ; $d4c6 ld bc, $8102 call PrintNum ld a, [$FF00+$9b] and $1f ret nz ld hl, $c59f ld a, [hl] xor $51 ld [hl], a ret ; known jump sources: 25224 (9:5224), 2527c (9:527c) Function25438: ; 25438 (9:5438) ld a, [$FF00+$9b] and $7 ret nz ld a, [$cf64] inc a and $7 ld [$cf64], a jr Function25448 ; known jump sources: 2539e (9:539e), 25446 (9:5446) Function25448: ; 25448 (9:5448) ld a, [hli] ld e, a ld a, [hli] ld d, a ld a, [de] ld c, a ld de, Sprites ; $c400 ld b, 8 .asm_25453 srl c push bc jr nc, .asm_25472 push hl ld a, [hli] ld b, a ld a, [hli] ld c, a ld a, [hli] ld [$cf66], a ld a, [$cf64] add l ld l, a ld a, 0 adc h ld h, a ld a, [hl] ld [$cf65], a call Function2547b pop hl .asm_25472 ld bc, $b add hl, bc pop bc dec b jr nz, .asm_25453 ret ; known jump sources: 2546e (9:546e) Function2547b: ; 2547b (9:547b) ld a, [$cf65] and $80 jr nz, .asm_25487 ld hl, Unknown_254a7 jr .asm_2548a .asm_25487 ld hl, Unknown_254b8 .asm_2548a ld a, [hli] cp $ff ret z add b ld [de], a inc de ld a, [hli] add c ld [de], a inc de ld a, [$cf65] and $7f add [hl] ld [de], a inc hl inc de ld a, [$cf66] add [hl] ld [de], a inc hl inc de jr .asm_2548a ; 254a7 (9:54a7) Unknown_254a7: ; 254a7 db $00, $00, $00, $00 db $00, $08, $01, $00 db $08, $00, $02, $00 db $08, $08, $03, $00 db $ff Unknown_254b8: ; 254b8 db $00, $00, $01, $20 db $00, $08, $00, $20 db $08, $00, $03, $20 db $08, $08, $02, $20 db $ff Unknown_254c9: ; 254c9 ; Template OAM data for each badge on the trainer card. ; Format: ; y, x, palette ; cycle 1: face tile, in1 tile, in2 tile, in3 tile ; cycle 2: face tile, in1 tile, in2 tile, in3 tile dw JohtoBadges ; Zephyrbadge db $68, $18, $00 db $00, $20, $24, $20 | $80 db $00, $20, $24, $20 | $80 ; Hivebadge db $68, $38, $00 db $04, $20, $24, $20 | $80 db $04, $20, $24, $20 | $80 ; Plainbadge db $68, $58, $00 db $08, $20, $24, $20 | $80 db $08, $20, $24, $20 | $80 ; Fogbadge db $68, $78, $00 db $0c, $20, $24, $20 | $80 db $0c, $20, $24, $20 | $80 ; Mineralbadge db $80, $38, $00 db $10, $20, $24, $20 | $80 db $10, $20, $24, $20 | $80 ; Stormbadge db $80, $18, $00 db $14, $20, $24, $20 | $80 db $14, $20, $24, $20 | $80 ; Glacierbadge db $80, $58, $00 db $18, $20, $24, $20 | $80 db $18, $20, $24, $20 | $80 ; Risingbadge ; X-flips on alternate cycles. db $80, $78, $00 db $1c, $20, $24, $20 | $80 db $1c | $80, $20, $24, $20 | $80 ; 25523 CardStatusGFX: INCBIN "gfx/misc/card_status.2bpp" LeaderGFX: INCBIN "gfx/misc/leaders.w24.2bpp" LeaderGFX2: INCBIN "gfx/misc/leaders.w24.2bpp" BadgeGFX: INCBIN "gfx/misc/badges.w16.2bpp" BadgeGFX2: INCBIN "gfx/misc/badges.w16.2bpp" CardRightCornerGFX: INCBIN "gfx/misc/card_right_corner.2bpp" ProfOaksPC: ; 0x265d3 ld hl, OakPCText1 call Function1d4f call YesNoBox jr c, .shutdown call ProfOaksPCBoot ; player chose "yes"? .shutdown ld hl, OakPCText4 call PrintText call Functiona36 call Function1c07 ret ; 0x265ee ProfOaksPCBoot ; 0x265ee ld hl, OakPCText2 call PrintText call Rate call PlaySFX ; sfx loaded by previous Rate function call call Functiona36 call WaitSFX ret ; 0x26601 Function26601: ; 0x26601 call Rate push de ld de, MUSIC_NONE call PlayMusic pop de call PlaySFX call Functiona36 call WaitSFX ret ; 0x26616 Rate: ; 0x26616 ; calculate Seen/Owned ld hl, PokedexSeen ld b, EndPokedexSeen - PokedexSeen call CountSetBits ld [DefaultFlypoint], a ld hl, PokedexCaught ld b, EndPokedexCaught - PokedexCaught call CountSetBits ld [$d003], a ; print appropriate rating call ClearOakRatingBuffers ld hl, OakPCText3 call PrintText call Functiona36 ld a, [$d003] ld hl, OakRatings call FindOakRating push de call PrintText pop de ret ; 0x26647 ClearOakRatingBuffers: ; 0x26647 ld hl, StringBuffer3 ld de, DefaultFlypoint call ClearOakRatingBuffer ld hl, StringBuffer4 ld de, $d003 call ClearOakRatingBuffer ret ; 0x2665a ClearOakRatingBuffer: ; 0x2665a push hl ld a, "@" ld bc, $000d call ByteFill pop hl ld bc, $4103 call PrintNum ret ; 0x2666b FindOakRating: ; 0x2666b ; return sound effect in de ; return text pointer in hl nop ld c, a .loop ld a, [hli] cp c jr nc, .match inc hl inc hl inc hl inc hl jr .loop .match ld a, [hli] ld e, a ld a, [hli] ld d, a ld a, [hli] ld h, [hl] ld l, a ret ; 0x2667f OakRatings: ; 0x2667f ; db count (if number caught ≤ this number, then this entry is used) ; dw sound effect ; dw text pointer db 9 dw SFX_DEX_FANFARE_LESS_THAN_20 dw OakRating01 db 19 dw SFX_DEX_FANFARE_LESS_THAN_20 dw OakRating02 db 34 dw SFX_DEX_FANFARE_20_49 dw OakRating03 db 49 dw SFX_DEX_FANFARE_20_49 dw OakRating04 db 64 dw SFX_DEX_FANFARE_50_79 dw OakRating05 db 79 dw SFX_DEX_FANFARE_50_79 dw OakRating06 db 94 dw SFX_DEX_FANFARE_80_109 dw OakRating07 db 109 dw SFX_DEX_FANFARE_80_109 dw OakRating08 db 124 dw SFX_CAUGHT_MON dw OakRating09 db 139 dw SFX_CAUGHT_MON dw OakRating10 db 154 dw SFX_DEX_FANFARE_140_169 dw OakRating11 db 169 dw SFX_DEX_FANFARE_140_169 dw OakRating12 db 184 dw SFX_DEX_FANFARE_170_199 dw OakRating13 db 199 dw SFX_DEX_FANFARE_170_199 dw OakRating14 db 214 dw SFX_DEX_FANFARE_200_229 dw OakRating15 db 229 dw SFX_DEX_FANFARE_200_229 dw OakRating16 db 239 dw SFX_DEX_FANFARE_230_PLUS dw OakRating17 db 248 dw SFX_DEX_FANFARE_230_PLUS dw OakRating18 db 255 dw SFX_DEX_FANFARE_230_PLUS dw OakRating19 OakPCText1: ; 0x266de TX_FAR _OakPCText1 db "@" OakPCText2: ; 0x266e3 TX_FAR _OakPCText2 db "@" OakPCText3: ; 0x266e8 TX_FAR _OakPCText3 db "@" OakRating01: TX_FAR _OakRating01 db "@" OakRating02: TX_FAR _OakRating02 db "@" OakRating03: TX_FAR _OakRating03 db "@" OakRating04: TX_FAR _OakRating04 db "@" OakRating05: TX_FAR _OakRating05 db "@" OakRating06: TX_FAR _OakRating06 db "@" OakRating07: TX_FAR _OakRating07 db "@" OakRating08: TX_FAR _OakRating08 db "@" OakRating09: TX_FAR _OakRating09 db "@" OakRating10: TX_FAR _OakRating10 db "@" OakRating11: TX_FAR _OakRating11 db "@" OakRating12: TX_FAR _OakRating12 db "@" OakRating13: TX_FAR _OakRating13 db "@" OakRating14: TX_FAR _OakRating14 db "@" OakRating15: TX_FAR _OakRating15 db "@" OakRating16: TX_FAR _OakRating16 db "@" OakRating17: TX_FAR _OakRating17 db "@" OakRating18: TX_FAR _OakRating18 db "@" OakRating19: TX_FAR _OakRating19 db "@" OakPCText4: ; 0x2674c TX_FAR _OakPCText4 db "@" ; no known jump sources Function26751: ; 26751 (9:6751) ld a, $2 ld [$dc0f], a ld a, $10 ld [$dc12], a ret _KrisDecorationMenu: ; 0x2675c ld a, [$cf76] push af ld hl, MenuDataHeader_0x2679a call LoadMenuDataHeader xor a ld [$d1ee], a ld a, $1 ld [$d1ef], a .asm_2676f ld a, [$d1ef] ld [$cf88], a call Function26806 call Function1e5d ld a, [$cfa9] ld [$d1ef], a jr c, .asm_2678e ld a, [MenuSelection] ld hl, Unknown_267aa call Function1fa7 jr nc, .asm_2676f .asm_2678e call Function1c07 pop af ld [$cf76], a ld a, [$d1ee] ld c, a ret ; 0x2679a MenuDataHeader_0x2679a: ; 0x2679a db $40 ; flags db 00, 05 ; start coords db 17, 19 ; end coords dw MenuData2_0x267a2 db 1 ; default option ; 0x267a2 MenuData2_0x267a2: ; 0x267a2 db $a0 ; flags db 0 ; items dw $d002 dw Function1f8d dw Unknown_267aa ; 0x267aa Unknown_267aa: ; 267aa dw Function268b5, .bed dw Function268ca, .carpet dw Function268df, .plant dw Function268f3, .poster dw Function26908, .game dw Function2691d, .ornament dw Function26945, .big_doll dw Function26959, .exit .bed db "BED@" .carpet db "CARPET@" .plant db "PLANT@" .poster db "POSTER@" .game db "GAME CONSOLE@" .ornament db "ORNAMENT@" .big_doll db "BIG DOLL@" .exit db "EXIT@" ; 26806 Function26806: ; 26806 xor a ld [$cf76], a call Function26822 call Function2683a ld a, $7 call Function26830 ld hl, StringBuffer2 ; $d086 ld de, DefaultFlypoint ; $d002 ld bc, $d call CopyBytes ret ; known jump sources: 2680a (9:680a) Function26822: ; 26822 (9:6822) ld hl, StringBuffer2 ; $d086 xor a ld [hli], a ld bc, $c ld a, $ff call ByteFill ret ; known jump sources: 26812 (9:6812), 2684d (9:684d) Function26830: ; 26830 (9:6830) ld hl, StringBuffer2 ; $d086 inc [hl] ld e, [hl] ld d, 0 add hl, de ld [hl], a ret ; known jump sources: 2680d (9:680d) Function2683a: ; 2683a (9:683a) ld hl, Jumptable_26855 .asm_2683d ld a, [hli] ld e, a ld a, [hli] ld d, a or e jr z, .asm_26854 push hl call _de_ pop hl jr nc, .asm_26851 ld a, [hl] push hl call Function26830 pop hl .asm_26851 inc hl jr .asm_2683d .asm_26854 ret ; 26855 (9:6855) Jumptable_26855: ; 26855 dwb Function268bd, 0 ; bed dwb Function268d2, 1 ; carpet dwb Function268e7, 2 ; plant dwb Function268fb, 3 ; poster dwb Function26910, 4 ; game console dwb Function26925, 5 ; ornament dwb Function2694d, 6 ; big doll dw 0 ; end ; 2686c Function2686c: ; 2686c xor a ld hl, DefaultFlypoint ld [hli], a ld a, $ff ld bc, $0010 call ByteFill ret ; 2687a Function2687a: ; 2687a .asm_2687a ld a, [hli] cp $ff jr z, .asm_26890 push hl push af ld b, $2 call Function26a3b ld a, c and a pop bc ld a, b call nz, Function26891 pop hl jr .asm_2687a .asm_26890 ret ; 26891 Function26891: ; 26891 ld hl, DefaultFlypoint inc [hl] ld e, [hl] ld d, $0 add hl, de ld [hl], a ret ; 2689b Function2689b: ; 2689b push bc push hl call Function2686c pop hl call Function2687a pop bc ld a, [DefaultFlypoint] and a ret z ld a, c call Function26891 ld a, $0 call Function26891 scf ret ; 268b5 Function268b5: ; 268b5 call Function268bd call Function2695b xor a ret ; 268bd Function268bd: ; 268bd ld hl, $68c5 ld c, 1 jp Function2689b ; 268c5 Unknown_268c5: ; 268c5 db 2, 3, 4, 5, $ff ; 268ca Function268ca: ; 268ca call Function268d2 call Function2695b xor a ret ; 268d2 Function268d2: ; 268d2 ld hl, Unknown_268da ld c, 6 jp Function2689b ; 268da Unknown_268da: ; 268da db 7, 8, 9, 10, $ff ; 268df Function268df: ; 268df call Function268e7 call Function2695b xor a ret ; 268e7 Function268e7: ; 268e7 ld hl, Unknown_268ef ld c, 11 jp Function2689b ; 268ef Unknown_268ef: ; 268ef db 12, 13, 14, $ff ; 268f3 Function268f3: ; 268f3 call Function268fb call Function2695b xor a ret ; 268fb Function268fb: ; 268fb ld hl, Unknown_26903 ld c, 15 jp Function2689b ; 26903 Unknown_26903: ; 26903 db 16, 17, 18, 19, $ff ; 26908 Function26908: ; 26908 call Function26910 call Function2695b xor a ret ; 26910 Function26910: ; 26910 ld hl, Unknown_26918 ld c, 20 jp Function2689b ; 26918 Unknown_26918: ; 26918 db 21, 22, 23, 24, $ff ; 2691d Function2691d: ; 2691d call Function26925 call Function2695b xor a ret ; 26925 Function26925: ; 26925 ld hl, Unknown_2692d ld c, 29 jp Function2689b ; 2692d Unknown_2692d: ; 2692d db 30, 31, 32, 33, 34, 35, 36, 37, 38, 39 db 40, 41, 42, 43, 44, 45, 46, 47, 48, 49 db 50, 51, 52, $ff ; 26945 Function26945: ; 26945 call Function2694d call Function2695b xor a ret ; 2694d Function2694d: ; 2694d ld hl, Unknown_26955 ld c, 25 jp Function2689b ; 26955 Unknown_26955: ; 26955 db 26, 27, 28, $ff ; 26959 Function26959: ; 26959 scf ret ; 2695b Function2695b: ; 2695b ld a, [DefaultFlypoint] and a jr z, .asm_269a9 cp $8 jr nc, .asm_2697b xor a ld [$cf76], a ld hl, MenuDataHeader_0x269b5 call LoadMenuDataHeader call Function1e5d jr c, .asm_26977 call Function26a02 .asm_26977 call Function1c07 ret .asm_2697b ld hl, DefaultFlypoint ld e, [hl] dec [hl] ld d, $0 add hl, de ld [hl], $ff call Function1d6e ld hl, MenuDataHeader_0x269c5 call Function1d3c xor a ld [hBGMapMode], a call Function352f xor a ld [$d0e4], a call Function350c ld a, [$cf73] cp $2 jr z, .asm_269a5 call Function26a02 .asm_269a5 call Function1c07 ret .asm_269a9 ld hl, UnknownText_0x269b0 call Function1d67 ret ; 269b0 UnknownText_0x269b0: ; 0x269b0 ; There's nothing to choose. text_jump UnknownText_0x1bc471 db "@" ; 0x269b5 MenuDataHeader_0x269b5: ; 0x269b5 db $40 ; flags db 00, 00 ; start coords db 17, 19 ; end coords dw MenuData2_0x269bd db 1 ; default option ; 0x269bd MenuData2_0x269bd: ; 0x269bd db $a0 ; flags db 0 ; items dw $d002 dw Function269f3 dw DecorationAttributes ; 0x269c5 MenuDataHeader_0x269c5: ; 0x269c5 db $40 ; flags db 01, 01 ; start coords db 16, 18 ; end coords dw MenuData2_0x269cd db 1 ; default option ; 0x269cd MenuData2_0x269cd: ; 0x269cd db $10 ; flags db 8, 0 ; rows, columns db 1 ; horizontal spacing dbw 0, $d002 ; text pointer dbw BANK(Function269f3), Function269f3 dbw 0, 0 dbw 0, 0 ; 269dd Function269dd: ; 269dd ld hl, DecorationAttributes ld bc, $0006 call AddNTimes ret ; 269e7 Function269e7: ; 269e7 push hl call Function269dd call Function26c72 pop hl call CopyName2 ret ; 269f3 Function269f3: ; 269f3 ld a, [MenuSelection] push de call Function269dd call Function26c72 pop hl call PlaceString ret ; 26a02 Function26a02: ; 26a02 ld a, [MenuSelection] call Function269dd ld de, $0002 add hl, de ld a, [hl] ld hl, $6a12 rst JumpTable ret ; 26a12 Jumptable_26a12: ; 26a12 dw Function26ce3 dw Function26ce5 dw Function26ceb dw Function26cf1 dw Function26cf7 dw Function26cfd dw Function26d03 dw Function26d09 dw Function26d0f dw Function26d15 dw Function26d1b dw Function26d21 dw Function26d27 dw Function26db3 dw Function26dc9 ; 26a30 Function26a30: ; 26a30 call Function269dd ld de, $0003 add hl, de ld a, [hli] ld d, [hl] ld e, a ret ; 26a3b Function26a3b: ; 26a3b push bc call Function26a30 pop bc call EventFlagAction ret ; 26a44 Function26a44: ; 26a44 ld a, c call Function269dd ld de, $0005 add hl, de ld a, [hl] ld c, a ret ; 26a4f DecorationAttributes: ; 26a4f db $01, $00, $00, $00, $00, $00 db $01, $01, $02, $00, $00, $00 db $02, $12, $01, $a4, $02, $1b db $02, $14, $01, $a5, $02, $1c db $02, $15, $01, $a6, $02, $1d db $02, $13, $01, $a7, $02, $1e db $01, $01, $04, $00, $00, $00 db $03, $16, $03, $a8, $02, $08 db $03, $17, $03, $a9, $02, $0b db $03, $18, $03, $aa, $02, $0e db $03, $19, $03, $ab, $02, $11 db $01, $01, $06, $00, $00, $00 db $01, $02, $05, $ac, $02, $20 db $01, $03, $05, $ad, $02, $21 db $01, $04, $05, $ae, $02, $22 db $01, $01, $08, $00, $00, $00 db $01, $05, $07, $af, $02, $1f db $04, $19, $07, $b0, $02, $23 db $04, $23, $07, $b1, $02, $24 db $04, $27, $07, $b2, $02, $25 db $01, $01, $0a, $00, $00, $00 db $01, $06, $09, $b3, $02, $5c db $01, $07, $09, $b4, $02, $5b db $01, $08, $09, $b5, $02, $51 db $01, $09, $09, $b6, $02, $57 db $01, $01, $0c, $00, $00, $00 db $06, $8f, $0b, $cf, $02, $33 db $06, $5f, $0b, $d0, $02, $50 db $06, $83, $0b, $d1, $02, $47 db $01, $01, $0e, $00, $00, $00 db $05, $19, $0d, $b7, $02, $8e db $01, $0c, $0d, $b8, $02, $34 db $05, $23, $0d, $b9, $02, $8f db $05, $27, $0d, $ba, $02, $94 db $05, $01, $0d, $bb, $02, $93 db $05, $04, $0d, $bc, $02, $90 db $05, $07, $0d, $bd, $02, $89 db $05, $3c, $0d, $be, $02, $8d db $05, $32, $0d, $bf, $02, $8c db $05, $78, $0d, $c0, $02, $92 db $05, $81, $0d, $c1, $02, $88 db $05, $2b, $0d, $c2, $02, $85 db $05, $5e, $0d, $c3, $02, $86 db $05, $5a, $0d, $c4, $02, $84 db $05, $58, $0d, $c5, $02, $95 db $05, $64, $0d, $c6, $02, $9b db $05, $0d, $0d, $c7, $02, $83 db $05, $c9, $0d, $c8, $02, $80 db $05, $4a, $0d, $c9, $02, $81 db $05, $42, $0d, $ca, $02, $9a db $05, $48, $0d, $cb, $02, $98 db $01, $0a, $0d, $cd, $02, $5e db $01, $0b, $0d, $ce, $02, $5f ; 26b8d DecorationNames: ; 26b8d db "CANCEL@" db "PUT IT AWAY@" db "MAGNAPLANT@" db "TROPICPLANT@" db "JUMBOPLANT@" db "TOWN MAP@" db "NES@" db "SUPER NES@" db "NINTENDO 64@" db "VIRTUAL BOY@" db "GOLD TROPHY@" db "SILVER TROPHY@" db "SURF PIKACHU DOLL@" db " BED@" db " CARPET@" db " POSTER@" db " DOLL@" db "BIG @" db "FEATHERY@" db "PIKACHU@" db "PINK@" db "POLKADOT@" db "RED@" db "BLUE@" db "YELLOW@" db "GREEN@" ; 26c72 Function26c72: ; 26c72 ld a, [hli] ld e, [hl] ld bc, StringBuffer2 push bc ld hl, Table26c7e rst JumpTable pop de ret ; 26c7e Table26c7e: ; 26c7e dw Function26c8c dw Function26c8d dw Function26c90 dw Function26c97 dw Function26c9e dw Function26ca6 dw Function26cae ; 26c8c Function26c8c: ; 26c8c ret ; 26c8d Function26c8d: ; 26c8d ld a, e jr Function26cca Function26c90: ; 26c90 call Function26c8d ld a, $d jr Function26cca Function26c97: ; 26c97 call Function26c8d ld a, $e jr Function26cca Function26c9e: ; 26c9e ld a, e call Function26cc0 ld a, $f jr Function26cca Function26ca6: ; 26ca6 ld a, e call Function26cc0 ld a, $10 jr Function26cca Function26cae: ; 26cae push de ld a, $11 call Function26cca pop de ld a, e jr Function26cc0 Function26cb8: ; 26cb8 push de call Function26cca pop de ld a, e jr Function26cca Function26cc0: ; 26cc0 push bc ld [$d265], a call GetPokemonName pop bc jr Function26cda Function26cca: ; 26cca call Function26ccf jr Function26cda Function26ccf: ; 26ccf push bc ld hl, DecorationNames call GetNthString ld d, h ld e, l pop bc ret Function26cda: ; 26cda ld h, b ld l, c call CopyName2 dec hl ld b, h ld c, l ret ; 26ce3 Function26ce3: ; 26ce3 scf ret ; 26ce5 Function26ce5: ; 26ce5 ld hl, Bed jp Function26d2d ; 26ceb Function26ceb: ; 26ceb ld hl, Bed jp Function26d86 ; 26cf1 Function26cf1: ; 26cf1 ld hl, Carpet jp Function26d2d ; 26cf7 Function26cf7: ; 26cf7 ld hl, Carpet jp Function26d86 ; 26cfd Function26cfd: ; 26cfd ld hl, Plant jp Function26d2d ; 26d03 Function26d03: ; 26d03 ld hl, Plant jp Function26d86 ; 26d09 Function26d09: ; 26d09 ld hl, Poster jp Function26d2d ; 26d0f Function26d0f: ; 26d0f ld hl, Poster jp Function26d86 ; 26d15 Function26d15: ; 26d15 ld hl, Console jp Function26d2d ; 26d1b Function26d1b: ; 26d1b ld hl, Console jp Function26d86 ; 26d21 Function26d21: ; 26d21 ld hl, BigDoll jp Function26d2d ; 26d27 Function26d27: ; 26d27 ld hl, BigDoll jp Function26d86 ; 26d2d Function26d2d: ; 26d2d ld a, [hl] ld [Buffer1], a push hl call Function26d46 jr c, .asm_26d43 ld a, $1 ld [$d1ee], a pop hl ld a, [MenuSelection] ld [hl], a xor a ret .asm_26d43 pop hl xor a ret ; 26d46 Function26d46: ; 26d46 ld a, [Buffer1] and a jr z, .asm_26d6d ld b, a ld a, [MenuSelection] cp b jr z, .asm_26d7e ld a, [MenuSelection] ld hl, StringBuffer4 call Function269e7 ld a, [Buffer1] ld hl, StringBuffer3 call Function269e7 ld hl, UnknownText_0x26ee0 call Function1d67 xor a ret .asm_26d6d ld a, [MenuSelection] ld hl, StringBuffer3 call Function269e7 ld hl, UnknownText_0x26edb call Function1d67 xor a ret .asm_26d7e ld hl, UnknownText_0x26ee5 call Function1d67 scf ret ; 26d86 Function26d86: ; 26d86 ld a, [hl] ld [Buffer1], a xor a ld [hl], a ld a, [Buffer1] and a jr z, .asm_26dab ld a, $1 ld [$d1ee], a ld a, [Buffer1] ld [MenuSelection], a ld hl, StringBuffer3 call Function269e7 ld hl, UnknownText_0x26ed1 call Function1d67 xor a ret .asm_26dab ld hl, UnknownText_0x26ed6 call Function1d67 xor a ret ; 26db3 Function26db3: ; 26db3 ld hl, UnknownText_0x26e41 call Function26e70 jr c, .asm_26dc7 call Function26de3 jr c, .asm_26dc7 ld a, $1 ld [$d1ee], a jr Function26dd6 .asm_26dc7 xor a ret Function26dc9: ; 26dc9 ld hl, UnknownText_0x26e6b call Function26e70 jr nc, .asm_26dd3 xor a ret .asm_26dd3 call Function26e46 Function26dd6: ; 26dd6 call Function26e9a ld a, [$d1ec] ld [hl], a ld a, [$d1ed] ld [de], a xor a ret ; 26de3 Function26de3: ; 26de3 ld a, [$d1ec] and a jr z, .asm_26e11 ld b, a ld a, [MenuSelection] cp b jr z, .asm_26e2b ld a, b ld hl, StringBuffer3 call Function269e7 ld a, [MenuSelection] ld hl, StringBuffer4 call Function269e7 ld a, [MenuSelection] ld [$d1ec], a call Function26e33 ld hl, UnknownText_0x26ee0 call Function1d67 xor a ret .asm_26e11 ld a, [MenuSelection] ld [$d1ec], a call Function26e33 ld a, [MenuSelection] ld hl, StringBuffer3 call Function269e7 ld hl, UnknownText_0x26edb call Function1d67 xor a ret .asm_26e2b ld hl, UnknownText_0x26ee5 call Function1d67 scf ret ; 26e33 Function26e33: ; 26e33 ld a, [MenuSelection] ld b, a ld a, [$d1ed] cp b ret nz xor a ld [$d1ed], a ret ; 26e41 UnknownText_0x26e41: ; 0x26e41 ; Which side do you want to put it on? text_jump UnknownText_0x1bc48c db "@" ; 0x26e46 Function26e46: ; 26e46 ld a, [$d1ec] and a jr z, .asm_26e63 ld hl, StringBuffer3 call Function269e7 ld a, $1 ld [$d1ee], a xor a ld [$d1ec], a ld hl, UnknownText_0x26ed1 call Function1d67 xor a ret .asm_26e63 ld hl, UnknownText_0x26ed6 call Function1d67 xor a ret ; 26e6b UnknownText_0x26e6b: ; 0x26e6b ; Which side do you want to put away? text_jump UnknownText_0x1bc4b2 db "@" ; 0x26e70 Function26e70: ; 26e70 call Function1d4f ld hl, MenuDataHeader_0x26eab call Function1dab call Function1c07 call Function1c66 jr c, .asm_26e98 ld a, [$cfa9] cp $3 jr z, .asm_26e98 ld [Buffer2], a call Function26e9a ld a, [hl] ld [$d1ec], a ld a, [de] ld [$d1ed], a xor a ret .asm_26e98 scf ret ; 26e9a Function26e9a: ; 26e9a ld hl, RightOrnament ld de, LeftOrnament ld a, [Buffer2] cp $1 ret z push hl ld h, d ld l, e pop de ret ; 26eab MenuDataHeader_0x26eab: ; 0x26eab db $40 ; flags db 00, 00 ; start coords db 07, 13 ; end coords dw MenuData2_0x26eb3 db 1 ; default option ; 0x26eb3 MenuData2_0x26eb3: ; 0x26eb3 db $80 ; flags db 3 ; items db "RIGHT SIDE@" db "LEFT SIDE@" db "CANCEL@" ; 0x26ed1 UnknownText_0x26ed1: ; 0x26ed1 ; Put away the @ . text_jump UnknownText_0x1bc4d7 db "@" ; 0x26ed6 UnknownText_0x26ed6: ; 0x26ed6 ; There's nothing to put away. text_jump UnknownText_0x1bc4ec db "@" ; 0x26edb UnknownText_0x26edb: ; 0x26edb ; Set up the @ . text_jump UnknownText_0x1bc509 db "@" ; 0x26ee0 UnknownText_0x26ee0: ; 0x26ee0 ; Put away the @ and set up the @ . text_jump UnknownText_0x1bc51c db "@" ; 0x26ee5 UnknownText_0x26ee5: ; 0x26ee5 ; That's already set up. text_jump UnknownText_0x1bc546 db "@" ; 0x26eea Function26eea: ; 26eea ld a, c ld h, d ld l, e call Function269e7 ret ; 26ef1 Function26ef1: ; 26ef1 ld a, c jp Function26a3b ; 26ef5 ; no known jump sources Function26ef5: ; 26ef5 (9:6ef5) ld a, c call Function26f0c ld hl, StringBuffer1 ; $d073 push hl call Function269e7 pop de ret Function26f02: ; 26f02 ld a, c call Function26f0c ld b, $1 call Function26a3b ret ; 26f0c Function26f0c: ; 26f0c push hl push de ld e, a ld d, 0 ld hl, Unknown_26f2b add hl, de ld a, [hl] pop de pop hl ret ; 26f19 Function26f19: ; 26f19 ld hl, Unknown_26f2b .asm_26f1c ld a, [hli] cp $ff jr z, .asm_26f2a push hl ld b, $1 call Function26a3b pop hl jr .asm_26f1c .asm_26f2a ret ; 26f2b Unknown_26f2b: ; 26f2b db $02, $03, $04, $05, $07 db $08, $09, $0a, $0c, $0d db $0e, $10, $11, $12, $13 db $15, $16, $17, $18, $1e db $1f, $20, $21, $22, $23 db $24, $25, $26, $27, $28 db $29, $2a, $2b, $2c, $2d db $2e, $2f, $30, $31, $32 db $1a, $1b, $1c, $33, $34 db $ff ; 26f59 Function26f59:: ; 26f59 ld a, b ld hl, Table26f5f rst JumpTable ret ; 26f5f Table26f5f: ; 26f5f dw Function26f69 dw Function26fb9 dw Function26fbe dw Function26fdd dw Function26fc3 ; 26f69 Function26f69: ; 26f69 ld a, [Poster] ld hl, Unknown_26f84 ld de, 3 call IsInArray jr c, .asm_26f7d ld de, UnknownScript_0x26fb8 ld b, $9 ret .asm_26f7d ld b, $9 inc hl ld a, [hli] ld d, [hl] ld e, a ret ; 26f84 Unknown_26f84: ; 26f84 dbw $10, UnknownScript_0x26f91 dbw $11, UnknownScript_0x26fa0 dbw $12, UnknownScript_0x26fa8 dbw $13, UnknownScript_0x26fb0 db $ff ; 26f91 UnknownScript_0x26f91: ; 0x26f91 loadfont 2writetext UnknownText_0x26f9b closetext special $0026 loadmovesprites end ; 0x26f9b UnknownText_0x26f9b: ; 0x26f9b ; It's the TOWN MAP. text_jump UnknownText_0x1bc55d db "@" ; 0x26fa0 UnknownScript_0x26fa0: ; 0x26fa0 jumptext UnknownText_0x26fa3 ; 0x26fa3 UnknownText_0x26fa3: ; 0x26fa3 ; It's a poster of a cute PIKACHU. text_jump UnknownText_0x1bc570 db "@" ; 0x26fa8 UnknownScript_0x26fa8: ; 0x26fa8 jumptext UnknownText_0x26fab ; 0x26fab UnknownText_0x26fab: ; 0x26fab ; It's a poster of a cute CLEFAIRY. text_jump UnknownText_0x1bc591 db "@" ; 0x26fb0 UnknownScript_0x26fb0: ; 0x26fb0 jumptext UnknownText_0x26fb3 ; 0x26fb3 UnknownText_0x26fb3: ; 0x26fb3 ; It's a poster of a cute JIGGLYPUFF. text_jump UnknownText_0x1bc5b3 db "@" ; 0x26fb8 UnknownScript_0x26fb8: ; 26fb8 end ; 26fb9 Function26fb9: ; 26fb9 ld a, [LeftOrnament] jr Function26fc8 Function26fbe: ; 26fbe ld a, [RightOrnament] jr Function26fc8 Function26fc3: ; 26fc3 ld a, [Console] jr Function26fc8 Function26fc8: ; 26fc8 ld c, a ld de, StringBuffer3 call Function26eea ld b, BANK(Unknown_26fd5) ld de, Unknown_26fd5 ret ; 26fd5 Unknown_26fd5: ; 26fd5 dbw $53, UnknownText_0x26fd8 ; 26fd8 UnknownText_0x26fd8: ; 0x26fd8 ; It's an adorable @ . text_jump UnknownText_0x1bc5d7 db "@" ; 0x26fdd Function26fdd: ; 26fdd ld b, BANK(Unknown_26fe3) ld de, Unknown_26fe3 ret ; 26fe3 Unknown_26fe3: ; 26fe3 dbw $53, UnknownText_0x26fe6 ; 26fe6 UnknownText_0x26fe6: ; 0x26fe6 ; A giant doll! It's fluffy and cuddly. text_jump UnknownText_0x1bc5ef db "@" ; 0x26feb Function26feb: ; 26feb ld de, $0004 ld a, [Bed] call Function27037 ld de, $0704 ld a, [Plant] call Function27037 ld de, $0600 ld a, [Poster] call Function27037 call Function27027 ld de, $0000 call Function27092 ld a, [Carpet] and a ret z call Function27085 ld [hl], a push af ld de, $0002 call Function27092 pop af inc a ld [hli], a inc a ld [hli], a dec a ld [hl], a ret ; 27027 Function27027: ; 27027 ld b, $1 ld a, [Poster] and a jr nz, .asm_27031 ld b, $0 .asm_27031 ld de, $02cc jp EventFlagAction ; 27037 Function27037: ; 27037 push af call Function27092 pop af and a ret z call Function27085 ld [hl], a ret ; 27043 Function27043: ; 27043 ld de, $0741 ld hl, VariableSprites ld a, [Console] call Function27074 ld de, $0742 ld hl, $d82f ld a, [LeftOrnament] call Function27074 ld de, $0743 ld hl, $d830 ld a, [RightOrnament] call Function27074 ld de, $0744 ld hl, $d831 ld a, [BigDoll] call Function27074 ret ; 27074 Function27074: ; 27074 and a jr z, .asm_27080 call Function27085 ld [hl], a ld b, $0 jp EventFlagAction .asm_27080 ld b, $1 jp EventFlagAction ; 27085 Function27085: ; 27085 ld c, a push de push hl callba Function26a44 pop hl pop de ld a, c ret ; 27092 Function27092: ; 27092 ld a, d add $4 ld d, a ld a, e add $4 ld e, a call Function2a66 ret ; 2709e Function2709e: ; 2709e ld a, [CurPartyMon] ld hl, PartyMon1CaughtLocation call GetPartyLocation ld a, [hl] and $7f ld d, a ld a, [MapGroup] ld b, a ld a, [MapNumber] ld c, a call GetWorldMapLocation cp d ld c, $1 jr nz, .asm_270bd ld c, $13 .asm_270bd callab ChangeHappiness ret ; 270c4 INCLUDE "trainers/dvs.asm" Function2715c: ; 2715c call WhiteBGMap call ClearTileMap ld a, [BattleType] cp $3 jr z, .asm_27171 callba Function3f43d jr .asm_27177 .asm_27171 callba GetBattleBackpic .asm_27177 callba Function3f47c callba Function3ed9f call ClearSGB call Function1c17 call Function1d6e call WaitBGMap jp Function32f9 ; 27192 Function27192: ; 27192 push hl push de push bc ld a, [hBattleTurn] and a ld hl, OTPartyMon1Item ld de, EnemyMonItem ld a, [CurOTMon] jr z, .asm_271ac ld hl, PartyMon1Item ld de, BattleMonItem ld a, [CurBattleMon] .asm_271ac push hl push af ld a, [de] ld b, a callba GetItem ld hl, Unknown_271de .asm_271b9 ld a, [hli] cp b jr z, .asm_271c6 inc a jr nz, .asm_271b9 pop af pop hl pop bc pop de pop hl ret .asm_271c6 xor a ld [de], a pop af pop hl call GetPartyLocation ld a, [hBattleTurn] and a jr nz, .asm_271d8 ld a, [IsInBattle] dec a jr z, .asm_271da .asm_271d8 ld [hl], $0 .asm_271da pop bc pop de pop hl ret ; 271de Unknown_271de: ; 271de ; Consumable items? db HELD_BERRY db $02 db $05 db HELD_HEAL_POISON db HELD_HEAL_FREEZE db HELD_HEAL_BURN db HELD_HEAL_SLEEP db HELD_HEAL_PARALYZE db HELD_HEAL_STATUS db $1e db $1f db $20 db $21 db $22 db $23 db $24 db $25 db $26 db $47 db HELD_ESCAPE db HELD_CRITICAL_UP db $ff ; 271f4 MoveEffectsPointers: ; 271f4 INCLUDE "battle/moves/move_effects_pointers.asm" MoveEffects: ; 2732e INCLUDE "battle/moves/move_effects.asm" Function27a28: ; 27a28 call Function2500e ld b, a ret ; 27a2d SECTION "bankA", ROMX, BANK[$A] Function28000: ; 28000 call WhiteBGMap ld c, $50 call DelayFrames call Functionfdb call ClearSprites call Function1ad2 xor a ld [hSCX], a ld [hSCY], a ld c, $50 call DelayFrames call Functionfdb call Function1ad2 call Functione51 call Functione58 callba Function16d69a call Function3200 ld hl, $c543 ld b, $2 ld c, $c ld d, h ld e, l callba Function4d35b ld hl, $c56c ld de, String28419 call PlaceString call Function28eff call Function3200 ld hl, $cf5d xor a ld [hli], a ld [hl], $50 ld a, [InLinkBattle] cp $1 jp nz, Function28177 Function2805d: ; 2805d call Function28426 call Function28499 call Function28434 xor a ld [$cf56], a call Function87d ld a, [$ffcb] cp $2 jr nz, .asm_28091 ld c, $3 call DelayFrames xor a ld [hSerialSend], a ld a, $1 ld [rSC], a ld a, $81 ld [rSC], a call DelayFrame xor a ld [hSerialSend], a ld a, $1 ld [rSC], a ld a, $81 ld [rSC], a .asm_28091 ld de, $0000 call PlayMusic ld c, $3 call DelayFrames xor a ld [rIF], a ld a, $8 ld [rIE], a ld hl, $d1f3 ld de, EnemyMonSpecies ld bc, $0011 call Function75f ld a, $fe ld [de], a ld hl, OverworldMap ld de, $d26b ld bc, $01a8 call Function75f ld a, $fe ld [de], a ld hl, EnemyMoveAnimation ld de, PlayerSDefLevel ld bc, $00c8 call Function75f xor a ld [rIF], a ld a, $1d ld [rIE], a call Function287ab ld hl, $d26b call Function287ca push hl ld bc, $000b add hl, bc ld a, [hl] pop hl and a jp z, Function28b22 cp $7 jp nc, Function28b22 ld de, OverworldMap ld bc, $01a2 call Function2879e ld de, PlayerSDefLevel ld hl, $c813 ld c, $2 .asm_280fe ld a, [de] inc de and a jr z, .asm_280fe cp $fd jr z, .asm_280fe cp $fe jr z, .asm_280fe cp $ff jr z, .asm_2811d push hl push bc ld b, $0 dec a ld c, a add hl, bc ld a, $fe ld [hl], a pop bc pop hl jr .asm_280fe .asm_2811d ld hl, $c90f dec c jr nz, .asm_280fe ld hl, OverworldMap ld de, $d26b ld bc, $000b call CopyBytes ld de, OTPartyCount ld a, [hli] ld [de], a inc de .asm_28135 ld a, [hli] cp $ff jr z, .asm_2814e ld [$d265], a push hl push de callab Functionfb908 pop de pop hl ld a, [$d265] ld [de], a inc de jr .asm_28135 .asm_2814e ld [de], a ld hl, $c813 call Function2868a ld a, $a8 ld [$d102], a ld a, $d3 ld [$d103], a ld de, $0000 call PlayMusic ld a, [$ffcb] cp $2 ld c, $42 call z, DelayFrames ld de, $002b call PlayMusic jp Function287e3 ; 28177 Function28177: ; 28177 call Function28426 call Function28595 call Function28434 call Function29dba ld a, [ScriptVar] and a jp z, Function283b2 ld a, [$ffcb] cp $2 jr nz, .asm_281ae ld c, $3 call DelayFrames xor a ld [hSerialSend], a ld a, $1 ld [rSC], a ld a, $81 ld [rSC], a call DelayFrame xor a ld [hSerialSend], a ld a, $1 ld [rSC], a ld a, $81 ld [rSC], a .asm_281ae ld de, $0000 call PlayMusic ld c, $3 call DelayFrames xor a ld [rIF], a ld a, $8 ld [rIE], a ld hl, $d1f3 ld de, EnemyMonSpecies ld bc, $0011 call Function75f ld a, $fe ld [de], a ld hl, OverworldMap ld de, $d26b ld bc, $01c2 call Function75f ld a, $fe ld [de], a ld hl, EnemyMoveAnimation ld de, PlayerSDefLevel ld bc, $00c8 call Function75f ld a, [InLinkBattle] cp $2 jr nz, .asm_281fd ld hl, $c9f4 ld de, $cb84 ld bc, $0186 call Function283f2 .asm_281fd xor a ld [rIF], a ld a, $1d ld [rIE], a ld de, $0000 call PlayMusic call Function287ab ld hl, $d26b call Function287ca ld de, OverworldMap ld bc, $01b9 call Function2879e ld de, PlayerSDefLevel ld hl, $c813 ld c, $2 .asm_28224 ld a, [de] inc de and a jr z, .asm_28224 cp $fd jr z, .asm_28224 cp $fe jr z, .asm_28224 cp $ff jr z, .asm_28243 push hl push bc ld b, $0 dec a ld c, a add hl, bc ld a, $fe ld [hl], a pop bc pop hl jr .asm_28224 .asm_28243 ld hl, $c90f dec c jr nz, .asm_28224 ld a, [InLinkBattle] cp $2 jp nz, .asm_282fe ld hl, $cb84 .asm_28254 ld a, [hli] cp $20 jr nz, .asm_28254 .asm_28259 ld a, [hli] cp $fe jr z, .asm_28259 cp $20 jr z, .asm_28259 dec hl ld de, $cb84 ld bc, $0190 call CopyBytes ld hl, $cb84 ld bc, $00c6 .asm_28272 ld a, [hl] cp $21 jr nz, .asm_28279 ld [hl], $fe .asm_28279 inc hl dec bc ld a, b or c jr nz, .asm_28272 ld de, $cc9e .asm_28282 ld a, [de] inc de cp $ff jr z, .asm_28294 ld hl, $cc4a dec a ld b, $0 ld c, a add hl, bc ld [hl], $fe jr .asm_28282 .asm_28294 ld hl, $cb84 ld de, $c9f4 ld b, $6 .asm_2829c push bc ld bc, $0021 call CopyBytes ld a, $e add e ld e, a ld a, $0 adc d ld d, a pop bc dec b jr nz, .asm_2829c ld de, $c9f4 ld b, $6 .asm_282b4 push bc ld a, $21 add e ld e, a ld a, $0 adc d ld d, a ld bc, $000e call CopyBytes pop bc dec b jr nz, .asm_282b4 ld b, $6 ld de, $c9f4 .asm_282cc push bc push de callba Function1de5c8 ld a, c or a jr z, .asm_282ee sub $3 jr nc, .asm_282e4 callba Function1df203 jr .asm_282ee .asm_282e4 cp $2 jr nc, .asm_282ee callba Function1df220 .asm_282ee pop de ld hl, $002f add hl, de ld d, h ld e, l pop bc dec b jr nz, .asm_282cc ld de, $cb0e xor a ld [de], a .asm_282fe ld hl, OverworldMap ld de, $d26b ld bc, $000b call CopyBytes ld de, OTPartyCount ld bc, $0008 call CopyBytes ld de, $d276 ld bc, $0002 call CopyBytes ld de, OTPartyMon1Species ld bc, $01a4 call CopyBytes ld a, $a8 ld [$d102], a ld a, $d3 ld [$d103], a ld de, $0000 call PlayMusic ld a, [$ffcb] cp $2 ld c, $42 call z, DelayFrames ld a, [InLinkBattle] cp $3 jr nz, .asm_283a9 ld a, $c ld [OtherTrainerClass], a call Functionfdb callba Function4d354 ld hl, Options ld a, [hl] push af and $20 or $3 ld [hl], a ld hl, $d26b ld de, $c656 ld bc, $000b call CopyBytes call Function222a ld a, [$c2d7] push af ld a, $1 ld [$c2d7], a ld a, [rIE] push af ld a, [rIF] push af xor a ld [rIF], a ld a, [rIE] set 1, a ld [rIE], a pop af ld [rIF], a ld a, $16 call Predef ld a, [rIF] ld h, a xor a ld [rIF], a pop af ld [rIE], a ld a, h ld [rIF], a pop af ld [$c2d7], a pop af ld [Options], a callba Function1500c jp Function28b22 .asm_283a9 ld de, $002b call PlayMusic jp Function287e3 ; 283b2 Function283b2: ; 283b2 ld de, UnknownText_0x283ed ld b, $a .asm_283b7 call DelayFrame call Function908 dec b jr nz, .asm_283b7 xor a ld [hld], a ld [hl], a ld [$ff9e], a push de ld hl, $c590 ld b, $4 ld c, $12 push de ld d, h ld e, l callba Function4d35b pop de pop hl ld bc, $c5b9 call Function13e5 call Function4b6 call Functionfdb ld b, $8 call GetSGBLayout call Function3200 ret ; 283ed UnknownText_0x283ed: ; 0x283ed ; Too much time has elapsed. Please try again. text_jump UnknownText_0x1c4183 db "@" ; 0x283f2 Function283f2: ; 283f2 ld a, $1 ld [$ffcc], a .asm_283f6 ld a, [hl] ld [hSerialSend], a call Function78a push bc ld b, a inc hl ld a, $30 .asm_28401 dec a jr nz, .asm_28401 ld a, [$ffcc] and a ld a, b pop bc jr z, .asm_28411 dec hl xor a ld [$ffcc], a jr .asm_283f6 .asm_28411 ld [de], a inc de dec bc ld a, b or c jr nz, .asm_283f6 ret ; 28419 String28419: ; 28419 db "PLEASE WAIT!@" ; 28426 Function28426: ; 28426 ld hl, OverworldMap ld bc, $0514 .asm_2842c xor a ld [hli], a dec bc ld a, b or c jr nz, .asm_2842c ret ; 28434 Function28434: ; 28434 ld hl, $d1f3 ld a, $fd ld b, $7 .asm_2843b ld [hli], a dec b jr nz, .asm_2843b ld b, $a .asm_28441 call Random cp $fd jr nc, .asm_28441 ld [hli], a dec b jr nz, .asm_28441 ld hl, EnemyMoveAnimation ld a, $fd ld [hli], a ld [hli], a ld [hli], a ld b, $c8 xor a .asm_28457 ld [hli], a dec b jr nz, .asm_28457 ld hl, $c818 ld de, PlayerMoveType ld bc, $0000 .asm_28464 inc c ld a, c cp $fd jr z, .asm_2848c ld a, b dec a jr nz, .asm_2847f push bc ld a, [InLinkBattle] cp $1 ld b, $d jr z, .asm_2847a ld b, $27 .asm_2847a ld a, c cp b pop bc jr z, .asm_28495 .asm_2847f inc hl ld a, [hl] cp $fe jr nz, .asm_28464 ld a, c ld [de], a inc de ld [hl], $ff jr .asm_28464 .asm_2848c ld a, $ff ld [de], a inc de ld bc, Start jr .asm_28464 .asm_28495 ld a, $ff ld [de], a ret ; 28499 Function28499: ; 28499 ld de, OverworldMap ld a, $fd ld b, $6 .asm_284a0 ld [de], a inc de dec b jr nz, .asm_284a0 ld hl, PlayerName ld bc, $000b call CopyBytes push de ld hl, PartyCount ld a, [hli] ld [de], a inc de .asm_284b5 ld a, [hli] cp $ff jr z, .asm_284ce ld [$d265], a push hl push de callab Functionfb8f1 pop de pop hl ld a, [$d265] ld [de], a inc de jr .asm_284b5 .asm_284ce ld [de], a pop de ld hl, $0008 add hl, de ld d, h ld e, l ld hl, PartyMon1Species ld c, $6 .asm_284db push bc call Function284f6 ld bc, $0030 add hl, bc pop bc dec c jr nz, .asm_284db ld hl, PartyMonOT call .asm_284f0 ld hl, PartyMonNicknames .asm_284f0 ld bc, $0042 jp CopyBytes ; 284f6 Function284f6: ; 284f6 ld b, h ld c, l push de push bc ld a, [hl] ld [$d265], a callab Functionfb8f1 pop bc pop de ld a, [$d265] ld [de], a inc de ld hl, $0022 add hl, bc ld a, [hli] ld [de], a inc de ld a, [hl] ld [de], a inc de xor a ld [de], a inc de ld hl, $0020 add hl, bc ld a, [hl] ld [de], a inc de ld a, [bc] cp $51 jr z, .asm_28528 cp $52 jr nz, .asm_28530 .asm_28528 ld a, $17 ld [de], a inc de ld [de], a inc de jr .asm_28544 .asm_28530 push bc dec a ld hl, BaseData + 7 ; type ld bc, BaseData1 - BaseData0 call AddNTimes ld bc, 2 ld a, BANK(BaseData) call FarCopyBytes pop bc .asm_28544 push bc ld hl, $0001 add hl, bc ld bc, $1a call CopyBytes pop bc ld hl, $001f add hl, bc ld a, [hl] ld [de], a ld [CurPartyLevel], a inc de push bc ld hl, $0024 add hl, bc ld bc, $0008 call CopyBytes pop bc push de push bc ld a, [bc] dec a push bc ld b, $0 ld c, a ld hl, Unknown_fb656 add hl, bc ld a, BANK(Unknown_fb656) call GetFarByte ld [BaseSpecialAttack], a pop bc ld hl, $000a add hl, bc ld c, $5 ld b, $1 ld a, $d call Predef pop bc pop de ld a, [$ffb5] ld [de], a inc de ld a, [$ffb6] ld [de], a inc de ld h, b ld l, c ret ; 28595 Function28595: ; 28595 ld de, OverworldMap ld a, $fd ld b, $6 .asm_2859c ld [de], a inc de dec b jr nz, .asm_2859c ld hl, PlayerName ld bc, $000b call CopyBytes ld hl, PartyCount ld bc, $0008 call CopyBytes ld hl, PlayerID ld bc, $0002 call CopyBytes ld hl, PartyMon1Species ld bc, $0120 call CopyBytes ld hl, PartyMon1OT ld bc, $0042 call CopyBytes ld hl, PartyMon1Nickname ld bc, $0042 call CopyBytes ld a, [InLinkBattle] cp $2 ret nz ld de, $c9f4 ld a, $20 call Function28682 ld a, $0 call GetSRAMBank ld hl, $a600 ld b, $6 .asm_285ef push bc ld bc, $0021 call CopyBytes ld bc, $000e add hl, bc pop bc dec b jr nz, .asm_285ef ld hl, $a600 ld b, $6 .asm_28603 push bc ld bc, $0021 add hl, bc ld bc, $000e call CopyBytes pop bc dec b jr nz, .asm_28603 ld b, $6 ld de, $a600 ld hl, $c9f9 .asm_2861a push bc push hl push de push hl callba Function1de5c8 pop de ld a, c or a jr z, .asm_2863f sub $3 jr nc, .asm_28635 callba Function1df1e6 jr .asm_2863f .asm_28635 cp $2 jr nc, .asm_2863f callba Function1df220 .asm_2863f pop de ld hl, $002f add hl, de ld d, h ld e, l pop hl ld bc, $0021 add hl, bc pop bc dec b jr nz, .asm_2861a call CloseSRAM ld hl, $c9f9 ld bc, $00c6 .asm_28658 ld a, [hl] cp $fe jr nz, .asm_2865f ld [hl], $21 .asm_2865f inc hl dec bc ld a, b or c jr nz, .asm_28658 ld hl, $cabf ld de, $cb13 ld b, $54 ld c, $0 .asm_2866f inc c ld a, [hl] cp $fe jr nz, .asm_2867a ld [hl], $ff ld a, c ld [de], a inc de .asm_2867a inc hl dec b jr nz, .asm_2866f ld a, $ff ld [de], a ret ; 28682 Function28682: ; 28682 ld c, $5 .asm_28684 ld [de], a inc de dec c jr nz, .asm_28684 ret ; 2868a Function2868a: ; 2868a push hl ld d, h ld e, l ld bc, $cbea ld hl, $cbe8 ld a, c ld [hli], a ld [hl], b ld hl, OTPartyMon1Species ld c, $6 .asm_2869b push bc call Function286ba pop bc dec c jr nz, .asm_2869b pop hl ld bc, $0108 add hl, bc ld de, OTPartyMon1OT ld bc, $0042 call CopyBytes ld de, OTPartyMon1Nickname ld bc, $0042 jp CopyBytes ; 286ba Function286ba: ; 286ba ld b, h ld c, l ld a, [de] inc de push bc push de ld [$d265], a callab Functionfb908 pop de pop bc ld a, [$d265] ld [bc], a ld [CurSpecies], a ld hl, $0022 add hl, bc ld a, [de] inc de ld [hli], a ld a, [de] inc de ld [hl], a inc de ld hl, $0020 add hl, bc ld a, [de] inc de ld [hl], a ld hl, $cbe8 ld a, [hli] ld h, [hl] ld l, a ld a, [de] ld [hli], a inc de ld a, [de] ld [hli], a inc de ld a, l ld [$cbe8], a ld a, h ld [$cbe9], a push bc ld hl, $0001 add hl, bc push hl ld h, d ld l, e pop de push bc ld a, [hli] ld b, a call Function28771 ld a, b ld [de], a inc de pop bc ld bc, $0019 call CopyBytes pop bc ld d, h ld e, l ld hl, $001f add hl, bc ld a, [de] inc de ld [hl], a ld [CurPartyLevel], a push bc ld hl, $0024 add hl, bc push hl ld h, d ld l, e pop de ld bc, $0008 call CopyBytes pop bc call GetBaseData push de push bc ld d, h ld e, l ld hl, $000a add hl, bc ld c, $5 ld b, $1 ld a, $d call Predef pop bc pop hl ld a, [$ffb5] ld [hli], a ld a, [$ffb6] ld [hli], a push hl push bc ld hl, $000a add hl, bc ld c, $6 ld b, $1 ld a, $d call Predef pop bc pop hl ld a, [$ffb5] ld [hli], a ld a, [$ffb6] ld [hli], a push hl ld hl, $001b add hl, bc ld a, $46 ld [hli], a xor a ld [hli], a ld [hli], a ld [hl], a pop hl inc de inc de ret ; 28771 Function28771: ; 28771 ld a, b and a ret z push hl ld hl, Unknown_28785 .asm_28778 ld a, [hli] and a jr z, .asm_28783 cp b jr z, .asm_28782 inc hl jr .asm_28778 .asm_28782 ld b, [hl] .asm_28783 pop hl ret ; 28785 Unknown_28785: ; 28785 ; Alternate mappings for unused items. db $19, LEFTOVERS db $2d, BITTER_BERRY db $32, GOLD_BERRY db $5a, BERRY db $64, BERRY db $78, BERRY db $87, BERRY db $be, BERRY db $c3, BERRY db $dc, BERRY db $fa, BERRY db $ff, BERRY db $00 ; 2879e Function2879e: ; 2879e .asm_2879e ld a, [hli] cp $fe jr z, .asm_2879e ld [de], a inc de dec bc ld a, b or c jr nz, .asm_2879e ret ; 287ab Function287ab: ; 287ab ld a, [$ffcb] cp $2 ret z ld hl, EnemyMonSpecies call Function287d8 ld de, LinkBattleRNs ld c, $a .asm_287bb ld a, [hli] cp $fe jr z, .asm_287bb cp $fd jr z, .asm_287bb ld [de], a inc de dec c jr nz, .asm_287bb ret ; 287ca Function287ca: ; 287ca .asm_287ca ld a, [hli] and a jr z, .asm_287ca cp $fd jr z, .asm_287ca cp $fe jr z, .asm_287ca dec hl ret ; 287d8 Function287d8: ; 287d8 .asm_287d8 ld a, [hli] cp $fd jr z, .asm_287d8 cp $fe jr z, .asm_287d8 dec hl ret ; 287e3 Function287e3: ; 287e3 call Functionfdb call Function28ef8 callba Function16d673 xor a ld hl, $cf51 ld [hli], a ld [hli], a ld [hli], a ld [hl], a ld a, $1 ld [$cfa9], a inc a ld [$cf56], a jp Function2888b ; 28803 Function28803: ; 28803 ld a, $1 ld [MonType], a ld a, $c1 ld [$cfa8], a ld a, [OTPartyCount] ld [$cfa3], a ld a, $1 ld [$cfa4], a ld a, $9 ld [$cfa1], a ld a, $6 ld [$cfa2], a ld a, $1 ld [$cfaa], a ld a, $10 ld [$cfa7], a ld a, $20 ld [$cfa5], a xor a ld [$cfa6], a Function28835: ; 28835 callba Function16d70c ld a, d and a jp z, Function2891c bit 0, a jr z, .asm_2885b ld a, $1 ld [$d263], a callab Function50db9 ld hl, OTPartyMon1Species callba Function4d319 jp Function2891c .asm_2885b bit 6, a jr z, .asm_28883 ld a, [$cfa9] ld b, a ld a, [OTPartyCount] cp b jp nz, Function2891c xor a ld [MonType], a call Function1bf7 push hl push bc ld bc, $000b add hl, bc ld [hl], $7f pop bc pop hl ld a, [PartyCount] ld [$cfa9], a jr Function2888b .asm_28883 bit 7, a jp z, Function2891c jp Function28ac9 ; 2888b Function2888b: ; 2888b callba Function49856 xor a ld [MonType], a ld a, $c1 ld [$cfa8], a ld a, [PartyCount] ld [$cfa3], a ld a, $1 ld [$cfa4], a ld a, $1 ld [$cfa1], a ld a, $6 ld [$cfa2], a ld a, $1 ld [$cfaa], a ld a, $10 ld [$cfa7], a ld a, $20 ld [$cfa5], a xor a ld [$cfa6], a call Function3200 Function288c5: ; 288c5 callba Function16d70c ld a, d and a jr nz, .asm_288d2 jp Function2891c .asm_288d2 bit 0, a jr z, .asm_288d9 jp Function28926 .asm_288d9 bit 7, a jr z, .asm_288fe ld a, [$cfa9] dec a jp nz, Function2891c ld a, $1 ld [MonType], a call Function1bf7 push hl push bc ld bc, $000b add hl, bc ld [hl], $7f pop bc pop hl ld a, $1 ld [$cfa9], a jp Function28803 .asm_288fe bit 6, a jr z, Function2891c ld a, [$cfa9] ld b, a ld a, [PartyCount] cp b jr nz, Function2891c call Function1bf7 push hl push bc ld bc, $000b add hl, bc ld [hl], $7f pop bc pop hl jp Function28ade ; 2891c Function2891c: ; 2891c ld a, [MonType] and a jp z, Function288c5 jp Function28835 ; 28926 Function28926: ; 28926 call Function309d ld a, [$cfa9] push af ld hl, $c5cc ld b, $1 ld c, $12 call Function28eef ld hl, $c5e2 ld de, String28ab4 call PlaceString callba Function4d354 .asm_28946 ld a, $7f ld [$c5eb], a ld a, $13 ld [$cfa8], a ld a, $1 ld [$cfa3], a ld a, $1 ld [$cfa4], a ld a, $10 ld [$cfa1], a ld a, $1 ld [$cfa2], a ld a, $1 ld [$cfa9], a ld [$cfaa], a ld a, $20 ld [$cfa7], a xor a ld [$cfa5], a ld [$cfa6], a call Function1bd3 bit 4, a jr nz, .asm_2898d bit 1, a jr z, .asm_289cd .asm_28983 pop af ld [$cfa9], a call Function30b4 jp Function2888b .asm_2898d ld a, $7f ld [$c5e1], a ld a, $23 ld [$cfa8], a ld a, $1 ld [$cfa3], a ld a, $1 ld [$cfa4], a ld a, $10 ld [$cfa1], a ld a, $b ld [$cfa2], a ld a, $1 ld [$cfa9], a ld [$cfaa], a ld a, $20 ld [$cfa7], a xor a ld [$cfa5], a ld [$cfa6], a call Function1bd3 bit 5, a jp nz, .asm_28946 bit 1, a jr nz, .asm_28983 jr .asm_289fe .asm_289cd pop af ld [$cfa9], a ld a, $4 ld [$d263], a callab Function50db9 callba Function4d319 call Function30b4 ld hl, $c4ba ld bc, $0601 ld a, $7f call Function28b77 ld hl, $c4c5 ld bc, $0601 ld a, $7f call Function28b77 jp Function2888b .asm_289fe call Function1bee pop af ld [$cfa9], a dec a ld [DefaultFlypoint], a ld [$cf56], a callba Function16d6ce ld a, [$cf51] cp $f jp z, Function287e3 ld [$d003], a call Function28b68 ld c, $64 call DelayFrames callba Functionfb57e jr c, .asm_28a58 callba Functionfb5dd jp nc, Function28b87 xor a ld [$cf57], a ld [$cf52], a ld hl, $c590 ld b, $4 ld c, $12 call Function28eef callba Function4d354 ld hl, UnknownText_0x28aaf ld bc, $c5b9 call Function13e5 jr .asm_28a89 .asm_28a58 xor a ld [$cf57], a ld [$cf52], a ld a, [$d003] ld hl, OTPartySpecies ld c, a ld b, $0 add hl, bc ld a, [hl] ld [$d265], a call GetPokemonName ld hl, $c590 ld b, $4 ld c, $12 call Function28eef callba Function4d354 ld hl, UnknownText_0x28ac4 ld bc, $c5b9 call Function13e5 .asm_28a89 ld hl, $c590 ld b, $4 ld c, $12 call Function28eef ld hl, $c5b9 ld de, String28ece call PlaceString ld a, $1 ld [$cf56], a callba Function16d6ce ld c, $64 call DelayFrames jp Function287e3 ; 28aaf UnknownText_0x28aaf: ; 0x28aaf ; If you trade that #MON, you won't be able to battle. text_jump UnknownText_0x1c41b1 db "@" ; 0x28ab4 String28ab4: ; 28ab4 db "STATS TRADE@" UnknownText_0x28ac4: ; 0x28ac4 ; Your friend's @ appears to be abnormal! text_jump UnknownText_0x1c41e6 db "@" ; 0x28ac9 Function28ac9: ; 28ac9 ld a, [$cfa9] cp $1 jp nz, Function2891c call Function1bf7 push hl push bc ld bc, $000b add hl, bc ld [hl], $7f pop bc pop hl Function28ade: ; 28ade .asm_28ade ld a, $ed ld [$c5fd], a .asm_28ae3 call Functiona57 ld a, [$ffa9] and a jr z, .asm_28ae3 bit 0, a jr nz, .asm_28b0b push af ld a, $7f ld [$c5fd], a pop af bit 6, a jr z, .asm_28b03 ld a, [OTPartyCount] ld [$cfa9], a jp Function28803 .asm_28b03 ld a, $1 ld [$cfa9], a jp Function2888b .asm_28b0b ld a, $ec ld [$c5fd], a ld a, $f ld [$cf56], a callba Function16d6ce ld a, [$cf51] cp $f jr nz, .asm_28ade Function28b22: ; 28b22 call Function4b6 call Functionfdb ld b, $8 call GetSGBLayout call Function3200 xor a ld [$cfbb], a xor a ld [rSB], a ld [hSerialSend], a ld a, $1 ld [rSC], a ld a, $81 ld [rSC], a ret ; 28b42 Function28b42: ; 28b42 ld hl, $c5e0 ld a, $7e ld bc, $0028 call ByteFill ld hl, $c5e1 ld a, $7f ld bc, $0012 call ByteFill ld hl, $c5e2 ld de, String_28b61 jp PlaceString ; 28b61 String_28b61: ; 28b61 db "CANCEL@" ; 28b68 Function28b68: ; 28b68 ld a, [$cf51] ld hl, $c55a ld bc, $0014 call AddNTimes ld [hl], $ec ret ; 28b77 Function28b77: ; 28b77 .asm_28b77 push bc push hl .asm_28b79 ld [hli], a dec c jr nz, .asm_28b79 pop hl ld bc, $0014 add hl, bc pop bc dec b jr nz, .asm_28b77 ret ; 28b87 Function28b87: ; 28b87 xor a ld [$cf57], a ld [$cf52], a ld hl, $c590 ld b, $4 ld c, $12 call Function28eef callba Function4d354 ld a, [DefaultFlypoint] ld hl, PartySpecies ld c, a ld b, $0 add hl, bc ld a, [hl] ld [$d265], a call GetPokemonName ld hl, StringBuffer1 ld de, $d004 ld bc, $000b call CopyBytes ld a, [$d003] ld hl, OTPartySpecies ld c, a ld b, $0 add hl, bc ld a, [hl] ld [$d265], a call GetPokemonName ld hl, UnknownText_0x28eb8 ld bc, $c5b9 call Function13e5 call Function1d6e ld hl, $c536 ld b, $3 ld c, $7 call Function28eef ld de, String28eab ld hl, $c54c call PlaceString ld a, $8 ld [$cfa1], a ld a, $b ld [$cfa2], a ld a, $1 ld [$cfa4], a ld a, $2 ld [$cfa3], a xor a ld [$cfa5], a ld [$cfa6], a ld a, $20 ld [$cfa7], a ld a, $3 ld [$cfa8], a ld a, $1 ld [$cfa9], a ld [$cfaa], a callba Function4d354 call Function1bd3 push af call Function1d7d call Function3200 pop af bit 1, a jr nz, .asm_28c33 ld a, [$cfa9] dec a jr z, .asm_28c54 .asm_28c33 ld a, $1 ld [$cf56], a ld hl, $c590 ld b, $4 ld c, $12 call Function28eef ld hl, $c5b9 ld de, String28ece call PlaceString callba Function16d6ce jp Function28ea3 .asm_28c54 ld a, $2 ld [$cf56], a callba Function16d6ce ld a, [$cf51] dec a jr nz, .asm_28c7b ld hl, $c590 ld b, $4 ld c, $12 call Function28eef ld hl, $c5b9 ld de, String28ece call PlaceString jp Function28ea3 .asm_28c7b ld hl, $a600 ld a, [DefaultFlypoint] ld bc, $002f call AddNTimes ld a, $0 call GetSRAMBank ld d, h ld e, l ld bc, $002f add hl, bc ld a, [DefaultFlypoint] ld c, a .asm_28c96 inc c ld a, c cp $6 jr z, .asm_28ca6 push bc ld bc, $002f call CopyBytes pop bc jr .asm_28c96 .asm_28ca6 ld hl, $a600 ld a, [PartyCount] dec a ld bc, $002f call AddNTimes push hl ld hl, $c9f4 ld a, [$d003] ld bc, $002f call AddNTimes pop de ld bc, $002f call CopyBytes call CloseSRAM ld hl, PlayerName ld de, $c6e7 ld bc, $000b call CopyBytes ld a, [DefaultFlypoint] ld hl, PartySpecies ld b, $0 ld c, a add hl, bc ld a, [hl] ld [PlayerSDefLevel], a push af ld a, [DefaultFlypoint] ld hl, PartyMon1OT call SkipNames ld de, $c6f2 ld bc, $000b call CopyBytes ld hl, PartyMon1ID ld a, [DefaultFlypoint] call GetPartyLocation ld a, [hli] ld [PlayerScreens], a ld a, [hl] ld [EnemyScreens], a ld hl, PartyMon1DVs ld a, [DefaultFlypoint] call GetPartyLocation ld a, [hli] ld [$c6fd], a ld a, [hl] ld [$c6fe], a ld a, [DefaultFlypoint] ld hl, PartyMon1Species call GetPartyLocation ld b, h ld c, l callba GetCaughtGender ld a, c ld [$c701], a ld hl, $d26b ld de, $c719 ld bc, $000b call CopyBytes ld a, [$d003] ld hl, OTPartySpecies ld b, $0 ld c, a add hl, bc ld a, [hl] ld [PlayerLightScreenCount], a ld a, [$d003] ld hl, OTPartyMon1OT call SkipNames ld de, $c724 ld bc, $000b call CopyBytes ld hl, OTPartyMon1ID ld a, [$d003] call GetPartyLocation ld a, [hli] ld [$c731], a ld a, [hl] ld [$c732], a ld hl, OTPartyMon1AtkDefDV ld a, [$d003] call GetPartyLocation ld a, [hli] ld [$c72f], a ld a, [hl] ld [$c730], a ld a, [$d003] ld hl, OTPartyMon1Species call GetPartyLocation ld b, h ld c, l callba GetCaughtGender ld a, c ld [$c733], a ld a, [DefaultFlypoint] ld [CurPartyMon], a ld hl, PartySpecies ld b, $0 ld c, a add hl, bc ld a, [hl] ld [DefaultFlypoint], a xor a ld [$d10b], a callab Functione039 ld a, [PartyCount] dec a ld [CurPartyMon], a ld a, $1 ld [$d1e9], a ld a, [$d003] push af ld hl, OTPartySpecies ld b, $0 ld c, a add hl, bc ld a, [hl] ld [$d003], a ld c, $64 call DelayFrames call ClearTileMap call Functione58 ld b, $8 call GetSGBLayout ld a, [$ffcb] cp $1 jr z, .asm_28de4 ld a, $1e call Predef jr .asm_28de9 .asm_28de4 ld a, $1d call Predef .asm_28de9 pop af ld c, a ld [CurPartyMon], a ld hl, OTPartySpecies ld d, $0 ld e, a add hl, de ld a, [hl] ld [CurPartySpecies], a ld hl, OTPartyMon1Species ld a, c call GetPartyLocation ld de, TempMonSpecies ld bc, $0030 call CopyBytes ld a, $7 call Predef ld a, [PartyCount] dec a ld [CurPartyMon], a callab Function421d8 call Functionfdb call Function28ef8 call Function28eff callba Function4d354 ld b, $1 pop af ld c, a cp $97 jr z, .asm_28e49 ld a, [CurPartySpecies] cp $97 jr z, .asm_28e49 ld b, $2 ld a, c cp $fb jr z, .asm_28e49 ld a, [CurPartySpecies] cp $fb jr z, .asm_28e49 ld b, $0 .asm_28e49 ld a, b ld [$cf56], a push bc call Function862 pop bc ld a, [InLinkBattle] cp $1 jr z, .asm_28e63 ld a, b and a jr z, .asm_28e63 ld a, [$cf52] cp b jr nz, .asm_28e49 .asm_28e63 callba Function14a58 callba Function1060af callba Function106187 ld c, $28 call DelayFrames ld hl, $c590 ld b, $4 ld c, $12 call Function28eef ld hl, $c5b9 ld de, String28ebd call PlaceString callba Function4d354 ld c, $32 call DelayFrames ld a, [InLinkBattle] cp $1 jp z, Function2805d jp Function28177 ; 28ea3 Function28ea3: ; 28ea3 ld c, 100 call DelayFrames jp Function287e3 ; 28eab String28eab: ; 28eab db "TRADE", $4e, "CANCEL@" UnknownText_0x28eb8: ; 0x28eb8 ; Trade @ for @ ? text_jump UnknownText_0x1c4212 db "@" ; 0x28ebd String28ebd: ; 28ebd db "Trade completed!@" String28ece: ; 28ece db "Too bad! The trade", $4e, "was canceled!@" Function28eef: ; 28eef ld d, h ld e, l callba Function16d6ca ret ; 28ef8 Function28ef8: ; 28ef8 callba Function16d696 ret ; 28eff Function28eff: ; 28eff callba Function16d6a7 call Function32f9 ret ; 28f09 Function28f09: ; 28f09 hlcoord 0, 0 ld b, 6 ld c, 18 call Function28eef hlcoord 0, 8 ld b, 6 ld c, 18 call Function28eef callba Functionfb60d ret ; 28f24 Function28f24: ; 28f24 xor a ld [$cf66], a ld hl, $c6e7 ld de, $c719 call Function297ff ld hl, PlayerSDefLevel ld de, PlayerLightScreenCount call Function29814 ld de, .data_28f3f jr Function28fa1 .data_28f3f db $1b db $1 db $1c db $21 db $2d db $27 db $23 db $3 db $25 db $28 db $25 db $1e db $29 db $6 db $16 db $1f db $19 db $17 db $22 db $1f db $2a db $e db $3 db $24 db $5 db $25 db $2 db $27 db $25 db $1d db $2c db $2e db $1e db $18 db $1f db $2b Function28f63: ; 28f63 xor a ld [$cf66], a ld hl, $c719 ld de, $c6e7 call Function297ff ld hl, PlayerLightScreenCount ld de, PlayerSDefLevel call Function29814 ld de, .data_28f7e jr Function28fa1 .data_28f7e db $1a db $17 db $22 db $1f db $2a db $6 db $3 db $24 db $5 db $25 db $2 db $27 db $25 db $1d db $2c db $2f db $1e db $18 db $1f db $1b db $1 db $1c db $22 db $27 db $23 db $3 db $25 db $28 db $25 db $1e db $29 db $e db $16 db $1f db $2b Function28fa1: ; 28fa1 ld hl, BattleEnded ld [hl], e inc hl ld [hl], d ld a, [$ffde] push af xor a ld [$ffde], a ld hl, VramState ld a, [hl] push af res 0, [hl] ld hl, Options ld a, [hl] push af set 4, [hl] call Function28fdb ld a, [$cf66] and a jr nz, .asm_28fca ld de, MUSIC_EVOLUTION call PlayMusic2 .asm_28fca call Function29082 jr nc, .asm_28fca pop af ld [Options], a pop af ld [VramState], a pop af ld [$ffde], a ret ; 28fdb Function28fdb: ; 28fdb xor a ld [$cf63], a call WhiteBGMap call ClearSprites call ClearTileMap call DisableLCD call Functione58 callab Function8cf53 ld a, [hCGB] and a jr z, .asm_2900b ld a, $1 ld [rVBK], a ld hl, VTiles0 ld bc, $2000 xor a call ByteFill ld a, $0 ld [rVBK], a .asm_2900b ld hl, VBGMap0 ld bc, $0800 ld a, $7f call ByteFill ld hl, TradeGameBoyLZ ld de, $9310 call Decompress ld hl, TradeArrowGFX ld de, $8ed0 ld bc, $0010 ld a, BANK(TradeArrowGFX) call FarCopyBytes ld hl, TradeArrowGFX + $10 ld de, $8ee0 ld bc, $0010 ld a, BANK(TradeArrowGFX) call FarCopyBytes xor a ld [hSCX], a ld [hSCY], a ld a, $7 ld [hWX], a ld a, $90 ld [hWY], a callba Function4d7fd call EnableLCD call Function2982b ld a, [PlayerSDefLevel] ld hl, $c6fd ld de, VTiles0 call Function29491 ld a, [PlayerLightScreenCount] ld hl, $c72f ld de, $8310 call Function29491 ld a, [PlayerSDefLevel] ld de, PlayerAccLevel call Function294a9 ld a, [PlayerLightScreenCount] ld de, PlayerReflectCount call Function294a9 call Function297ed ret ; 29082 Function29082: ; 29082 ld a, [$cf63] bit 7, a jr nz, .asm_2909b call Function290a0 callab Function8cf69 ld hl, $cf65 inc [hl] call DelayFrame and a ret .asm_2909b call Functione51 scf ret ; 290a0 Function290a0: ; 290a0 ld a, [$cf63] ld e, a ld d, 0 ld hl, JumpTable290af add hl, de add hl, de ld a, [hli] ld h, [hl] ld l, a jp [hl] ; 290af JumpTable290af: ; 290af dw Function29114 dw Function2942e dw Function29461 dw Function29348 dw Function2937e dw Function29391 dw Function29129 dw Function291af dw Function291c4 dw Function291d9 dw Function2925d dw Function29220 dw Function2925d dw Function29229 dw Function2913c dw Function2925d dw Function291e8 dw Function291fd dw Function29211 dw Function29220 dw Function2925d dw Function29229 dw Function29701 dw Function2973c dw Function2975c dw Function2977f dw Function297a4 dw Function293a6 dw Function293b6 dw Function293d2 dw Function293de dw Function293ea dw Function2940c dw Function294e7 dw Function294f0 dw Function2961b dw Function2962c dw Function29879 dw Function29886 dw Function29649 dw Function29660 dw Function2926d dw Function29277 dw Function29123 dw Function29487 dw Function294f9 dw Function29502 dw Function2950c ; 2910f Function2910f: ; 2910f ld hl, $cf63 inc [hl] ret ; 29114 Function29114: ; 29114 ld hl, BattleEnded ld e, [hl] inc hl ld d, [hl] ld a, [de] ld [$cf63], a inc de ld [hl], d dec hl ld [hl], e ret ; 29123 Function29123: ; 29123 ld hl, $cf63 set 7, [hl] ret ; 29129 Function29129: ; 29129 ld a, $ed call Function292f6 ld a, [$c74c] ld [$d265], a xor a ld de, $2c58 ld b, $0 jr Function2914e Function2913c: ; 2913c ld a, $ee call Function292f6 ld a, [$c74d] ld [$d265], a ld a, $2 ld de, $4c94 ld b, $4 Function2914e: ; 2914e push bc push de push bc push de push af call DisableLCD callab Function8cf53 ld hl, $9874 ld bc, $000c ld a, $60 call ByteFill pop af call Function29281 xor a ld [hSCX], a ld a, $7 ld [hWX], a ld a, $70 ld [hWY], a call EnableLCD call Function2985a pop de ld a, $11 call Function3b2a ld hl, $000b add hl, bc pop bc ld [hl], b pop de ld a, $12 call Function3b2a ld hl, $000b add hl, bc pop bc ld [hl], b call WaitBGMap ld b, $1b call GetSGBLayout ld a, $e4 call DmgToCgbBGPals ld a, $d0 call Functioncf8 call Function2910f ld a, $5c ld [$cf64], a ret ; 291af Function291af: ; 291af call Function2981d ld a, [hSCX] add $2 ld [hSCX], a cp $50 ret nz ld a, $1 call Function29281 call Function2910f ret ; 291c4 Function291c4: ; 291c4 call Function2981d ld a, [hSCX] add $2 ld [hSCX], a cp $a0 ret nz ld a, $2 call Function29281 call Function2910f ret ; 291d9 Function291d9: ; 291d9 call Function2981d ld a, [hSCX] add $2 ld [hSCX], a and a ret nz call Function2910f ret ; 291e8 Function291e8: ; 291e8 call Function2981d ld a, [hSCX] sub $2 ld [hSCX], a cp $b0 ret nz ld a, $1 call Function29281 call Function2910f ret ; 291fd Function291fd: ; 291fd call Function2981d ld a, [hSCX] sub $2 ld [hSCX], a cp $60 ret nz xor a call Function29281 call Function2910f ret ; 29211 Function29211: ; 29211 call Function2981d ld a, [hSCX] sub $2 ld [hSCX], a and a ret nz call Function2910f ret ; 29220 Function29220: ; 29220 ld a, $80 ld [$cf64], a call Function2910f ret ; 29229 Function29229: ; 29229 call WhiteBGMap call ClearTileMap call ClearSprites call DisableLCD callab Function8cf53 ld hl, VBGMap0 ld bc, $0800 ld a, $7f call ByteFill xor a ld [hSCX], a ld a, $90 ld [hWY], a call EnableLCD call Function2982b call WaitBGMap call Function297ed call Function29114 ret ; 2925d Function2925d: ; 2925d call Function2981d ld hl, $cf64 ld a, [hl] and a jr z, .asm_29269 dec [hl] ret .asm_29269 call Function2910f ret ; 2926d Function2926d: ; 2926d call Function29114 ld de, SFX_GIVE_TRADEMON call PlaySFX ret ; 29277 Function29277: ; 29277 call Function29114 ld de, SFX_GET_TRADEMON call PlaySFX ret ; 29281 Function29281: ; 29281 and 3 ld e, a ld d, 0 ld hl, Jumptable_2928f add hl, de add hl, de ld a, [hli] ld h, [hl] ld l, a jp [hl] ; 2928f Jumptable_2928f: ; 2928f dw Function29297 dw Function292af dw Function292be dw Function29297 ; 29297 Function29297: ; 29297 call Function297cf ld hl, $c4e5 ld [hl], $5b inc hl ld bc, $000a ld a, $60 call ByteFill ld hl, $c4cb call Function292ec ret ; 292af Function292af: ; 292af call Function297cf ld hl, $c4dc ld bc, $0014 ld a, $60 call ByteFill ret ; 292be Function292be: ; 292be call Function297cf ld hl, $c4dc ld bc, $0011 ld a, $60 call ByteFill ld hl, $c4ed ld a, $5d ld [hl], a ld a, $61 ld de, $0014 ld c, $3 .asm_292d9 add hl, de ld [hl], a dec c jr nz, .asm_292d9 add hl, de ld a, $5f ld [hld], a ld a, $5b ld [hl], a ld hl, $c522 call Function292ec ret ; 292ec Function292ec: ; 292ec ld de, TradeGameBoyTilemap lb bc, 8, 6 call Function297db ret ; 292f6 Function292f6: ; 292f6 push af call WhiteBGMap call WaitTop ld a, $9c ld [$ffd7], a call ClearTileMap ld hl, TileMap ld bc, $0014 ld a, $7a call ByteFill ld hl, $c4b4 ld de, $c736 call PlaceString ld hl, $c741 ld de, NULL .asm_2931e ld a, [hli] cp $50 jr z, .asm_29326 dec de jr .asm_2931e .asm_29326 ld hl, $c4f0 add hl, de ld de, $c741 call PlaceString ld hl, $c4cf ld bc, $0006 pop af call ByteFill call WaitBGMap call WaitTop ld a, $98 ld [$ffd7], a call ClearTileMap ret ; 29348 Function29348: ; 29348 call ClearTileMap call WaitTop ld a, $a0 ld [hSCX], a call DelayFrame ld hl, $c4d0 ld de, Tilemap_298f7 lb bc, 3, 12 call Function297db call WaitBGMap ld b, $1b call GetSGBLayout ld a, $e4 call DmgToCgbBGPals ld de, $e4e4 call DmgToCgbObjPals ld de, SFX_POTION call PlaySFX call Function2910f ret ; 2937e Function2937e: ; 2937e ld a, [hSCX] and a jr z, .asm_29388 add $4 ld [hSCX], a ret .asm_29388 ld c, $50 call DelayFrames call Function29114 ret ; 29391 Function29391: ; 29391 ld a, [hSCX] cp $a0 jr z, .asm_2939c sub $4 ld [hSCX], a ret .asm_2939c call ClearTileMap xor a ld [hSCX], a call Function29114 ret ; 293a6 Function293a6: ; 293a6 ld a, $8f ld [hWX], a ld a, $88 ld [hSCX], a ld a, $50 ld [hWY], a call Function29114 ret ; 293b6 Function293b6: ; 293b6 ld a, [hWX] cp $7 jr z, .asm_293c7 sub $4 ld [hWX], a ld a, [hSCX] sub $4 ld [hSCX], a ret .asm_293c7 ld a, $7 ld [hWX], a xor a ld [hSCX], a call Function29114 ret ; 293d2 Function293d2: ; 293d2 ld a, $7 ld [hWX], a ld a, $50 ld [hWY], a call Function29114 ret ; 293de Function293de: ; 293de ld a, $7 ld [hWX], a ld a, $90 ld [hWY], a call Function29114 ret ; 293ea Function293ea: ; 293ea call WaitTop ld a, $9c ld [$ffd7], a call WaitBGMap ld a, $7 ld [hWX], a xor a ld [hWY], a call DelayFrame call WaitTop ld a, $98 ld [$ffd7], a call ClearTileMap call Function2910f ret ; 2940c Function2940c: ; 2940c ld a, [hWX] cp $a1 jr nc, .asm_29417 add $4 ld [hWX], a ret .asm_29417 ld a, $9c ld [$ffd7], a call WaitBGMap ld a, $7 ld [hWX], a ld a, $90 ld [hWY], a ld a, $98 ld [$ffd7], a call Function29114 ret ; 2942e Function2942e: ; 2942e call Function2951f ld a, [PlayerSDefLevel] ld [CurPartySpecies], a ld a, [$c6fd] ld [TempMonDVs], a ld a, [$c6fe] ld [$d124], a ld b, $1a call GetSGBLayout ld a, $e4 call DmgToCgbBGPals call Function294bb ld a, [PlayerSDefLevel] call Function381e jr c, .asm_2945d ld e, c ld d, b call PlayCryHeader .asm_2945d call Function29114 ret ; 29461 Function29461: ; 29461 call Function29549 ld a, [PlayerLightScreenCount] ld [CurPartySpecies], a ld a, [$c72f] ld [TempMonDVs], a ld a, [$c730] ld [$d124], a ld b, $1a call GetSGBLayout ld a, $e4 call DmgToCgbBGPals call Function294c0 call Function29114 ret ; 29487 Function29487: ; 29487 callba Function4d81e call Function29114 ret ; 29491 Function29491: ; 29491 push de push af ld a, $2d call Predef pop af ld [CurPartySpecies], a ld [CurSpecies], a call GetBaseData pop de ld a, $3c call Predef ret ; 294a9 Function294a9: ; 294a9 push de ld [$d265], a call GetPokemonName ld hl, StringBuffer1 pop de ld bc, $000b call CopyBytes ret ; 294bb Function294bb: ; 294bb ld de, VTiles0 jr Function294c3 Function294c0: ; 294c0 ld de, $8310 Function294c3: ; 294c3 call DelayFrame ld hl, VTiles2 ld bc, $0a31 call Request2bpp call WaitTop call Function297cf ld hl, $c4cf xor a ld [$ffad], a ld bc, $0707 ld a, $13 call Predef call WaitBGMap ret ; 294e7 Function294e7: ; 294e7 ld c, $50 call DelayFrames call Function29114 ret ; 294f0 Function294f0: ; 294f0 ld c, $28 call DelayFrames call Function29114 ret ; 294f9 Function294f9: ; 294f9 ld c, $60 call DelayFrames call Function29114 ret ; 29502 Function29502: ; 29502 call Function29516 ret nz ld c, $50 call DelayFrames ret ; 2950c Function2950c: ; 2950c call Function29516 ret nz ld c, $b4 call DelayFrames ret ; 29516 Function29516: ; 29516 call Function29114 ld a, [PlayerLightScreenCount] cp $fd ret ; 2951f Function2951f: ; 2951f ld de, PlayerSDefLevel ld a, [de] cp $fd jr z, Function295a1 call Function29573 ld de, PlayerSDefLevel call Function295e3 ld de, PlayerAccLevel call Function295ef ld a, [$c701] ld de, $c6f2 call Function295f6 ld de, PlayerScreens call Function29611 call Function295d8 ret ; 29549 Function29549: ; 29549 ld de, PlayerLightScreenCount ld a, [de] cp $fd jr z, Function295a1 call Function29573 ld de, PlayerLightScreenCount call Function295e3 ld de, PlayerReflectCount call Function295ef ld a, [$c733] ld de, $c724 call Function295f6 ld de, $c731 call Function29611 call Function295d8 ret ; 29573 Function29573: ; 29573 call WaitTop call Function297cf ld a, $9c ld [$ffd7], a ld hl, $c4a3 ld b, $6 ld c, $d call TextBox ld hl, $c4a4 ld de, String29591 call PlaceString ret ; 29591 String29591: ; 29591 db "─── №.", $4e db $4e db "OT/", $4e db $73, "№.@" ; 295a1 Function295a1: ; 295a1 call WaitTop call Function297cf ld a, $9c ld [$ffd7], a ld hl, $c4a3 ld b, $6 ld c, $d call TextBox ld hl, $c4cc ld de, String295c2 call PlaceString call Function295d8 ret ; 295c2 String295c2: ; 295c2 db "EGG", $4e db "OT/?????", $4e db $73, "№.?????@" ; 295d8 Function295d8: ; 295d8 call WaitBGMap call WaitTop ld a, $98 ld [$ffd7], a ret ; 295e3 Function295e3: ; 295e3 ld hl, $c4aa ld bc, $8103 call PrintNum ld [hl], $7f ret ; 295ef Function295ef: ; 295ef ld hl, $c4cc call PlaceString ret ; 295f6 Function295f6: ; 295f6 cp 3 jr c, .asm_295fb xor a .asm_295fb push af ld hl, $c4f7 call PlaceString inc bc pop af ld hl, Unknown_2960e ld d, 0 ld e, a add hl, de ld a, [hl] ld [bc], a ret ; 2960e Unknown_2960e: ; 2960e db " ", "♂", "♀" ; 29611 Function29611: ; 29611 ld hl, $c51f ld bc, $8205 call PrintNum ret ; 2961b Function2961b: ; 2961b ld de, $5458 ld a, $e call Function3b2a call Function29114 ld a, $20 ld [$cf64], a ret ; 2962c Function2962c: ; 2962c ld de, $5458 ld a, $e call Function3b2a ld hl, $000b add hl, bc ld [hl], $1 ld hl, $0007 add hl, bc ld [hl], $dc call Function29114 ld a, $38 ld [$cf64], a ret ; 29649 Function29649: ; 29649 ld de, $5458 ld a, $f call Function3b2a call Function29114 ld a, $10 ld [$cf64], a ld de, SFX_BALL_POOF call PlaySFX ret ; 29660 Function29660: ; 29660 ld a, $e4 call Functioncf8 ld de, $2858 ld a, $10 call Function3b2a call Function29114 ld a, $40 ld [$cf64], a ret ; 29676 ; no known jump sources Function29676: ; 29676 (a:5676) ld hl, $b add hl, bc ld e, [hl] ld d, 0 ld hl, Jumptable_29686 add hl, de add hl, de ld a, [hli] ld h, [hl] ld l, a jp [hl] ; 29686 ; no known jump sources Jumptable_29686: ; 29686 (a:5686) dw Function2969a dw Function296a4 dw Function296af dw Function296bd dw Function296cf dw Function296dd dw Function296f2 ; 2969a ; known jump sources: 2969a (a:569a), 296ac (a:56ac), 296ba (a:56ba), 296da (a:56da), 296e8 (a:56e8) Function29694: ; 29694 (a:5694) ld hl, $b add hl, bc inc [hl] ret ; no known jump sources Function2969a: ; 2969a (a:569a) call Function29694 ld hl, $c add hl, bc ld [hl], $80 ret ; no known jump sources Function296a4: ; 296a4 (a:56a4) ld hl, $c add hl, bc ld a, [hl] dec [hl] and a ret nz call Function29694 ; no known jump sources Function296af: ; 296af (a:56af) ld hl, $4 add hl, bc ld a, [hl] cp $94 jr nc, .asm_296ba inc [hl] ret .asm_296ba call Function29694 ; no known jump sources Function296bd: ; 296bd (a:56bd) ld hl, $5 add hl, bc ld a, [hl] cp $4c jr nc, .asm_296c8 inc [hl] ret .asm_296c8 ld hl, $0 add hl, bc ld [hl], $0 ret ; no known jump sources Function296cf: ; 296cf (a:56cf) ld hl, $5 add hl, bc ld a, [hl] cp $2c jr z, .asm_296da dec [hl] ret .asm_296da call Function29694 ; no known jump sources Function296dd: ; 296dd (a:56dd) ld hl, $4 add hl, bc ld a, [hl] cp $58 jr z, .asm_296e8 dec [hl] ret .asm_296e8 call Function29694 ld hl, $c add hl, bc ld [hl], $80 ret ; no known jump sources Function296f2: ; 296f2 (a:56f2) ld hl, $c add hl, bc ld a, [hl] dec [hl] and a ret nz ld hl, $0 add hl, bc ld [hl], $0 ret ; 29701 (a:5701) Function29701: ; 29701 ld a, [InLinkBattle] cp $1 jr z, .asm_29725 ld hl, UnknownText_0x29737 call PrintText ld c, $bd call DelayFrames ld hl, UnknownText_0x29732 call PrintText call Function297c9 ld c, $80 call DelayFrames call Function29114 ret .asm_29725 ld hl, UnknownText_0x29732 call PrintText call Function297c9 call Function29114 ret ; 29732 UnknownText_0x29732: ; 0x29732 ; was sent to @ . text_jump UnknownText_0x1bc6e9 db "@" ; 0x29737 UnknownText_0x29737: ; 0x29737 ; text_jump UnknownText_0x1bc701 db "@" ; 0x2973c Function2973c: ; 2973c ld hl, UnknownText_0x29752 call PrintText call Function297c9 ld hl, UnknownText_0x29757 call PrintText call Function297c9 call Function29114 ret ; 29752 UnknownText_0x29752: ; 0x29752 ; bids farewell to text_jump UnknownText_0x1bc703 db "@" ; 0x29757 UnknownText_0x29757: ; 0x29757 ; . text_jump UnknownText_0x1bc719 db "@" ; 0x2975c Function2975c: ; 2975c call WaitTop ld hl, $c568 ld bc, $00a0 ld a, $7f call ByteFill call WaitBGMap ld hl, UnknownText_0x2977a call PrintText call Function297c9 call Function29114 ret ; 2977a UnknownText_0x2977a: ; 0x2977a ; Take good care of @ . text_jump UnknownText_0x1bc71f db "@" ; 0x2977f Function2977f: ; 2977f ld hl, UnknownText_0x2979a call PrintText call Function297c9 ld hl, UnknownText_0x2979f call PrintText call Function297c9 ld c, $e call DelayFrames call Function29114 ret ; 2979a UnknownText_0x2979a: ; 0x2979a ; For @ 's @ , text_jump UnknownText_0x1bc739 db "@" ; 0x2979f UnknownText_0x2979f: ; 0x2979f ; sends @ . text_jump UnknownText_0x1bc74c db "@" ; 0x297a4 Function297a4: ; 297a4 ld hl, UnknownText_0x297bf call PrintText call Function297c9 ld hl, UnknownText_0x297c4 call PrintText call Function297c9 ld c, $e call DelayFrames call Function29114 ret ; 297bf UnknownText_0x297bf: ; 0x297bf ; will trade @ @ text_jump UnknownText_0x1bc75e db "@" ; 0x297c4 UnknownText_0x297c4: ; 0x297c4 ; for @ 's @ . text_jump UnknownText_0x1bc774 db "@" ; 0x297c9 Function297c9: ; 297c9 ld c, $50 call DelayFrames ret ; 297cf Function297cf: ; 297cf ld hl, TileMap ld bc, $0168 ld a, $7f call ByteFill ret ; 297db Function297db: ; 297db .asm_297db push bc push hl .asm_297dd ld a, [de] inc de ld [hli], a dec c jr nz, .asm_297dd pop hl ld bc, $0014 add hl, bc pop bc dec b jr nz, .asm_297db ret ; 297ed Function297ed: ; 297ed ld a, [hSGB] and a ld a, $e4 jr z, .asm_297f6 ld a, $f0 .asm_297f6 call Functioncf8 ld a, $e4 call DmgToCgbBGPals ret ; 297ff Function297ff: ; 297ff push de ld de, $c736 ld bc, $000b call CopyBytes pop hl ld de, $c741 ld bc, $000b call CopyBytes ret ; 29814 Function29814: ; 29814 ld a, [hl] ld [$c74c], a ld a, [de] ld [$c74d], a ret ; 2981d Function2981d: ; 2981d ld a, [$cf65] and $7 ret nz ld a, [rBGP] xor $3c call DmgToCgbBGPals ret ; 2982b Function2982b: ; 2982b call DelayFrame ld de, TradeBallGFX ld hl, $8620 lb bc, BANK(TradeBallGFX), $6 call Request2bpp ld de, TradePoofGFX ld hl, $8680 lb bc, BANK(TradePoofGFX), $c call Request2bpp ld de, TradeCableGFX ld hl, $8740 lb bc, BANK(TradeCableGFX), $4 call Request2bpp xor a ld hl, $c300 ld [hli], a ld [hl], $62 ret ; 2985a Function2985a: ; 2985a call DelayFrame ld e, $3 callab Function8e83f ld de, TradeBubbleGFX ld hl, $8720 lb bc, BANK(TradeBubbleGFX), $4 call Request2bpp xor a ld hl, $c300 ld [hli], a ld [hl], $62 ret ; 29879 Function29879: ; 29879 ld hl, $cf64 ld a, [hl] and a jr z, .asm_29882 dec [hl] ret .asm_29882 call Function29114 ret ; 29886 Function29886: ; 29886 ld hl, $cf64 ld a, [hl] and a jr z, .asm_2988f dec [hl] ret .asm_2988f call Function29114 ret ; 29893 Function29893: ; 29893 ; This function is unreferenced. ; It was meant for use in Japanese versions, so the ; constant used for copy length was changed by accident. ld hl, Unknown_298b5 ld a, [hli] ld [$c6d0], a ld de, $c6e7 ld c, 13 ; jp: 8 .asm_2989f ld a, [hli] ld [de], a inc de dec c jr nz, .asm_2989f ld a, [hli] ld [$c702], a ld de, $c719 ld c, 13 ; jp: 8 .asm_298ae ld a, [hli] ld [de], a inc de dec c jr nz, .asm_298ae ret ; 298b5 Unknown_298b5: ; 298b5 db $03, "ゲーフり@@", $23, $01 ; GAME FREAK db $06, "クりーチャ@", $56, $04 ; Creatures Inc. ; 298c7 TradeGameBoyTilemap: ; 298c7 ; 6x8 db $31, $32, $32, $32, $32, $33 db $34, $35, $36, $36, $37, $38 db $34, $39, $3a, $3a, $3b, $38 db $3c, $3d, $3e, $3e, $3f, $40 db $41, $42, $43, $43, $44, $45 db $46, $47, $43, $48, $49, $4a db $41, $43, $4b, $4c, $4d, $4e db $4f, $50, $50, $50, $51, $52 ; 297f7 Tilemap_298f7: ; 297f7 ; 12x3 db $43, $55, $56, $53, $53, $53, $53, $53, $53, $53, $53, $53 db $43, $57, $58, $54, $54, $54, $54, $54, $54, $54, $54, $54 db $43, $59, $5a, $43, $43, $43, $43, $43, $43, $43, $43, $43 ; 2991b TradeArrowGFX: INCBIN "gfx/trade/arrow.2bpp" TradeCableGFX: INCBIN "gfx/trade/cable.2bpp" TradeBubbleGFX: INCBIN "gfx/trade/bubble.2bpp" TradeGameBoyLZ: INCBIN "gfx/trade/game_boy.2bpp.lz" TradeBallGFX: INCBIN "gfx/trade/ball.2bpp" TradePoofGFX: INCBIN "gfx/trade/poof.2bpp" Function29bfb: ; 29bfb ld hl, PartySpecies ld b, $6 .asm_29c00 ld a, [hli] cp $ff jr z, .asm_29c0c cp 151 + 1 jr nc, .asm_29c42 dec b jr nz, .asm_29c00 .asm_29c0c ld a, [PartyCount] ld b, a ld hl, PartyMon1Item .asm_29c13 push hl push bc ld d, [hl] callba ItemIsMail pop bc pop hl jr c, .asm_29c5e ld de, $0030 add hl, de dec b jr nz, .asm_29c13 ld hl, PartyMon1Move1 ld a, [PartyCount] ld b, a .asm_29c2e ld c, $4 .asm_29c30 ld a, [hli] cp STRUGGLE + 1 jr nc, .asm_29c4c dec c jr nz, .asm_29c30 ld de, $002c add hl, de dec b jr nz, .asm_29c2e xor a jr .asm_29c63 .asm_29c42 ld [$d265], a call GetPokemonName ld a, $1 jr .asm_29c63 .asm_29c4c push bc ld [$d265], a call GetMoveName call CopyName1 pop bc call Function29c67 ld a, $2 jr .asm_29c63 .asm_29c5e call Function29c67 ld a, $3 .asm_29c63 ld [ScriptVar], a ret ; 29c67 Function29c67: ; 29c67 ld a, [PartyCount] sub b ld c, a inc c ld b, $0 ld hl, PartyCount add hl, bc ld a, [hl] ld [$d265], a call GetPokemonName ret ; 29c7b Function29c7b: ; 29c7b ld c, $a call DelayFrames ld a, $4 call Function29f17 ld c, $28 call DelayFrames xor a ld [$ff9e], a inc a ld [InLinkBattle], a ret ; 29c92 Function29c92: ; 29c92 ld c, $3 call DelayFrames ld a, $ff ld [$ffcb], a xor a ld [rSB], a ld [hSerialReceive], a ld a, $1 ld [rSC], a ld a, $81 ld [rSC], a ld c, $3 call DelayFrames xor a ld [rSB], a ld [hSerialReceive], a ld a, $0 ld [rSC], a ld a, $80 ld [rSC], a ld c, $3 call DelayFrames xor a ld [rSB], a ld [hSerialReceive], a ld [rSC], a ld c, $3 call DelayFrames ld a, $ff ld [$ffcb], a ld a, [rIF] push af xor a ld [rIF], a ld a, $f ld [rIE], a pop af ld [rIF], a ld hl, $cf5b xor a ld [hli], a ld [hl], a ld [$ff9e], a ld [InLinkBattle], a ret ; 29ce8 Function29ce8: ; 29ce8 ld a, $1 ld [$cf56], a ld [$d265], a ret ; 29cf1 Function29cf1: ; 29cf1 ld a, $2 ld [$cf56], a ld [$d265], a ret ; 29cfa Function29cfa: ; 29cfa ld a, $2 ld [rSB], a xor a ld [hSerialReceive], a ld a, $0 ld [rSC], a ld a, $80 ld [rSC], a xor a ld [$cf56], a ld [$d265], a ret ; 29d11 Function29d11: ; 29d11 ld a, [$cf56] and a jr z, .asm_29d2f ld a, $2 ld [rSB], a xor a ld [hSerialReceive], a ld a, $0 ld [rSC], a ld a, $80 ld [rSC], a call DelayFrame call DelayFrame call DelayFrame .asm_29d2f ld a, $2 ld [$cf5c], a ld a, $ff ld [$cf5b], a .asm_29d39 ld a, [$ffcb] cp $2 jr z, .asm_29d79 cp $1 jr z, .asm_29d79 ld a, $ff ld [$ffcb], a ld a, $2 ld [rSB], a xor a ld [hSerialReceive], a ld a, $0 ld [rSC], a ld a, $80 ld [rSC], a ld a, [$cf5b] dec a ld [$cf5b], a jr nz, .asm_29d68 ld a, [$cf5c] dec a ld [$cf5c], a jr z, .asm_29d8d .asm_29d68 ld a, $1 ld [rSB], a ld a, $1 ld [rSC], a ld a, $81 ld [rSC], a call DelayFrame jr .asm_29d39 .asm_29d79 call Function908 call DelayFrame call Function908 ld c, $32 call DelayFrames ld a, $1 ld [ScriptVar], a ret .asm_29d8d xor a ld [ScriptVar], a ret ; 29d92 Function29d92: ; 29d92 ld a, $1 ld [$cf56], a ld hl, $cf5b ld a, $3 ld [hli], a xor a ld [hl], a call WaitBGMap ld a, $2 ld [$ff9e], a call DelayFrame call DelayFrame call Function29e0c xor a ld [$ff9e], a ld a, [ScriptVar] and a ret nz jp Function29f04 ; 29dba Function29dba: ; 29dba ld a, $5 ld [$cf56], a ld hl, $cf5b ld a, $3 ld [hli], a xor a ld [hl], a call WaitBGMap ld a, $2 ld [$ff9e], a call DelayFrame call DelayFrame call Function29e0c ld a, [ScriptVar] and a jr z, .asm_29e08 ld bc, rIE .asm_29de0 dec bc ld a, b or c jr nz, .asm_29de0 ld a, [$cf51] cp $5 jr nz, .asm_29e03 ld a, $6 ld [$cf56], a ld hl, $cf5b ld a, $1 ld [hli], a ld [hl], $32 call Function29e0c ld a, [$cf51] cp $6 jr z, .asm_29e08 .asm_29e03 xor a ld [ScriptVar], a ret .asm_29e08 xor a ld [$ff9e], a ret ; 29e0c Function29e0c: ; 29e0c xor a ld [$ffca], a ld a, [$cf5b] ld h, a ld a, [$cf5c] ld l, a push hl call Function29e3b pop hl jr nz, .asm_29e2f call Function29e47 call Function29e53 call Function29e3b jr nz, .asm_29e2f call Function29e47 xor a jr .asm_29e31 .asm_29e2f ld a, $1 .asm_29e31 ld [ScriptVar], a ld hl, $cf5b xor a ld [hli], a ld [hl], a ret ; 29e3b Function29e3b: ; 29e3b call Function87d ld hl, $cf5b ld a, [hli] inc a ret nz ld a, [hl] inc a ret ; 29e47 Function29e47: ; 29e47 ld b, $a .asm_29e49 call DelayFrame call Function908 dec b jr nz, .asm_29e49 ret ; 29e53 Function29e53: ; 29e53 dec h srl h rr l srl h rr l inc h ld a, h ld [$cf5b], a ld a, l ld [$cf5c], a ret ; 29e66 Function29e66: ; 29e66 ld a, [$d265] push af callba Function14ab2 ld a, $1 jr nc, .asm_29e75 xor a .asm_29e75 ld [ScriptVar], a ld c, $1e call DelayFrames pop af ld [$d265], a ret ; 29e82 Function29e82: ; 29e82 ld a, [$d265] call Function29f17 push af call Function908 call DelayFrame call Function908 pop af ld b, a ld a, [$d265] cp b jr nz, .asm_29eaa ld a, [$d265] inc a ld [InLinkBattle], a xor a ld [$ff9e], a ld a, $1 ld [ScriptVar], a ret .asm_29eaa xor a ld [ScriptVar], a ret ; 29eaf Function29eaf: ; 29eaf ld a, $1 ld [InLinkBattle], a call Function2ed3 callab Function28000 call Function2ee4 xor a ld [$ff9e], a ret ; 29ec4 Function29ec4: ; 29ec4 ld a, $2 ld [InLinkBattle], a call Function2ed3 callab Function28000 call Function2ee4 xor a ld [$ff9e], a ret ; 29ed9 Function29ed9: ; 29ed9 ld a, $3 ld [InLinkBattle], a call Function2ed3 callab Function28000 call Function2ee4 xor a ld [$ff9e], a ret ; 29eee Function29eee: ; 29eee xor a ld [InLinkBattle], a ld c, $3 call DelayFrames jp Function29f04 ; 29efa Function29efa: ; 29efa ld c, $28 call DelayFrames ld a, $e jp Function29f17 ; 29f04 Function29f04: ; 29f04 ld c, $3 call DelayFrames ld a, $ff ld [$ffcb], a ld a, $2 ld [rSB], a xor a ld [hSerialReceive], a ld [rSC], a ret ; 29f17 Function29f17: ; 29f17 add $d0 ld [$cf56], a ld [$cf57], a ld a, $2 ld [$ff9e], a call DelayFrame call DelayFrame .asm_29f29 call Function83b ld a, [$cf51] ld b, a and $f0 cp $d0 jr z, .asm_29f40 ld a, [$cf52] ld b, a and $f0 cp $d0 jr nz, .asm_29f29 .asm_29f40 xor a ld [$ff9e], a ld a, b and $f ret ; 29f47 Function29f47: ; 29f47 ld a, [$ffcb] cp $1 ld a, $1 jr z, .asm_29f50 dec a .asm_29f50 ld [ScriptVar], a ret ; 29f54 GFX_29f54: ; 29f54 INCBIN "baserom.gbc", $29f54, $29fe4 - $29f54 ; 29fe4 Function29fe4: ; 29fe4 ld a, $0 call GetSRAMBank ld d, $0 ld b, $2 ld a, $3 call Predef call CloseSRAM ld a, c and a ret ; 29ff8 Function29ff8: ; 29ff8 call Function2a205 jr c, .asm_2a006 ld hl, $d25a xor a ld [hli], a ld [hli], a ld [hl], a jr .asm_2a011 .asm_2a006 inc hl inc hl ld de, $d25a ld bc, $3 call CopyBytes .asm_2a011 call Function2a21d ld a, $0 jr nc, .asm_2a01b inc hl inc hl ld a, [hl] .asm_2a01b ld [$d25d], a ret Function2a01f: ; 2a01f ld hl, TileMap ld bc, $0168 xor a call ByteFill ld a, e and a jr nz, .asm_2a043 ld de, TileMap ld hl, WildMons1 call Function2a052 ld hl, WildMons2 call Function2a06e call Function2a0b7 call Function2a0cf ret .asm_2a043 ld de, TileMap ld hl, WildMons3 call Function2a052 ld hl, WildMons4 jp Function2a06e ; 2a052 Function2a052: ; 2a052 .asm_2a052 ld a, [hl] cp $ff ret z push hl ld a, [hli] ld b, a ld a, [hli] ld c, a inc hl inc hl inc hl ld a, $15 call Function2a088 jr nc, .asm_2a067 ld [de], a inc de .asm_2a067 pop hl ld bc, $002f add hl, bc jr .asm_2a052 ; 2a06e Function2a06e: ; 2a06e .asm_2a06e ld a, [hl] cp $ff ret z push hl ld a, [hli] ld b, a ld a, [hli] ld c, a inc hl ld a, $3 call Function2a088 jr nc, .asm_2a081 ld [de], a inc de .asm_2a081 pop hl ld bc, $0009 add hl, bc jr .asm_2a06e ; 2a088 Function2a088: ; 2a088 inc hl .asm_2a089 push af ld a, [$d265] cp [hl] jr z, .asm_2a098 inc hl inc hl pop af dec a jr nz, .asm_2a089 and a ret .asm_2a098 pop af jp Function2a09c ; 2a09c Function2a09c: ; 2a09c push de call GetWorldMapLocation ld c, a ld hl, TileMap ld de, $0168 .asm_2a0a7 ld a, [hli] cp c jr z, .asm_2a0b4 dec de ld a, e or d jr nz, .asm_2a0a7 ld a, c pop de scf ret .asm_2a0b4 pop de and a ret ; 2a0b7 Function2a0b7: ; 2a0b7 ld a, [RoamMon1Species] ld b, a ld a, [$d265] cp b ret nz ld a, [RoamMon1MapGroup] ld b, a ld a, [RoamMon1MapNumber] ld c, a call Function2a09c ret nc ld [de], a inc de ret ; 2a0cf Function2a0cf: ; 2a0cf ld a, [RoamMon2Species] ld b, a ld a, [$d265] cp b ret nz ld a, [RoamMon2MapGroup] ld b, a ld a, [RoamMon2MapNumber] ld c, a call Function2a09c ret nc ld [de], a inc de ret ; 2a0e7 Function2a0e7:: ; 2a0e7 ; Try to trigger a wild encounter. call Function2a103 jr nc, .asm_2a0f8 call Function2a14f jr nz, .asm_2a0f8 call Function2a1df jr nc, .asm_2a0f8 xor a ret .asm_2a0f8 xor a ld [$d22e], a ld [BattleType], a ld a, 1 and a ret ; 2a103 Function2a103: ; 2a103 call Function2a111 call Function2a124 call Function2a138 call Random cp b ret ; 2a111 Function2a111: ; 2a111 ld hl, $d25a call Function1852 ld a, 3 jr z, .asm_2a11e ld a, [TimeOfDay] .asm_2a11e ld c, a ld b, 0 add hl, bc ld b, [hl] ret ; 2a124 Function2a124:: ; 2a124 ; Pokemon March and Ruins of Alph signal double encounter rate. ; Pokemon Lullaby halves encounter rate. ld a, [CurMusic] cp MUSIC_POKEMON_MARCH jr z, .asm_2a135 cp MUSIC_RUINS_OF_ALPH_RADIO jr z, .asm_2a135 cp MUSIC_POKEMON_LULLABY ret nz srl b ret .asm_2a135 sla b ret ; 2a138 Function2a138:: ; 2a138 ; Cleanse Tag halves encounter rate. ld hl, PartyMon1Item ld de, PartyMon2 - PartyMon1 ld a, [PartyCount] ld c, a .next ld a, [hl] cp CLEANSE_TAG jr z, .asm_2a14c add hl, de dec c jr nz, .next ret .asm_2a14c srl b ret ; 2a14f Function2a14f: ; 2a14f call Function2a200 jp nc, .asm_2a1c1 call Function2a2ce jp c, .asm_2a1c9 inc hl inc hl inc hl call Function1852 ld de, Unknown_2a1d9 jr z, .asm_2a174 inc hl inc hl ld a, [TimeOfDay] ld bc, $e call AddNTimes ld de, Unknown_2a1cb .asm_2a174 push hl .asm_2a175 call Random cp 100 jr nc, .asm_2a175 inc a ld b, a ld h, d ld l, e .asm_2a180 ld a, [hli] cp b jr nc, .asm_2a187 inc hl jr .asm_2a180 .asm_2a187 ld c, [hl] ld b, 0 pop hl add hl, bc ld a, [hli] ld b, a call Function1852 jr nz, .asm_2a1aa call Random cp 89 jr c, .asm_2a1aa inc b cp 165 jr c, .asm_2a1aa inc b cp 216 jr c, .asm_2a1aa inc b cp 242 jr c, .asm_2a1aa inc b .asm_2a1aa ld a, b ld [CurPartyLevel], a ld b, [hl] call Function2a4a0 jr c, .asm_2a1c1 ld a, b cp UNOWN jr nz, .asm_2a1bf ld a, [UnlockedUnowns] and a jr z, .asm_2a1c1 .asm_2a1bf jr .asm_2a1c5 .asm_2a1c1 ld a, 1 and a ret .asm_2a1c5 ld a, b ld [$d22e], a .asm_2a1c9 xor a ret ; 2a1cb Unknown_2a1cb: ; 2a1cb db 30, $0 db 60, $2 db 80, $4 db 90, $6 db 95, $8 db 99, $a db 100, $c ; 2a1d9 Unknown_2a1d9: ; 2a1d9 db 60, $0 db 90, $2 db 100, $4 ; 2a1df Function2a1df:: ; 2a1df ld a, [$dca1] and a jr z, .asm_2a1fe ld hl, PartyMon1HP ld bc, PartyMon2 - PartyMon1 - 1 .asm_2a1eb ld a, [hli] or [hl] jr nz, .asm_2a1f2 add hl, bc jr .asm_2a1eb .asm_2a1f2 ; to PartyMonLevel dec hl dec hl dec hl dec hl ld a, [CurPartyLevel] cp [hl] jr nc, .asm_2a1fe and a ret .asm_2a1fe scf ret ; 2a200 Function2a200: ; 2a200 call Function1852 jr z, Function2a21d Function2a205: ; 2a205 ld hl, WildMons5 ld bc, $002f call asm_2a23d ret c ld hl, WildMons1 ld de, WildMons3 call asm_2a235 ld bc, $002f jr asm_2a27a Function2a21d: ; 2a21d ld hl, WildMons6 ld bc, $0009 call asm_2a23d ret c ld hl, WildMons2 ld de, WildMons4 call asm_2a235 ld bc, $0009 jr asm_2a27a asm_2a235 call IsInJohto and a ret z ld h, d ld l, e ret asm_2a23d call Function2a27f push hl ld hl, $dc20 bit 2, [hl] pop hl jr z, .asm_2a25c ld a, [$dfcc] cp d jr nz, .asm_2a25c ld a, [$dfcd] cp e jr nz, .asm_2a25c call Function2a288 jr nc, asm_2a278 scf ret .asm_2a25c push hl ld hl, $dc20 bit 3, [hl] pop hl jr z, asm_2a278 ld a, [$dc5a] cp d jr nz, asm_2a278 ld a, [$dc5b] cp e jr nz, asm_2a278 call Function2a288 jr nc, asm_2a278 scf ret asm_2a278 and a ret asm_2a27a call Function2a27f jr Function2a288 ; 2a27f Function2a27f: ; 2a27f ld a, [MapGroup] ld d, a ld a, [MapNumber] ld e, a ret ; 2a288 Function2a288: ; 2a288 push hl ld a, [hl] inc a jr z, .asm_2a29a ld a, d cp [hl] jr nz, .asm_2a296 inc hl ld a, e cp [hl] jr z, .asm_2a29d .asm_2a296 pop hl add hl, bc jr Function2a288 .asm_2a29a pop hl and a ret .asm_2a29d pop hl scf ret ; 2a2a0 InitRoamMons: ; 2a2a0 ; initialize RoamMon structs ; species ld a, RAIKOU ld [RoamMon1Species], a ld a, ENTEI ld [RoamMon2Species], a ; ld a, SUICUNE ; ld [RoamMon3Species], a ; level ld a, 40 ld [RoamMon1Level], a ld [RoamMon2Level], a ; ld [RoamMon3Level], a ; raikou starting map ld a, GROUP_ROUTE_42 ld [RoamMon1MapGroup], a ld a, MAP_ROUTE_42 ld [RoamMon1MapNumber], a ; entei starting map ld a, GROUP_ROUTE_37 ld [RoamMon2MapGroup], a ld a, MAP_ROUTE_37 ld [RoamMon2MapNumber], a ; suicune starting map ; ld a, GROUP_ROUTE_38 ; ld [RoamMon3MapGroup], a ; ld a, MAP_ROUTE_38 ; ld [RoamMon3MapNumber], a ; hp xor a ; generate new stats ld [RoamMon1HP], a ld [RoamMon2HP], a ; ld [RoamMon3HP], a ret ; 2a2ce Function2a2ce: ; 2a2ce push hl call Function1852 jr z, .asm_2a30a call Function2a27f call Random cp 100 jr nc, .asm_2a30a and 3 jr z, .asm_2a30a dec a ld hl, RoamMon1MapGroup ld c, a ld b, 0 ld a, 7 call AddNTimes ld a, d cp [hl] jr nz, .asm_2a30a inc hl ld a, e cp [hl] jr nz, .asm_2a30a dec hl dec hl dec hl ld a, [hli] ld [$d22e], a ld a, [hl] ld [CurPartyLevel], a ld a, BATTLETYPE_ROAMING ld [BattleType], a pop hl scf ret .asm_2a30a pop hl and a ret ; 2a30d Function2a30d: ; 2a30d ld a, [RoamMon1MapGroup] cp $ff jr z, .asm_2a324 ld b, a ld a, [RoamMon1MapNumber] ld c, a call Function2a355 ld a, b ld [RoamMon1MapGroup], a ld a, c ld [RoamMon1MapNumber], a .asm_2a324 ld a, [RoamMon2MapGroup] cp $ff jr z, .asm_2a33b ld b, a ld a, [RoamMon2MapNumber] ld c, a call Function2a355 ld a, b ld [RoamMon2MapGroup], a ld a, c ld [RoamMon2MapNumber], a .asm_2a33b ld a, [RoamMon3MapGroup] cp $ff jr z, .asm_2a352 ld b, a ld a, [RoamMon3MapNumber] ld c, a call Function2a355 ld a, b ld [RoamMon3MapGroup], a ld a, c ld [RoamMon3MapNumber], a .asm_2a352 jp Function2a3f6 ; 2a355 Function2a355: ; 2a355 ld hl, RoamMaps .asm_2a358 ld a, [hl] cp $ff ret z ld a, b cp [hl] jr nz, .asm_2a365 inc hl ld a, c cp [hl] jr z, .asm_2a36b .asm_2a365 ld a, [hli] and a jr nz, .asm_2a365 jr .asm_2a358 .asm_2a36b inc hl ld d, h ld e, l .asm_2a36e ld h, d ld l, e call Random and $1f jr z, Function2a3cd and 3 cp [hl] jr nc, .asm_2a36e inc hl ld c, a ld b, $0 add hl, bc add hl, bc ld a, [$dfe7] cp [hl] jr nz, .asm_2a390 inc hl ld a, [$dfe6] cp [hl] jr z, .asm_2a36e dec hl .asm_2a390 ld a, [hli] ld b, a ld c, [hl] ret Function2a394: ; 2a394 ld a, [RoamMon1MapGroup] cp $ff jr z, .asm_2a3a6 call Function2a3cd ld a, b ld [RoamMon1MapGroup], a ld a, c ld [RoamMon1MapNumber], a .asm_2a3a6 ld a, [RoamMon2MapGroup] cp $ff jr z, .asm_2a3b8 call Function2a3cd ld a, b ld [RoamMon2MapGroup], a ld a, c ld [RoamMon2MapNumber], a .asm_2a3b8 ld a, [RoamMon3MapGroup] cp $ff jr z, .asm_2a3ca call Function2a3cd ld a, b ld [RoamMon3MapGroup], a ld a, c ld [RoamMon3MapNumber], a .asm_2a3ca jp Function2a3f6 Function2a3cd: ; 2a3cd .asm_2a3cd ld hl, RoamMaps .asm_2a3d0 call Random and $f cp $10 jr nc, .asm_2a3d0 inc a ld b, a .asm_2a3db dec b jr z, .asm_2a3e4 .asm_2a3de ld a, [hli] and a jr nz, .asm_2a3de jr .asm_2a3db .asm_2a3e4 ld a, [MapGroup] cp [hl] jr nz, .asm_2a3f2 inc hl ld a, [MapNumber] cp [hl] jr z, .asm_2a3cd dec hl .asm_2a3f2 ld a, [hli] ld b, a ld c, [hl] ret ; 2a3f6 Function2a3f6: ; 2a3f6 ld a, [$dfe4] ld [$dfe6], a ld a, [$dfe5] ld [$dfe7], a ld a, [MapNumber] ld [$dfe4], a ld a, [MapGroup] ld [$dfe5], a ret ; 2a40f RoamMaps: ; 2a40f ; Maps that roaming monsters can be on, ; and possible maps they can jump to. ; Notably missing are Route 40 and ; Route 41, which are water routes. roam_map ROUTE_29, 2, ROUTE_30, ROUTE_46 roam_map ROUTE_30, 2, ROUTE_29, ROUTE_31 roam_map ROUTE_31, 3, ROUTE_30, ROUTE_32, ROUTE_36 roam_map ROUTE_32, 3, ROUTE_36, ROUTE_31, ROUTE_33 roam_map ROUTE_33, 2, ROUTE_32, ROUTE_34 roam_map ROUTE_34, 2, ROUTE_33, ROUTE_35 roam_map ROUTE_35, 2, ROUTE_34, ROUTE_36 roam_map ROUTE_36, 4, ROUTE_35, ROUTE_31, ROUTE_32, ROUTE_37 roam_map ROUTE_37, 3, ROUTE_36, ROUTE_38, ROUTE_42 roam_map ROUTE_38, 3, ROUTE_37, ROUTE_39, ROUTE_42 roam_map ROUTE_39, 1, ROUTE_38 roam_map ROUTE_42, 4, ROUTE_43, ROUTE_44, ROUTE_37, ROUTE_38 roam_map ROUTE_43, 2, ROUTE_42, ROUTE_44 roam_map ROUTE_44, 3, ROUTE_42, ROUTE_43, ROUTE_45 roam_map ROUTE_45, 2, ROUTE_44, ROUTE_46 roam_map ROUTE_46, 2, ROUTE_45, ROUTE_29 db $ff ; 2a4a0 Function2a4a0: ; 2a4a0 and a jr z, .asm_2a4a9 cp $fc jr nc, .asm_2a4a9 and a ret .asm_2a4a9 scf ret ; 2a4ab Function2a4ab: ; 2a4ab callba Function90439 ld d, b ld e, c ld hl, WildMons1 ld bc, $002f call Function2a288 jr c, .asm_2a4c6 ld hl, WildMons3 call Function2a288 jr nc, .asm_2a514 .asm_2a4c6 push hl ld bc, $000d add hl, bc ld a, [TimeOfDay] ld bc, $000e call AddNTimes .asm_2a4d4 call Random and $3 jr z, .asm_2a4d4 dec a ld c, a ld b, $0 add hl, bc add hl, bc inc hl ld c, [hl] pop hl ld de, $0005 add hl, de inc hl ld b, $4 .asm_2a4eb ld a, [hli] cp c jr z, .asm_2a514 inc hl dec b jr nz, .asm_2a4eb push bc dec c ld a, c call CheckSeenMon pop bc jr nz, .asm_2a514 ld de, StringBuffer1 call CopyName1 ld a, c ld [$d265], a call GetPokemonName ld hl, UnknownText_0x2a51a call PrintText xor a ld [ScriptVar], a ret .asm_2a514 ld a, $1 ld [ScriptVar], a ret ; 2a51a UnknownText_0x2a51a: ; 0x2a51a ; I just saw some rare @ in @ . I'll call you if I see another rare #MON, OK? text_jump UnknownText_0x1bd34b db "@" ; 0x2a51f Function2a51f: ; 2a51f callba Function90439 ld d, b ld e, c ld hl, WildMons1 ld bc, $002f call Function2a288 jr c, .asm_2a538 ld hl, WildMons3 call Function2a288 .asm_2a538 ld bc, $0005 add hl, bc ld a, [TimeOfDay] inc a ld bc, $000e .asm_2a543 dec a jr z, .asm_2a549 add hl, bc jr .asm_2a543 .asm_2a549 call Random and $3 ld c, a ld b, $0 add hl, bc add hl, bc inc hl ld a, [hl] ld [$d265], a call GetPokemonName ld hl, StringBuffer1 ld de, StringBuffer4 ld bc, $000b jp CopyBytes ; 2a567 Function2a567: ; 2a567 callba Function90439 ld hl, $5999 ld a, d dec a ld c, a ld b, $0 add hl, bc add hl, bc ld a, $e call GetFarHalfword .asm_2a57c dec e jr z, .asm_2a58b .asm_2a57f ld a, $e call GetFarByte inc hl cp $ff jr nz, .asm_2a57f jr .asm_2a57c .asm_2a58b ld a, $e call GetFarByte inc hl cp $50 jr nz, .asm_2a58b ld a, $e call GetFarByte inc hl ld bc, $0002 cp $0 jr z, .asm_2a5b3 ld bc, $0006 cp $1 jr z, .asm_2a5b3 ld bc, $0003 cp $2 jr z, .asm_2a5b3 ld bc, $0007 .asm_2a5b3 ld e, $0 push hl .asm_2a5b6 inc e add hl, bc ld a, $e call GetFarByte cp $ff jr nz, .asm_2a5b6 pop hl .asm_2a5c2 call Random and $7 cp e jr nc, .asm_2a5c2 inc a .asm_2a5cb dec a jr z, .asm_2a5d1 add hl, bc jr .asm_2a5cb .asm_2a5d1 inc hl ld a, $e call GetFarByte ld [$d265], a call GetPokemonName ld hl, StringBuffer1 ld de, StringBuffer4 ld bc, $000b jp CopyBytes ; 2a5e9 WildMons1: ; 0x2a5e9 INCLUDE "stats/wild/johto_grass.asm" WildMons2: ; 0x2b11d INCLUDE "stats/wild/johto_water.asm" WildMons3: ; 0x2b274 INCLUDE "stats/wild/kanto_grass.asm" WildMons4: ; 0x2b7f7 INCLUDE "stats/wild/kanto_water.asm" WildMons5: ; 0x2b8d0 INCLUDE "stats/wild/swarm_grass.asm" WildMons6: ; 0x2b92f INCLUDE "stats/wild/swarm_water.asm" Function2b930: ; 2b930 callba UpdateEnemyMonInParty ld hl, PartyMon1HP call Function2b995 push bc ld hl, OTPartyMon1HP call Function2b995 ld a, c pop bc cp c jr z, .asm_2b94c jr c, .asm_2b97f jr .asm_2b976 .asm_2b94c call Function2b9e1 jr z, .asm_2b98a ld a, e cp $1 jr z, .asm_2b976 cp $2 jr z, .asm_2b97f ld hl, PartyMon1HP call Function2b9a6 push de ld hl, OTPartyMon1HP call Function2b9a6 pop hl ld a, d cp h jr c, .asm_2b976 jr z, .asm_2b970 jr .asm_2b97f .asm_2b970 ld a, e cp l jr z, .asm_2b98a jr nc, .asm_2b97f .asm_2b976 ld a, [$d0ee] and $f0 ld [$d0ee], a ret .asm_2b97f ld a, [$d0ee] and $f0 add $1 ld [$d0ee], a ret .asm_2b98a ld a, [$d0ee] and $f0 add $2 ld [$d0ee], a ret ; 2b995 Function2b995: ; 2b995 ld c, $0 ld b, $3 ld de, $002f .asm_2b99c ld a, [hli] or [hl] jr nz, .asm_2b9a1 inc c .asm_2b9a1 add hl, de dec b jr nz, .asm_2b99c ret ; 2b9a6 Function2b9a6: ; 2b9a6 ld de, $0000 ld c, $3 .asm_2b9ab ld a, [hli] or [hl] jr z, .asm_2b9d7 dec hl xor a ld [hProduct], a ld a, [hli] ld [hMultiplicand], a ld a, [hli] ld [$ffb5], a xor a ld [$ffb6], a ld a, [hli] ld b, a ld a, [hld] srl b rr a srl b rr a ld [hMultiplier], a ld b, $4 call Divide ld a, [$ffb6] add e ld e, a ld a, [$ffb5] adc d ld d, a dec hl .asm_2b9d7 push de ld de, $002f add hl, de pop de dec c jr nz, .asm_2b9ab ret ; 2b9e1 Function2b9e1: ; 2b9e1 ld hl, PartyMon1HP call Function2ba01 jr nz, .asm_2b9f2 ld hl, OTPartyMon1HP call Function2ba01 ld e, $1 ret .asm_2b9f2 ld hl, OTPartyMon1HP call Function2ba01 ld e, $0 ret nz ld e, $2 ld a, $1 and a ret ; 2ba01 Function2ba01: ; 2ba01 ld d, $3 .asm_2ba03 ld a, [hli] ld b, a ld a, [hli] ld c, a or b jr z, .asm_2ba10 ld a, [hli] cp b ret nz ld a, [hld] cp c ret nz .asm_2ba10 push de ld de, $002e add hl, de pop de dec d jr nz, .asm_2ba03 ret ; 2ba1a ChrisBackpic: ; 2ba1a INCBIN "gfx/misc/player.6x6.2bpp.lz" ; 2bbaa DudeBackpic: ; 2bbaa INCBIN "gfx/misc/dude.6x6.2bpp.lz" ; 2bcea SECTION "bankB", ROMX, BANK[$B] Function2c000: ; 2c000 ld a, $e4 ld [rOBP0], a call Function2c165 call Function2c01c ld a, [IsInBattle] dec a ret z jp Function2c03a ; 2c012 Function2c012: ; 2c012 ld a, $e4 ld [rOBP0], a call Function2c165 jp Function2c03a ; 2c01c Function2c01c: ; 2c01c call Function2c0ad ld hl, PartyMon1HP ld de, PartyCount call Function2c059 ld a, $60 ld hl, $cfc4 ld [hli], a ld [hl], a ld a, $8 ld [$d003], a ld hl, Sprites jp Function2c143 ; 2c03a Function2c03a: ; 2c03a call Function2c0c5 ld hl, OTPartyMon1HP ld de, OTPartyCount call Function2c059 ld hl, $cfc4 ld a, $48 ld [hli], a ld [hl], $20 ld a, $f8 ld [$d003], a ld hl, $c418 jp Function2c143 ; 2c059 Function2c059: ; 2c059 ld a, [de] push af ld de, Buffer1 ld c, $6 ld a, $34 .asm_2c062 ld [de], a inc de dec c jr nz, .asm_2c062 pop af ld de, Buffer1 .asm_2c06b push af call Function2c075 inc de pop af dec a jr nz, .asm_2c06b ret ; 2c075 Function2c075: ; 2c075 ld a, [hli] and a jr nz, .asm_2c07f ld a, [hl] and a ld b, $33 jr z, .asm_2c08b .asm_2c07f dec hl dec hl dec hl ld a, [hl] and a ld b, $32 jr nz, .asm_2c08e dec b jr .asm_2c08e .asm_2c08b dec hl dec hl dec hl .asm_2c08e ld a, b ld [de], a ld bc, $0032 add hl, bc ret ; 2c095 DrawPlayerExpBar: ; 2c095 ld hl, .data_2c0a9 ld de, $d004 ld bc, 4 call CopyBytes ld hl, $c57a ld de, -1 jr Function2c0f1 .data_2c0a9 db $73 db $77 db $6f db $76 ; 2c0ad Function2c0ad: ; 2c0ad ld hl, .data_2c0c1 ld de, $d004 ld bc, 4 call CopyBytes ld hl, $c57a ld de, -1 jr Function2c0f1 .data_2c0c1 db $73, $5c, $6f, $76 ; 2c0c5 Function2c0c5: ; 2c0c5 ld hl, .data_2c0ed ld de, $d004 ld bc, 4 call CopyBytes ld hl, $c4c9 ld de, 1 call Function2c0f1 ld a, [IsInBattle] dec a ret nz ld a, [TempEnemyMonSpecies] dec a call CheckCaughtMon ret z ld hl, $c4b5 ld [hl], $5d ret .data_2c0ed db $6d db $74 db $78 db $76 ; 2c0f1 Function2c0f1: ; 2c0f1 ld a, [$d004] ld [hl], a ld bc, $0014 add hl, bc ld a, [StartFlypoint] ld [hl], a ld b, $8 .asm_2c0ff add hl, de ld a, [MovementBuffer] ld [hl], a dec b jr nz, .asm_2c0ff add hl, de ld a, [EndFlypoint] ld [hl], a ret ; 2c10d Function2c10d: ; 2c10d call Function2c165 ld hl, PartyMon1HP ld de, PartyCount call Function2c059 ld hl, $cfc4 ld a, $50 ld [hli], a ld [hl], $40 ld a, $8 ld [$d003], a ld hl, Sprites call Function2c143 ld hl, OTPartyMon1HP ld de, OTPartyCount call Function2c059 ld hl, $cfc4 ld a, $50 ld [hli], a ld [hl], $68 ld hl, $c418 jp Function2c143 ; 2c143 Function2c143: ; 2c143 ld de, Buffer1 ld c, $6 .asm_2c148 ld a, [$cfc5] ld [hli], a ld a, [$cfc4] ld [hli], a ld a, [de] ld [hli], a ld a, $3 ld [hli], a ld a, [$cfc4] ld b, a ld a, [$d003] add b ld [$cfc4], a inc de dec c jr nz, .asm_2c148 ret ; 2c165 Function2c165: ; 2c165 ld de, GFX_2c172 ld hl, $8310 lb bc, BANK(GFX_2c172), 4 call Functiondc9 ret ; 2c172 GFX_2c172: ; 2c172 INCBIN "gfx/battle/balls.2bpp" ; 2c1b2 Function2c1b2: ; 2c1b2 call WhiteBGMap call Functione5f ld hl, $c4de ld b, $9 ld c, $e call TextBox ld hl, $c508 ld de, PlayerName call PlaceString ld hl, $c56c ld de, $d26b call PlaceString ld hl, $c549 ld a, $69 ld [hli], a ld [hl], $6a callba Function2c10d ld b, $8 call GetSGBLayout call Function32f9 ld a, $e4 ld [rOBP0], a ret ; 2c1ef TrainerClassNames:: ; 2c1ef db "LEADER@" db "LEADER@" db "LEADER@" db "LEADER@" db "LEADER@" db "LEADER@" db "LEADER@" db "LEADER@" db "RIVAL@" db "#MON PROF.@" db "ELITE FOUR@" db $4a, " TRAINER@" db "ELITE FOUR@" db "ELITE FOUR@" db "ELITE FOUR@" db "CHAMPION@" db "LEADER@" db "LEADER@" db "LEADER@" db "SCIENTIST@" db "LEADER@" db "YOUNGSTER@" db "SCHOOLBOY@" db "BIRD KEEPER@" db "LASS@" db "LEADER@" db "COOLTRAINER@" db "COOLTRAINER@" db "BEAUTY@" db "#MANIAC@" db "ROCKET@" db "GENTLEMAN@" db "SKIER@" db "TEACHER@" db "LEADER@" db "BUG CATCHER@" db "FISHER@" db "SWIMMER♂@" db "SWIMMER♀@" db "SAILOR@" db "SUPER NERD@" db "RIVAL@" db "GUITARIST@" db "HIKER@" db "BIKER@" db "LEADER@" db "BURGLAR@" db "FIREBREATHER@" db "JUGGLER@" db "BLACKBELT@" db "ROCKET@" db "PSYCHIC@" db "PICNICKER@" db "CAMPER@" db "ROCKET@" db "SAGE@" db "MEDIUM@" db "BOARDER@" db "#FAN@" db "KIMONO GIRL@" db "TWINS@" db "#FAN@" db $4a, " TRAINER@" db "LEADER@" db "OFFICER@" db "ROCKET@" db "MYSTICALMAN@" ; no known jump sources Function2c41a: ; 2c41a (b:441a) ; More move AI. ld a, c ld de, 3 ld hl, Unknown_2c42c call IsInArray jp nc, Function2c545 inc hl ld a, [hli] ld h, [hl] ld l, a jp [hl] ; 2c42c (b:442c) Unknown_2c42c: ; 2c42c dbw EFFECT_DREAM_EATER, Function2c524 dbw EFFECT_HEAL, Function2c539 dbw EFFECT_LIGHT_SCREEN, Function2c487 dbw EFFECT_MIST, Function2c48d dbw EFFECT_FOCUS_ENERGY, Function2c493 dbw EFFECT_CONFUSE, Function2c499 dbw EFFECT_TRANSFORM, Function2c4a5 dbw EFFECT_REFLECT, Function2c4ab dbw EFFECT_SUBSTITUTE, Function2c4b1 dbw EFFECT_LEECH_SEED, Function2c4b7 dbw EFFECT_DISABLE, Function2c4bd dbw EFFECT_ENCORE, Function2c4c2 dbw EFFECT_SNORE, Function2c4c8 dbw EFFECT_SLEEP_TALK, Function2c4c8 dbw EFFECT_MEAN_LOOK, Function2c4d1 dbw EFFECT_NIGHTMARE, Function2c4d7 dbw EFFECT_SPIKES, Function2c4e3 dbw EFFECT_FORESIGHT, Function2c4e9 dbw EFFECT_PERISH_SONG, Function2c4ef dbw EFFECT_SANDSTORM, Function2c4f5 dbw EFFECT_ATTRACT, Function2c4fe dbw EFFECT_SAFEGUARD, Function2c50c dbw EFFECT_RAIN_DANCE, Function2c512 dbw EFFECT_SUNNY_DAY, Function2c51b dbw EFFECT_TELEPORT, Function2c541 dbw EFFECT_MORNING_SUN, Function2c539 dbw EFFECT_SYNTHESIS, Function2c539 dbw EFFECT_MOONLIGHT, Function2c539 dbw EFFECT_SWAGGER, Function2c52d dbw EFFECT_FUTURE_SIGHT, Function2c533 db $ff ; 2c487 Function2c487: ; 2c487 ld a, [EnemyScreens] ; $c700 bit 3, a ret Function2c48d: ; 2c48d ld a, [EnemySubStatus4] ; $c670 bit 1, a ret Function2c493: ; 2c493 ld a, [EnemySubStatus4] ; $c670 bit 2, a ret Function2c499: ; 2c499 ld a, [PlayerSubStatus3] ; $c66a bit 7, a ret nz ld a, [PlayerScreens] ; $c6ff bit 2, a ret Function2c4a5: ; 2c4a5 ld a, [EnemySubStatus5] ; $c671 bit 3, a ret Function2c4ab: ; 2c4ab ld a, [EnemyScreens] ; $c700 bit 4, a ret ; 2c4b1 (b:44b1) Function2c4b1: ; 2c4b1 ld a, [EnemySubStatus4] bit 4, a ret Function2c4b7: ; 2c4b7 ld a, [PlayerSubStatus4] ; $c66b bit 7, a ret Function2c4bd: ; 2c4bd ld a, [PlayerDisableCount] ; $c675 and a ret Function2c4c2: ; 2c4c2 ld a, [PlayerSubStatus5] ; $c66c bit 4, a ret Function2c4c8: ; 2c4c8 ld a, [EnemyMonStatus] ; $d214 and $7 jr z, Function2c541 jr Function2c545 Function2c4d1: ; 2c4d1 ld a, [EnemySubStatus5] ; $c671 bit 7, a ret ; 2c4d7 (b:44d7) Function2c4d7: ; 2c4d7 ld a, [BattleMonStatus] and a jr z, Function2c541 ld a, [PlayerSubStatus1] bit 0, a ret Function2c4e3: ; 2c4e3 ld a, [PlayerScreens] ; $c6ff bit 0, a ret Function2c4e9: ; 2c4e9 ld a, [PlayerSubStatus1] ; $c668 bit 3, a ret Function2c4ef: ; 2c4ef ld a, [PlayerSubStatus1] ; $c668 bit 4, a ret Function2c4f5: ; 2c4f5 ld a, [Weather] ; $c70a cp $3 jr z, Function2c541 jr Function2c545 Function2c4fe: ; 2c4fe callba Function377f5 jr c, Function2c541 ld a, [PlayerSubStatus1] ; $c668 bit 7, a ret Function2c50c: ; 2c50c ld a, [EnemyScreens] ; $c700 bit 2, a ret Function2c512: ; 2c512 ld a, [Weather] ; $c70a cp $1 jr z, Function2c541 jr Function2c545 Function2c51b: ; 2c51b ld a, [Weather] ; $c70a cp $2 jr z, Function2c541 jr Function2c545 Function2c524: ; 2c524 ld a, [BattleMonStatus] ; $c63a and $7 jr z, Function2c541 jr Function2c545 Function2c52d: ; 2c52d ld a, [PlayerSubStatus3] ; $c66a bit 7, a ret Function2c533: ; 2c533 ld a, [EnemyScreens] ; $c700 bit 5, a ret Function2c539: ; 2c539 callba AICheckEnemyMaxHP jr nc, Function2c545 Function2c541: ; 2c541 ld a, $1 and a ret ; known jump sources: 2c424 (b:4424), 2c4cf (b:44cf), 2c4fc (b:44fc), 2c519 (b:4519), 2c522 (b:4522), 2c52b (b:452b), 2c53f (b:453f) Function2c545: ; 2c545 (b:4545) xor a ret Function2c547: ; 2c547 ld hl, UnknownText_0x2c5ef call PrintText call YesNoBox jr c, .asm_2c5c3 ld hl, UnknownText_0x2c5f4 call PrintText callba Function50000 jr c, .asm_2c5c3 ld a, [CurPartySpecies] cp $fd jr z, .asm_2c5bc ld a, [CurPartyMon] ld hl, PartyMon1Move2 ld bc, $0030 call AddNTimes ld a, [hl] and a jr z, .asm_2c5ca ld hl, UnknownText_0x2c5ea call PrintText call Function1d6e callba Function12f5b push af call Function2b74 pop af jr c, .asm_2c5c3 ld a, [$cfa9] push af ld a, [CurSpecies] ld [$d265], a call GetMoveName ld hl, UnknownText_0x2c5d6 call PrintText call YesNoBox pop bc jr c, .asm_2c5c3 call Function2c5f9 call WaitSFX ld de, SFX_MOVE_DELETED call PlaySFX call WaitSFX ld hl, UnknownText_0x2c5db call PrintText ret .asm_2c5bc ld hl, UnknownText_0x2c5e0 call PrintText ret .asm_2c5c3 ld hl, UnknownText_0x2c5e5 call PrintText ret .asm_2c5ca ld hl, UnknownText_0x2c5d1 call PrintText ret ; 2c5d1 UnknownText_0x2c5d1: ; 0x2c5d1 ; That #MON knows only one move. text_jump UnknownText_0x1c5eba db "@" ; 0x2c5d6 UnknownText_0x2c5d6: ; 0x2c5d6 ; Oh, make it forget @ ? text_jump UnknownText_0x1c5eda db "@" ; 0x2c5db UnknownText_0x2c5db: ; 0x2c5db ; Done! Your #MON forgot the move. text_jump UnknownText_0x1c5ef5 db "@" ; 0x2c5e0 UnknownText_0x2c5e0: ; 0x2c5e0 ; An EGG doesn't know any moves! text_jump UnknownText_0x1c5f17 db "@" ; 0x2c5e5 UnknownText_0x2c5e5: ; 0x2c5e5 ; No? Come visit me again. text_jump UnknownText_0x1c5f36 db "@" ; 0x2c5ea UnknownText_0x2c5ea: ; 0x2c5ea ; Which move should it forget, then? text_jump UnknownText_0x1c5f50 db "@" ; 0x2c5ef UnknownText_0x2c5ef: ; 0x2c5ef ; Um… Oh, yes, I'm the MOVE DELETER. I can make #MON forget moves. Shall I make a #MON forget? text_jump UnknownText_0x1c5f74 db "@" ; 0x2c5f4 UnknownText_0x2c5f4: ; 0x2c5f4 ; Which #MON? text_jump UnknownText_0x1c5fd1 db "@" ; 0x2c5f9 Function2c5f9: ; 2c5f9 ld a, b push bc dec a ld c, a ld b, $0 ld hl, PartyMon1Move1 add hl, bc ld a, [CurPartyMon] ld bc, $0030 call AddNTimes pop bc push bc inc b .asm_2c60f ld a, b cp $5 jr z, .asm_2c61b inc hl ld a, [hld] ld [hl], a inc hl inc b jr .asm_2c60f .asm_2c61b xor a ld [hl], a pop bc ld a, b push bc dec a ld c, a ld b, $0 ld hl, PartyMon1PP add hl, bc ld a, [CurPartyMon] ld bc, $0030 call AddNTimes pop bc inc b .asm_2c633 ld a, b cp $5 jr z, .asm_2c63f inc hl ld a, [hld] ld [hl], a inc hl inc b jr .asm_2c633 .asm_2c63f xor a ld [hl], a ret ; 2c642 ; no known jump sources Function2c642: ; 2c642 (b:4642) ld de, OverworldMap ; $c800 ld a, $1 ld [de], a inc de ld a, $1 call GetSRAMBank ld hl, $a009 ld a, [hli] ld [de], a ld b, a inc de ld a, [hl] ld [de], a ld c, a inc de push bc ld hl, $a00b ld bc, $b call CopyBytes push de ld hl, $aa27 ld b, $20 call CountSetBits pop de pop bc ld a, [$d265] ld [de], a inc de call CloseSRAM call Random and $1 ld [de], a inc de call Function2c6ac ld [de], a inc de ld a, c ld c, b ld b, a call Function2c6ac ld [de], a inc de ld a, $0 call GetSRAMBank ld a, [$abe4] ld [de], a inc de ld a, [$abe5] ld [de], a ld a, $14 ld [$ca00], a call CloseSRAM ld hl, OverworldMap ; $c800 ld de, $c950 ld bc, $14 jp CopyBytes ; known jump sources: 2c67d (b:467d), 2c685 (b:4685) Function2c6ac: ; 2c6ac (b:46ac) push de call Random cp $19 jr c, .asm_2c6cc call Random and $7 ld d, a rl d ld e, $80 .asm_2c6be rlc e dec a jr nz, .asm_2c6be ld a, e and c jr z, .asm_2c6c9 ld a, $1 .asm_2c6c9 add d jr .asm_2c706 .asm_2c6cc call Random cp $32 jr c, .asm_2c6ed call Random and $3 ld d, a rl d ld e, $80 .asm_2c6dd rlc e dec a jr nz, .asm_2c6dd ld a, e and b jr z, .asm_2c6e8 ld a, $1 .asm_2c6e8 add d add $10 jr .asm_2c706 .asm_2c6ed call Random cp $32 jr c, .asm_2c6fd ld a, b swap a and $7 add $18 jr .asm_2c706 .asm_2c6fd ld a, b and $80 ld a, $20 jr z, .asm_2c706 ld a, $21 .asm_2c706 pop de ret ; no known jump sources Function2c708: ; 2c708 (b:4708) ld a, c cp $25 jr nc, Function2c722 ld hl, Unknown_2c725 ld b, 0 add hl, bc ld c, [hl] ret ; no known jump sources Function2c715: ; 2c715 (b:4715) ld a, c cp $25 jr nc, Function2c722 ld hl, Unknown_2c74a ld b, 0 add hl, bc ld c, [hl] ret ; known jump sources: 2c70b (b:470b), 2c718 (b:4718) Function2c722: ; 2c722 (b:4722) ld c, $4 ret ; 2c725 (b:4725) Unknown_2c725: ; 2c725 ; May or may not be items. db $ad, $4e, $54, $50, $4f db $4a, $29, $33, $31, $53 db $2c, $35, $21, $b9, $ba db $bc, $6d, $ae, $27, $04 db $2a, $2b, $41, $3f, $18 db $16, $22, $17, $40, $15 db $28, $8c, $1a, $3e, $20 db $bb, $bd ; 2c74a Unknown_2c74a: ; 2c74a ; May or may not be items. db $16, $1a, $1b, $1c, $1d db $1e, $1f, $20, $21, $22 db $0d, $0e, $10, $23, $25 db $26, $08, $09, $0f, $11 db $17, $19, $01, $02, $04 db $05, $06, $07, $0a, $12 db $29, $0c, $2a, $14, $03 db $24, $27 ; 2c76f ; no known jump sources Function2c76f: ; 2c76f (b:476f) ld a, $1 ld [$FF00+$aa], a call Function2c8d3 ld a, $0 ld [$FF00+$aa], a ret nc call Function1bee call WaitBGMap ld a, [CurItem] ; $d106 dec a ld [$d107], a ld hl, TMsHMs ; $d859 ld c, a ld b, $0 add hl, bc ld a, [hl] ld [$d10d], a call Function2c798 scf ret ; known jump sources: 2c793 (b:4793) Function2c798: ; 2c798 (b:4798) ld a, [CurItem] ; $d106 ld c, a callab GetNumberedTMHM ld a, c ld [CurItem], a ; $d106 ret ; known jump sources: 2c7b6 (b:47b6), 2cb0c (b:4b0c) Function2c7a7: ; 2c7a7 (b:47a7) ld a, [CurItem] ; $d106 ld c, a callab GetTMHMNumber ld a, c ld [$d265], a ret ; known jump sources: 2c7cd (b:47cd) Function2c7b6: ; 2c7b6 (b:47b6) call Function2c7a7 ld a, $f call Predef ret Function2c7bf: ; 2c7bf (b:47bf) ld hl, Options ; $cfcc ld a, [hl] push af res 4, [hl] ld a, [CurItem] ; $d106 cp $bf jr c, .asm_2c7f5 call Function2c7b6 ld a, [$d265] ld [$d262], a call GetMoveName call CopyName1 ld hl, UnknownText_0x2c8bf ld a, [CurItem] ; $d106 cp HM_01 jr c, .asm_2c7e9 ld hl, UnknownText_0x2c8c4 .asm_2c7e9 call PrintText ld hl, UnknownText_0x2c8c9 call PrintText call YesNoBox .asm_2c7f5 pop bc ld a, b ld [Options], a ; $cfcc ret Function2c7fb: ; 2c7fb ld hl, StringBuffer2 ld de, $d066 ld bc, $000c call CopyBytes call WhiteBGMap Function2c80a: ; 2c80a callba Function5004f callba Function50405 callba Function503e0 ld a, $3 ld [PartyMenuActionText], a .asm_2c821 callba WritePartyMenuTilemap callba PrintPartyMenuText call WaitBGMap call Function32f9 call DelayFrame callba PartyMenuSelect push af ld a, [CurPartySpecies] cp EGG pop bc jr z, .asm_2c854 push bc ld hl, $d066 ld de, StringBuffer2 ld bc, $000c call CopyBytes pop af ret .asm_2c854 push hl push de push bc push af ld de, SFX_WRONG call PlaySFX call WaitSFX pop af pop bc pop de pop hl jr .asm_2c821 ; 2c867 Function2c867: ; 2c867 ld a, $e call Predef push bc ld a, [CurPartyMon] ; $d109 ld hl, PartyMonNicknames ; $de41 (aliases: PartyMon1Nickname) call GetNick pop bc ld a, c and a jr nz, .asm_2c88b push de ld de, SFX_WRONG call PlaySFX pop de ld hl, UnknownText_0x2c8ce call PrintText jr .asm_2c8b6 .asm_2c88b callab Functionf9ea jr c, .asm_2c8b6 ld a, $0 call Predef ld a, b and a jr z, .asm_2c8b6 callba Function106049 ld a, [CurItem] ; $d106 call IsHM ret c ld c, $5 callab ChangeHappiness call Function2cb0c jr Function2c8bd .asm_2c8b6 and a ret ; 2c8b8 (b:48b8) Function2c8b8: ; 2c8b8 ld a, $2 ld [$d0ec], a Function2c8bd: ; 2c8bd scf ret ; 2c8bf (b:48bf) UnknownText_0x2c8bf: ; 0x2c8bf ; Booted up a TM. text_jump UnknownText_0x1c0373 db "@" ; 0x2c8c4 UnknownText_0x2c8c4: ; 0x2c8c4 ; Booted up an HM. text_jump UnknownText_0x1c0384 db "@" ; 0x2c8c9 UnknownText_0x2c8c9: ; 0x2c8c9 ; It contained @ . Teach @ to a #MON? text_jump UnknownText_0x1c0396 db "@" ; 0x2c8ce UnknownText_0x2c8ce: ; 0x2c8ce ; is not compatible with @ . It can't learn @ . text_jump UnknownText_0x1c03c2 db "@" ; 0x2c8d3 ; known jump sources: 2c773 (b:4773) Function2c8d3: ; 2c8d3 (b:48d3) xor a ld [hBGMapMode], a ; $ff00+$d4 call Function2c9e2 ld a, $2 ld [$cfa1], a ld a, $7 ld [$cfa2], a ld a, $1 ld [$cfa4], a ld a, $5 sub d inc a cp $6 jr nz, .asm_2c8f1 dec a .asm_2c8f1 ld [$cfa3], a ld a, $c ld [$cfa5], a xor a ld [$cfa6], a ld a, $20 ld [$cfa7], a ld a, $f3 ld [$cfa8], a ld a, [$d0dc] inc a ld [$cfa9], a ld a, $1 ld [$cfaa], a jr Function2c946 ; known jump sources: 2c95b (b:495b), 2c971 (b:4971), 2c9bb (b:49bb), 2c9ce (b:49ce) Function2c915: ; 2c915 (b:4915) call Function2c9e2 call Function1bc9 ld b, a ld a, [$cfa9] dec a ld [$d0dc], a xor a ld [hBGMapMode], a ; $ff00+$d4 ld a, [$cfa6] bit 7, a jp nz, Function2c9b1 ld a, b ld [$cf73], a bit 0, a jp nz, Function2c974 bit 1, a jp nz, Function2c9a5 bit 4, a jp nz, Function2c9af bit 5, a jp nz, Function2c9af ; known jump sources: 2c913 (b:4913), 2c9c2 (b:49c2), 2c9df (b:49df) Function2c946: ; 2c946 (b:4946) call Function2c98a jp nc, Function2c9af ld hl, $c590 ld b, $4 ld c, $12 call TextBox ld a, [CurItem] ; $d106 cp $3a jr nc, Function2c915 ld [$d265], a ld a, $f call Predef ld a, [$d265] ld [CurSpecies], a ; $cf60 ld hl, $c5b9 call PrintMoveDesc jp Function2c915 ; known jump sources: 2c934 (b:4934) Function2c974: ; 2c974 (b:4974) call Function2cad6 call Function2cb2a ld a, [$cfa9] dec a ld b, a ld a, [$d0e2] add b ld b, a ld a, [$d265] cp b jr z, asm_2c9a8 ; known jump sources: 2c946 (b:4946) Function2c98a: ; 2c98a (b:498a) call Function2cab5 ld a, [$cfa9] ld b, a .asm_2c991 inc c ld a, c cp $3a jr nc, .asm_2c99f ld a, [hli] and a jr z, .asm_2c991 dec b jr nz, .asm_2c991 ld a, c .asm_2c99f ld [CurItem], a ; $d106 cp $ff ret ; known jump sources: 2c939 (b:4939) Function2c9a5: ; 2c9a5 (b:49a5) call Function2cad6 ; known jump sources: 2c988 (b:4988) asm_2c9a8: ; 2c9a8 (b:49a8) ld a, $2 ld [$cf73], a and a ret ; known jump sources: 2c93e (b:493e), 2c943 (b:4943), 2c949 (b:4949) Function2c9af: ; 2c9af (b:49af) and a ret ; known jump sources: 2c92b (b:492b) Function2c9b1: ; 2c9b1 (b:49b1) ld a, b bit 7, a jr nz, .asm_2c9c5 ld hl, $d0e2 ld a, [hl] and a jp z, Function2c915 dec [hl] call Function2c9e2 jp Function2c946 .asm_2c9c5 call Function2cab5 ld b, $5 .asm_2c9ca inc c ld a, c cp $3a jp nc, Function2c915 ld a, [hli] and a jr z, .asm_2c9ca dec b jr nz, .asm_2c9ca ld hl, $d0e2 inc [hl] call Function2c9e2 jp Function2c946 ; known jump sources: 2c8d6 (b:48d6), 2c915 (b:4915), 2c9bf (b:49bf), 2c9dc (b:49dc) Function2c9e2: ; 2c9e2 (b:49e2) ld a, [BattleType] ; $d230 cp $3 jp z, Function2caca ld hl, $c4cd ld bc, $a0f ld a, $7f call ClearBox call Function2cab5 ld d, $5 .asm_2c9fa inc c ld a, c cp $3a jr nc, .asm_2ca77 ld a, [hli] and a jr z, .asm_2c9fa ld b, a ld a, c ld [$d265], a push hl push de push bc call Function2ca86 push hl ld a, [$d265] cp $33 jr nc, .asm_2ca22 ld de, $d265 ld bc, $8102 call PrintNum jr .asm_2ca38 .asm_2ca22 push af sub $32 ld [$d265], a ld [hl], $87 inc hl ld de, $d265 ld bc, $4102 call PrintNum pop af ld [$d265], a .asm_2ca38 ld a, $f call Predef ld a, [$d265] ld [$d262], a call GetMoveName pop hl ld bc, $3 add hl, bc push hl call PlaceString pop hl pop bc ld a, c push bc cp $33 jr nc, .asm_2ca6f ld bc, $1d add hl, bc ld [hl], $f1 inc hl ld a, $f6 pop bc push bc ld a, b ld [$d265], a ld de, $d265 ld bc, $102 call PrintNum .asm_2ca6f pop bc pop de pop hl dec d jr nz, .asm_2c9fa jr .asm_2ca85 .asm_2ca77 call Function2ca86 inc hl inc hl inc hl push de ld de, String_2caae call PlaceString pop de .asm_2ca85 ret ; known jump sources: 2ca0c (b:4a0c), 2ca77 (b:4a77) Function2ca86: ; 2ca86 (b:4a86) ld hl, $c4a5 ld bc, $28 ld a, $6 sub d ld e, a .asm_2ca90 add hl, bc dec e jr nz, .asm_2ca90 ret ; 2ca95 (b:4a95) Function2ca95: ; 2ca95 pop hl ld bc, $0003 add hl, bc ld a, $f call Predef ld a, [$d265] ld [$d262], a call GetMoveName push hl call PlaceString pop hl ret ; 2caae String_2caae: ; 2caae db "CANCEL@" ; 2cab5 ; known jump sources: 2c98a (b:498a), 2c9c5 (b:49c5), 2c9f5 (b:49f5) Function2cab5: ; 2cab5 (b:4ab5) ld hl, TMsHMs ; $d859 ld a, [$d0e2] ld b, a inc b ld c, $0 .asm_2cabf inc c ld a, [hli] and a jr z, .asm_2cabf dec b jr nz, .asm_2cabf dec hl dec c ret ; known jump sources: 2c9e7 (b:49e7) Function2caca: ; 2caca (b:4aca) ld hl, $c4e5 push de ld de, String_2caae call PlaceString pop de ret ; known jump sources: 2c974 (b:4974), 2c9a5 (b:49a5) Function2cad6: ; 2cad6 (b:4ad6) push de ld de, SFX_READ_TEXT_2 call PlaySFX pop de ret ; 2cadf (b:4adf) Function2cadf: ; 2cadf call Function2c7a7 call Function2cafa ld hl, UnknownText_0x2caf0 jr nc, .asm_2caed ld hl, UnknownText_0x2caf5 .asm_2caed jp PrintText ; 2caf0 UnknownText_0x2caf0: ; 0x2caf0 ; You have no room for any more @ S. text_jump UnknownText_0x1c03fa db "@" ; 0x2caf5 UnknownText_0x2caf5: ; 0x2caf5 ; You received @ ! text_jump UnknownText_0x1c0421 db "@" ; 0x2cafa Function2cafa: ; 2cafa ld a, [$d265] dec a ld hl, TMsHMs ld b, 0 ld c, a add hl, bc ld a, [hl] inc a cp NUM_TMS * 2 ret nc ld [hl], a ret ; 2cb0c ; known jump sources: 2c8b1 (b:48b1) Function2cb0c: ; 2cb0c (b:4b0c) call Function2c7a7 ld a, [$d265] dec a ld hl, TMsHMs ; $d859 ld b, 0 ld c, a add hl, bc ld a, [hl] and a ret z dec a ld [hl], a ret nz ld a, [$d0e2] and a ret z dec a ld [$d0e2], a ret ; known jump sources: 2c977 (b:4977) Function2cb2a: ; 2cb2a (b:4b2a) ld b, $0 ld c, $39 ld hl, TMsHMs ; $d859 .asm_2cb31 ld a, [hli] and a jr z, .asm_2cb36 inc b .asm_2cb36 dec c jr nz, .asm_2cb31 ld a, b ld [$d265], a ret PrintMoveDesc: ; 2cb3e push hl ld hl, MoveDescriptions ld a, [CurSpecies] dec a ld c, a ld b, 0 add hl, bc add hl, bc ld a, [hli] ld e, a ld d, [hl] pop hl jp PlaceString ; 2cb52 MoveDescriptions: ; 2cb52 INCLUDE "battle/moves/move_descriptions.asm" ; 2ed44 Function2ed44: ; 2ed44 call ConvertBerriesToBerryJuice ld hl, PartyMon1PokerusStatus ld a, [PartyCount] ld b, a ld de, $0030 .loopMons ld a, [hl] and $f jr nz, .monHasActivePokerus add hl, de dec b jr nz, .loopMons ld hl, StatusFlags2 bit 6, [hl] ret z call Random ld a, [hRandomAdd] and a ret nz ld a, [hRandomSub] cp $3 ret nc ; 3/65536 chance (00 00, 00 01 or 00 02) ld a, [PartyCount] ld b, a .randomMonSelectLoop call Random and $7 cp b jr nc, .randomMonSelectLoop ld hl, PartyMon1PokerusStatus call GetPartyLocation ; get pokerus byte of random mon ld a, [hl] and $f0 ret nz ; if it already has pokerus, do nothing .randomPokerusLoop call Random and a jr z, .randomPokerusLoop ld b, a and $f0 jr z, .asm_2ed91 ld a, b and $7 inc a .asm_2ed91 ld b, a swap b and $3 inc a add b ld [hl], a ret .monHasActivePokerus call Random cp $55 ret nc ; 1/3 chance ld a, [PartyCount] cp $1 ret z ; only one mon, nothing to do ld c, [hl] ld a, b cp $2 jr c, .checkPreviousMonsLoop ; no more mons after this one, go backwards call Random cp $80 jr c, .checkPreviousMonsLoop ; 1/2 chance, go backwards .checkFollowingMonsLoop add hl, de ld a, [hl] and a jr z, .infectMon ld c, a and $3 ret z ; if mon has cured pokerus, stop searching dec b ; go on to next mon ld a, b cp $1 jr nz, .checkFollowingMonsLoop ; no more mons left ret .checkPreviousMonsLoop ld a, [PartyCount] cp b ret z ; no more mons ld a, l sub e ld l, a ld a, h sbc d ld h, a ld a, [hl] and a jr z, .infectMon ld c, a and $3 ret z ; if mon has cured pokerus, stop searching inc b ; go on to next mon jr .checkPreviousMonsLoop .infectMon ld a, c and $f0 ld b, a ld a, c swap a and $3 inc a add b ld [hl], a ret ; 2ede6 ; any berry held by a Shuckle may be converted to berry juice ConvertBerriesToBerryJuice: ; 2ede6 ld hl, StatusFlags2 bit 6, [hl] ret z call Random cp $10 ret nc ; 1/16 chance ld hl, PartyMons ld a, [PartyCount] .partyMonLoop push af push hl ld a, [hl] cp SHUCKLE jr nz, .nextMon ld bc, PartyMon1Item - PartyMon1Species add hl, bc ld a, [hl] cp BERRY jr z, .convertToJuice .nextMon pop hl ld bc, PartyMon2 - PartyMon1 add hl, bc pop af dec a jr nz, .partyMonLoop ret .convertToJuice ld a, BERRY_JUICE ld [hl], a pop hl pop af ret ; 2ee18 Function2ee18: ; 2ee18 ld a, [InLinkBattle] and a ret z callba Function2c1b2 ld c, 150 call DelayFrames call ClearTileMap call ClearSprites ret ; 2ee2f Function2ee2f: ; 2ee2f xor a ld [$ffde], a call DelayFrame ld b, 6 ld hl, PartyMon1HP ld de, PartyMon2 - PartyMon1 - 1 .asm_2ee3d ld a, [hli] or [hl] jr nz, .asm_2ee45 add hl, de dec b jr nz, .asm_2ee3d .asm_2ee45 ld de, PartyMon1Level - PartyMon1HP add hl, de ld a, [hl] ld [BattleMonLevel], a ld a, PREDEF_BATTLE_TRANSITION call Predef callba Function3ed9f ld a, 1 ld [hBGMapMode], a call ClearSprites call ClearTileMap xor a ld [hBGMapMode], a ld [hWY], a ld [rWY], a ld [$ffde], a ret ; 2ee6c PlayBattleMusic: ; 2ee6c push hl push de push bc xor a ld [MusicFade], a ld de, MUSIC_NONE call PlayMusic call DelayFrame call MaxVolume ld a, [BattleType] cp BATTLETYPE_SUICUNE ld de, MUSIC_SUICUNE_BATTLE jp z, .done cp BATTLETYPE_ROAMING jp z, .done ; Are we fighting a trainer? ld a, [OtherTrainerClass] and a jr nz, .trainermusic callba RegionCheck ld a, e and a jr nz, .kantowild ld de, MUSIC_JOHTO_WILD_BATTLE ld a, [TimeOfDay] cp NITE jr nz, .done ld de, MUSIC_JOHTO_WILD_BATTLE_NIGHT jr .done .kantowild ld de, MUSIC_KANTO_WILD_BATTLE jr .done .trainermusic ld de, MUSIC_CHAMPION_BATTLE cp CHAMPION jr z, .done cp RED jr z, .done ; really, they should have included admins and scientists here too... ld de, MUSIC_ROCKET_BATTLE cp GRUNTM jr z, .done cp GRUNTF jr z, .done ld de, MUSIC_KANTO_GYM_LEADER_BATTLE callba IsKantoGymLeader jr c, .done ld de, MUSIC_JOHTO_GYM_LEADER_BATTLE callba IsJohtoGymLeader jr c, .done ld de, MUSIC_RIVAL_BATTLE ld a, [OtherTrainerClass] cp RIVAL1 jr z, .done cp RIVAL2 jr nz, .othertrainer ld a, [OtherTrainerID] cp 4 ; Rival in Indigo Plateau jr c, .done ld de, MUSIC_CHAMPION_BATTLE jr .done .othertrainer ld a, [InLinkBattle] and a jr nz, .johtotrainer callba RegionCheck ld a, e and a jr nz, .kantotrainer .johtotrainer ld de, MUSIC_JOHTO_TRAINER_BATTLE jr .done .kantotrainer ld de, MUSIC_KANTO_TRAINER_BATTLE .done call PlayMusic pop bc pop de pop hl ret ; 2ef18 ClearBattleRAM: ; 2ef18 xor a ld [$d0ec], a ld [$d0ee], a ld hl, $d0d8 ld [hli], a ld [hli], a ld [hli], a ld [hl], a ld [$d0e4], a ld [CriticalHit], a ld [BattleMonSpecies], a ld [$c664], a ld [CurBattleMon], a ld [$d232], a ld [TimeOfDayPal], a ld [PlayerTurnsTaken], a ld [EnemyTurnsTaken], a ld [EvolvableFlags], a ld hl, PlayerHPPal ld [hli], a ld [hl], a ld hl, BattleMonDVs ld [hli], a ld [hl], a ld hl, EnemyMonDVs ld [hli], a ld [hl], a ; Clear the entire BattleMons area ld hl, EnemyMoveStruct ld bc, $0139 xor a call ByteFill callab ResetEnemyStatLevels call Function1fbf ld hl, hBGMapAddress xor a ld [hli], a ld [hl], $98 ret ; 2ef6e FillBox: ; 2ef6e ; Fill $c2c6-aligned box width b height c ; with iterating tile starting from $ffad at hl. ; Predef $13 ld de, 20 ld a, [$c2c6] and a jr nz, .left ld a, [$ffad] .x1 push bc push hl .y1 ld [hl], a add hl, de inc a dec c jr nz, .y1 pop hl inc hl pop bc dec b jr nz, .x1 ret .left ; Right-aligned. push bc ld b, 0 dec c add hl, bc pop bc ld a, [$ffad] .x2 push bc push hl .y2 ld [hl], a add hl, de inc a dec c jr nz, .y2 pop hl dec hl pop bc dec b jr nz, .x2 ret ; 2ef9f SECTION "Tileset Data 4", ROMX, BANK[TILESETS_4] INCLUDE "tilesets/data_4.asm" SECTION "bankD", ROMX, BANK[$D] INCLUDE "battle/effect_commands.asm" SECTION "bankE", ROMX, BANK[$E] Function38000: ; 38000 and a ld a, [IsInBattle] dec a ret z ld a, [InLinkBattle] and a ret nz callba Function3e8d1 ret nz ld a, [PlayerSubStatus5] bit 7, a jr nz, Function38041 ld a, [$c731] and a jr nz, Function38041 ld hl, TrainerClassAttributes + 5 ld a, [$cfc0] and a jr nz, .asm_38032 ld a, [TrainerClass] dec a ld bc, 7 call AddNTimes .asm_38032 bit 0, [hl] jp nz, Function38045 bit 1, [hl] jp nz, Function38083 bit 2, [hl] jp nz, Function380c1 ; fallthrough ; 38041 Function38041: ; 38041 call Function38105 ret ; 38045 Function38045: ; 38045 callab Function34941 ld a, [$c717] and $f0 jp z, Function38041 cp $10 jr nz, .asm_38061 call Random cp $80 jr c, .asm_38077 jp Function38041 .asm_38061 cp $20 jr nz, .asm_3806f call Random cp $c8 jr c, .asm_38077 jp Function38041 .asm_3806f call Random cp $a jp c, Function38041 .asm_38077 ld a, [$c717] and $f inc a ld [$c718], a jp Function3844b ; 38083 Function38083: ; 38083 callab Function34941 ld a, [$c717] and $f0 jp z, Function38041 cp $10 jr nz, .asm_3809f call Random cp $14 jr c, .asm_380b5 jp Function38041 .asm_3809f cp $20 jr nz, .asm_380ad call Random cp $1e jr c, .asm_380b5 jp Function38041 .asm_380ad call Random cp $c8 jp c, Function38041 .asm_380b5 ld a, [$c717] and $f inc a ld [$c718], a jp Function3844b ; 380c1 Function380c1: ; 380c1 callab Function34941 ld a, [$c717] and $f0 jp z, Function38041 cp $10 jr nz, .asm_380dd call Random cp $32 jr c, .asm_380f3 jp Function38041 .asm_380dd cp $20 jr nz, .asm_380eb call Random cp $80 jr c, .asm_380f3 jp Function38041 .asm_380eb call Random cp $32 jp c, Function38041 .asm_380f3 ld a, [$c717] and $f inc a ld [$c718], a jp Function3844b ; 380ff Function380ff: ; 380ff ld a, [EnemySubStatus5] bit 7, a ret ; 38105 Function38105: ; 38105 ld a, [$cfc0] and a ret nz ld a, [$c650] ld b, a ld a, [$c651] or b ret z call Function38170 ret nc ld a, [TrainerClass] dec a ld hl, TrainerClassAttributes + 5 ld bc, 7 call AddNTimes ld b, h ld c, l ld hl, Unknown_38196 ld de, $c650 .asm_3812c ld a, [hl] and a inc a ret z ld a, [de] cp [hl] jr z, .asm_3813f inc de ld a, [de] cp [hl] jr z, .asm_3813f dec de inc hl inc hl inc hl jr .asm_3812c .asm_3813f inc hl push hl push de ld de, .asm_3814a push de ld a, [hli] ld h, [hl] ld l, a jp [hl] .asm_3814a pop de pop hl inc hl inc hl jr c, .asm_3812c xor a ld [de], a inc a ld [$c70f], a ld hl, EnemySubStatus3 ; $c66f res 0, [hl] xor a ld [EnemyFuryCutterCount], a ; $c680 ld [$c681], a ld [$c72c], a ld hl, EnemySubStatus4 ; $c670 res 6, [hl] xor a ld [LastPlayerCounterMove], a ; $c6f9 scf ret Function38170: ; 38170 ld a, [OTPartyCount] ld d, a ld e, $0 ld hl, OTPartyMon1Level ld bc, $0030 .asm_3817c ld a, [hl] cp e jr c, .asm_38181 ld e, a .asm_38181 add hl, bc dec d jr nz, .asm_3817c ld a, [CurOTMon] ld hl, OTPartyMon1Level call AddNTimes ld a, [hl] cp e jr nc, .asm_38194 and a ret .asm_38194 scf ret ; 38196 Unknown_38196: ; 39196 dbw FULL_RESTORE, Function38208 dbw MAX_POTION, Function38220 dbw HYPER_POTION, Function38284 dbw SUPER_POTION, Function38292 dbw POTION, Function382a0 dbw X_ACCURACY, Function382f9 dbw FULL_HEAL, Function381be dbw GUARD_SPEC, Function38305 dbw DIRE_HIT, Function38311 dbw X_ATTACK, Function3831d dbw X_DEFEND, Function38329 dbw X_SPEED, Function38335 dbw X_SPECIAL, Function38341 db $ff ; 381be Function381be: ; 381be call Function381ca jp c, Function38383 call Function383a3 jp Function38385 ; 381ca ; known jump sources: 381be (e:41be), 38214 (e:4214) Function381ca: ; 381ca (e:41ca) ld a, [EnemyMonStatus] ; $d214 and a jp z, Function38383 ld a, [bc] bit 6, a jr nz, .asm_381e7 ld a, [bc] bit 4, a jp nz, Function38385 call Random cp $32 jp c, Function38385 jp Function38383 .asm_381e7 ld a, [EnemySubStatus5] ; $c671 bit 0, a jr z, .asm_381fd ld a, [$c67c] cp $4 jr c, .asm_381fd call Random cp $80 jp c, Function38385 .asm_381fd ld a, [EnemyMonStatus] ; $d214 and $27 jp z, Function38383 jp Function38385 ; 38208 Function38208: ; 38208 call Function3822c jp nc, Function3821a ld a, [bc] bit 6, a jp z, Function38383 call Function381ca jp c, Function38383 ; known jump sources: 3820b (e:420b) Function3821a: ; 3821a (e:421a) call Function383b5 jp Function38385 ; 38220 Function38220: ; 38220 call Function3822c jp c, Function38383 call Function383ae jp Function38385 ; known jump sources: 38208 (e:4208), 38220 (e:4220), 38284 (e:4284) Function3822c: ; 3822c (e:422c) ld a, [bc] bit 6, a jr nz, Function38267 callab AICheckEnemyHalfHP jp c, Function38383 ld a, [bc] bit 5, a jp nz, Function38254 callab AICheckEnemyQuarterHP jp nc, Function38281 call Random cp $80 jp c, Function38281 jp Function38383 ; known jump sources: 3823d (e:423d) Function38254: ; 38254 (e:4254) callab AICheckEnemyQuarterHP jp c, Function38383 call Random cp $32 jp c, Function38383 jr Function38281 Function38267: ; 38267 (e:4267) callab AICheckEnemyHalfHP jp c, Function38383 callab AICheckEnemyQuarterHP jp nc, Function38281 call Random cp $32 jp nc, Function38383 ; known jump sources: 38246 (e:4246), 3824e (e:424e), 38265 (e:4265), 38276 (e:4276) Function38281: ; 38281 (e:4281) jp Function38385 ; 38284 Function38284: ; 38284 call Function3822c jp c, Function38383 ld b, 200 call Function383f4 jp Function38385 ; 38292 (e:4292) Function38292: ; 38292 call Function3822c jp c, Function38383 Function38298: ; 38298 ld b, 50 call Function383ee jp Function38385 ; 382a0 Function382a0: ; 382a0 call Function3822c jp c, Function38383 ld b, 20 call Function383e8 jp Function38385 ; 382ae Function382ae: ; 382ae callab AICheckEnemyMaxHP jr c, .asm_382e4 push bc ld de, EnemyMonMaxHPLo ld hl, EnemyMonHPLo ld a, [de] sub [hl] jr z, .asm_382e7 dec hl dec de ld c, a sbc [hl] and a jr nz, .asm_382e7 ld a, c cp b jp c, .asm_382d5 callab AICheckEnemyQuarterHP jr c, .asm_382e7 .asm_382d5 pop bc ld a, [bc] bit 5, a jp z, Function38385 call Random cp $80 jp c, Function38385 .asm_382e4 jp Function38383 .asm_382e7 pop bc ld a, [bc] bit 5, a jp z, Function38383 call Random cp $64 jp c, Function38385 jp Function38383 ; 382f9 Function382f9: ; 382f9 call Function3834d jp c, Function38383 call Function384f7 jp Function38385 ; 38305 Function38305: ; 38305 call Function3834d jp c, Function38383 call Function38504 jp Function38385 ; 38311 Function38311: ; 38311 call Function3834d jp c, Function38383 call Function38511 jp Function38385 ; 3831d (e:431d) Function3831d: ; 3831d call Function3834d jp c, Function38383 call Function38541 jp Function38385 ; 38329 Function38329: ; 38329 call Function3834d jp c, Function38383 call Function38547 jp Function38385 ; 38335 Function38335: ; 38335 call Function3834d jp c, Function38383 call Function3854d jp Function38385 ; 38341 Function38341: ; 38341 call Function3834d jp c, Function38383 call Function38553 jp Function38385 ; 3834d ; known jump sources: 38311 (e:4311) Function3834d: ; 3834d (e:434d) ld a, [EnemyTurnsTaken] ; $c6dc and a jr nz, .asm_38372 ld a, [bc] bit 4, a jp nz, Function38385 call Random cp $80 jp c, Function38383 ld a, [bc] bit 6, a jp nz, Function38385 call Random cp $80 jp c, Function38383 jp Function38385 .asm_38372 ld a, [bc] bit 4, a jp z, Function38383 call Random cp $32 jp nc, Function38383 jp Function38385 ; known jump sources: 381c1 (e:41c1), 381ce (e:41ce), 381e4 (e:41e4), 38202 (e:4202), 38211 (e:4211), 38217 (e:4217), 38223 (e:4223), 38237 (e:4237), 38251 (e:4251), 3825a (e:425a), 38262 (e:4262), 3826d (e:426d), 3827e (e:427e), 38287 (e:4287), 38314 (e:4314), 3835e (e:435e), 3836c (e:436c), 38375 (e:4375), 3837d (e:437d) Function38383: ; 38383 (e:4383) scf ret ; known jump sources: 381c7 (e:41c7), 381d9 (e:41d9), 381e1 (e:41e1), 381fa (e:41fa), 38205 (e:4205), 3821d (e:421d), 38229 (e:4229), 38281 (e:4281), 3828f (e:428f), 3831a (e:431a), 38356 (e:4356), 38364 (e:4364), 3836f (e:436f), 38380 (e:4380) Function38385: ; 38385 (e:4385) and a ret Function38387: ; 38387 call UpdateEnemyMonInParty callba Function3e036 ld a, $1 ld [hBGMapMode], a ld hl, $c6e6 dec [hl] scf ret ; 3839a Function3839a: ; 3839a push de ld de, SFX_FULL_HEAL call PlaySFX pop de ret ; 383a3 ; known jump sources: 381c4 (e:41c4) Function383a3: ; 383a3 (e:43a3) call Function3839a call Function384e0 ld a, $26 jp Function38568 ; known jump sources: 38226 (e:4226) Function383ae: ; 383ae (e:43ae) ld a, $f ld [$d1f1], a jr asm_383c6 ; known jump sources: 3821a (e:421a) Function383b5: ; 383b5 (e:43b5) call Function384e0 ld a, $e ld [$d1f1], a ld hl, EnemySubStatus3 ; $c66f res 7, [hl] xor a ld [EnemyConfuseCount], a ; $c67b asm_383c6: ; 383c6 (e:43c6) ld de, $d1ec ld hl, EnemyMonHPLo ; $d217 ld a, [hld] ld [de], a inc de ld a, [hl] ld [de], a inc de ld hl, EnemyMonMaxHPLo ; $d219 ld a, [hld] ld [de], a inc de ld [Buffer1], a ; $d1ea (aliases: MagikarpLength) ld [EnemyMonHPLo], a ; $d217 ld a, [hl] ld [de], a ld [Buffer2], a ; $d1eb (aliases: MovementType) ld [EnemyMonHPHi], a ; $d216 (aliases: EnemyMonHP) jr asm_38436 ; 383e8 (e:43e8) Function383e8: ; 383e8 ld a, POTION ld b, 20 jr Function383f8 Function383ee: ; 383ee ld a, SUPER_POTION ld b, 50 jr Function383f8 ; known jump sources: 3828c (e:428c) Function383f4: ; 383f4 (e:43f4) ld a, HYPER_POTION ld b, 200 Function383f8: ; 383f8 ld [$d1f1], a ld hl, EnemyMonHPLo ; $d217 ld a, [hl] ld [$d1ec], a add b ld [hld], a ld [$d1ee], a ld a, [hl] ld [$d1ed], a ld [$d1ef], a jr nc, .asm_38415 inc a ld [hl], a ld [$d1ef], a .asm_38415 inc hl ld a, [hld] ld b, a ld de, EnemyMonMaxHPLo ; $d219 ld a, [de] dec de ld [Buffer1], a ; $d1ea (aliases: MagikarpLength) sub b ld a, [hli] ld b, a ld a, [de] ld [Buffer2], a ; $d1eb (aliases: MovementType) sbc b jr nc, asm_38436 inc de ld a, [de] dec de ld [hld], a ld [$d1ee], a ld a, [de] ld [hl], a ld [$d1ef], a asm_38436: ; 38436 (e:4436) call Function38571 ld hl, $c4ca xor a ld [$d10a], a call Function3839a ld a, $b call Predef jp Function38387 Function3844b: ; 3844b ld a, [OTPartyCount] ld c, a ld hl, OTPartyMon1HP ld d, 0 .asm_38454 ld a, [hli] ld b, a ld a, [hld] or b jr z, .asm_3845b inc d .asm_3845b push bc ld bc, $0030 add hl, bc pop bc dec c jr nz, .asm_38454 ld a, d cp $2 jp nc, Function3846c and a ret ; 3846c Function3846c: ; 3846c ld a, $1 ld [$c711], a ld [$c70f], a ld hl, EnemySubStatus4 res 6, [hl] xor a ld [hBattleTurn], a callab Function3dc5b push af ld a, [CurOTMon] ld hl, OTPartyMon1Status ld bc, $0030 call AddNTimes ld d, h ld e, l ld hl, EnemyMonStatus ld bc, $0004 call CopyBytes pop af jr c, .asm_384a3 ld hl, UnknownText_0x384d0 call PrintText .asm_384a3 ld a, $1 ld [$d264], a callab NewEnemyMonStatus callab ResetEnemyStatLevels ld hl, PlayerSubStatus1 res 7, [hl] callba Function3d4e1 callba Function3d57a xor a ld [$d264], a ld a, [InLinkBattle] and a ret nz scf ret ; 384d0 UnknownText_0x384d0: ; 384d0 text_jump UnknownText_0x1bcf9c db "@" ; 384d5 Function384d5: ; 384d5 call Function3839a call Function384e0 ld a, $34 jp Function38568 ; 384e0 Function384e0: ; 384e0 ld a, [CurOTMon] ld hl, OTPartyMon1Status ld bc, $0030 call AddNTimes xor a ld [hl], a ld [EnemyMonStatus], a ld hl, EnemySubStatus5 res 0, [hl] ret ; 384f7 Function384f7: ; 384f7 call Function3839a ld hl, EnemySubStatus4 set 0, [hl] ld a, $21 jp Function38568 ; 38504 Function38504: ; 38504 call Function3839a ld hl, EnemySubStatus4 set 1, [hl] ld a, $29 jp Function38568 ; 38511 Function38511: ; 38511 call Function3839a ld hl, EnemySubStatus4 set 2, [hl] ld a, $2c jp Function38568 ; 3851e Function3851e: ; 3851e ld [hMultiplier], a ld hl, EnemyMonMaxHPHi ld a, [hli] ld [hProduct], a ld a, [hl] ld [hMultiplicand], a ld b, $2 call Divide ld a, [$ffb6] ld c, a ld a, [$ffb5] ld b, a ld hl, EnemyMonHPLo ld a, [hld] ld e, a ld a, [hl] ld d, a ld a, d sub b ret nz ld a, e sub c ret ; 38541 Function38541: ; 38541 ld b, $0 ld a, $31 jr Function38557 ; 38547 Function38547: ; 38547 ld b, $1 ld a, $33 jr Function38557 ; 3854d Function3854d: ; 3854d ld b, $2 ld a, $34 jr Function38557 ; 38553 Function38553: ; 38553 ld b, $3 ld a, $35 Function38557 ld [$d1f1], a push bc call Function38571 pop bc callba Function361ef jp Function38387 ; 38568 Function38568: ; 38568 ld [$d1f1], a call Function38571 jp Function38387 ; 38571 Function38571: ; 38571 ld a, [$d1f1] ld [$d265], a call GetItemName ld hl, StringBuffer1 ld de, $d050 ld bc, $000d call CopyBytes ld hl, UnknownText_0x3858c jp PrintText ; 3858c UnknownText_0x3858c: ; 3858c text_jump UnknownText_0x1bcfaf db "@" ; 38591 AIScoring: ; 38591 INCLUDE "battle/ai/scoring.asm" Function3952d: ; 3952d ld hl, RivalName ld a, c cp $9 jr z, .asm_39544 ld [CurSpecies], a ld a, $7 ld [$cf61], a call GetName ld de, StringBuffer1 ret .asm_39544 ld de, StringBuffer1 push de ld bc, $000b call CopyBytes pop de ret ; 39550 Function39550: ; 39550 ld hl, $d26b ld a, [InLinkBattle] and a jr nz, .asm_3956f ld hl, RivalName ld a, c cp $9 jr z, .asm_3956f ld [CurSpecies], a ld a, $7 ld [$cf61], a call GetName ld hl, StringBuffer1 .asm_3956f ld bc, $000d ld de, $c656 push de call CopyBytes pop de ret ; 3957b Function3957b: ; 3957b ld a, [TrainerClass] ld c, a call Function39550 ld a, [TrainerClass] dec a ld hl, TrainerClassAttributes ld bc, 7 call AddNTimes ld de, $c650 ld a, [hli] ld [de], a inc de ld a, [hli] ld [de], a ld a, [hl] ld [$c652], a ret ; 3959c INCLUDE "trainers/attributes.asm" Function39771: ; 39771 ld a, [$cfc0] bit 0, a ret nz ld a, [InLinkBattle] and a ret nz ld hl, OTPartyCount xor a ld [hli], a dec a ld [hl], a ld hl, OTPartyMon1Species ld bc, $0120 xor a call ByteFill ld a, [OtherTrainerClass] cp $c jr nz, .asm_3979e ld a, [OtherTrainerID] cp $2 jr z, .asm_397d3 ld a, [OtherTrainerClass] .asm_3979e dec a ld c, a ld b, $0 ld hl, TrainerGroups add hl, bc add hl, bc ld a, [hli] ld h, [hl] ld l, a ld a, [OtherTrainerID] ld b, a .asm_397ae dec b jr z, .asm_397b8 .asm_397b1 ld a, [hli] cp $ff jr nz, .asm_397b1 jr .asm_397ae .asm_397b8 ld a, [hli] cp $50 jr nz, .asm_397b8 ld a, [hli] ld c, a ld b, $0 ld d, h ld e, l ld hl, Jumptable_397e3 add hl, bc add hl, bc ld a, [hli] ld h, [hl] ld l, a ld bc, .asm_397d0 push bc jp [hl] .asm_397d0 jp Function3991b .asm_397d3 ld a, $0 call GetSRAMBank ld de, $ac0a call Function39806 call CloseSRAM jr .asm_397d0 ; 397e3 Jumptable_397e3: ; 397e3 dw Function397eb dw Function39806 dw Function39871 dw Function3989d ; 397eb Function397eb: ; 397eb ld h, d ld l, e .asm_397ed ld a, [hli] cp $ff ret z ld [CurPartyLevel], a ; $d143 ld a, [hli] ld [CurPartySpecies], a ; $d108 ld a, $1 ld [MonType], a ; $cf5f push hl ld a, $6 call Predef pop hl jr .asm_397ed ; 39806 Function39806: ; 39806 ld h, d ld l, e .asm_39808 ld a, [hli] cp $ff ret z ld [CurPartyLevel], a ld a, [hli] ld [CurPartySpecies], a ld a, $1 ld [MonType], a push hl ld a, $6 call Predef ld a, [OTPartyCount] dec a ld hl, OTPartyMon1Move1 ld bc, $0030 call AddNTimes ld d, h ld e, l pop hl ld b, $4 .asm_39830 ld a, [hli] ld [de], a inc de dec b jr nz, .asm_39830 push hl ld a, [OTPartyCount] dec a ld hl, OTPartyMon1Species ld bc, $0030 call AddNTimes ld d, h ld e, l ld hl, $0017 add hl, de push hl ld hl, $0002 add hl, de pop de ld b, $4 .asm_39852 ld a, [hli] and a jr z, .asm_3986e push hl push bc dec a ld hl, Moves + MOVE_PP ld bc, Move2 - Move1 call AddNTimes ld a, BANK(Moves) call GetFarByte pop bc pop hl ld [de], a inc de dec b jr nz, .asm_39852 .asm_3986e pop hl jr .asm_39808 ; 39871 Function39871: ; 39871 ld h, d ld l, e .asm_39873 ld a, [hli] cp $ff ret z ld [CurPartyLevel], a ; $d143 ld a, [hli] ld [CurPartySpecies], a ; $d108 ld a, $1 ld [MonType], a ; $cf5f push hl ld a, $6 call Predef ld a, [OTPartyCount] ; $d280 dec a ld hl, OTPartyMon1Item ; $d289 ld bc, $30 call AddNTimes ld d, h ld e, l pop hl ld a, [hli] ld [de], a jr .asm_39873 ; 3989d (e:589d) Function3989d: ; 3989d ld h, d ld l, e .asm_3989f ld a, [hli] cp $ff ret z ld [CurPartyLevel], a ld a, [hli] ld [CurPartySpecies], a ld a, $1 ld [MonType], a push hl ld a, $6 call Predef ld a, [OTPartyCount] dec a ld hl, $d289 ld bc, $0030 call AddNTimes ld d, h ld e, l pop hl ld a, [hli] ld [de], a push hl ld a, [OTPartyCount] dec a ld hl, $d28a ld bc, $0030 call AddNTimes ld d, h ld e, l pop hl ld b, $4 .asm_398da ld a, [hli] ld [de], a inc de dec b jr nz, .asm_398da push hl ld a, [OTPartyCount] dec a ld hl, OTPartyMon1 ld bc, $0030 call AddNTimes ld d, h ld e, l ld hl, $0017 add hl, de push hl ld hl, $0002 add hl, de pop de ld b, $4 .asm_398fc ld a, [hli] and a jr z, .asm_39918 push hl push bc dec a ld hl, Moves + MOVE_PP ld bc, MOVE_LENGTH call AddNTimes ld a, BANK(Moves) call GetFarByte pop bc pop hl ld [de], a inc de dec b jr nz, .asm_398fc .asm_39918 pop hl jr .asm_3989f ; 3991b ; known jump sources: 397d0 (e:57d0) Function3991b: ; 3991b (e:591b) ld hl, hPastLeadingZeroes ; $ffb3 (aliases: hDividend, hProduct) xor a ld [hli], a ld [hli], a ld [hli], a ld a, [$c652] ld [hli], a ld a, [CurPartyLevel] ; $d143 ld [hl], a call Multiply ld hl, $c686 xor a ld [hli], a ld a, [$FF00+$b5] ld [hli], a ld a, [$FF00+$b6] ld [hl], a ret Function39939:: ; 39939 ld a, [$cfc0] bit 0, a ld hl, $d26b jp nz, Function39984 ld a, [OtherTrainerID] ld b, a ld a, [OtherTrainerClass] ld c, a Function3994c:: ; 3994c ld a, c cp $c jr nz, .asm_3996d ld a, $0 call GetSRAMBank ld a, [$abfd] and a call CloseSRAM jr z, .asm_3996d ld a, $0 call GetSRAMBank ld hl, $abfe call Function39984 jp CloseSRAM .asm_3996d dec c push bc ld b, 0 ld hl, TrainerGroups add hl, bc add hl, bc ld a, [hli] ld h, [hl] ld l, a pop bc .asm_3997a dec b jr z, Function39984 .asm_3997d ld a, [hli] cp $ff jr nz, .asm_3997d jr .asm_3997a Function39984: ; 39984 ld de, StringBuffer1 push de ld bc, $000b call CopyBytes pop de ret ; 39990 Function39990: ; 39990 ld de, StringBuffer1 push de ld bc, $000b pop de ret ; 39999 INCLUDE "trainers/trainer_pointers.asm" INCLUDE "trainers/trainers.asm" SECTION "bankF", ROMX, BANK[$F] INCLUDE "battle/core.asm" INCLUDE "battle/effect_command_pointers.asm" SECTION "bank10", ROMX, BANK[$10] Pokedex: ; 40000 ld a, [hWX] ld l, a ld a, [hWY] ld h, a push hl ld a, [hSCX] push af ld hl, Options ld a, [hl] push af set NO_TEXT_SCROLL, [hl] ld a, [VramState] push af xor a ld [VramState], a ld a, [$ffaa] push af ld a, $1 ld [$ffaa], a xor a ld [$ffde], a call InitPokedex call DelayFrame .main call Functiona57 ld a, [$cf63] bit 7, a jr nz, .exit call Function4010b call DelayFrame jr .main .exit ld de, SFX_READ_TEXT_2 call PlaySFX call WaitSFX call ClearSprites ld a, [$c7d4] ld [$d959], a pop af ld [$ffaa], a pop af ld [VramState], a pop af ld [Options], a pop af ld [hSCX], a pop hl ld a, l ld [hWX], a ld a, h ld [hWY], a ret ; 40063 InitPokedex: ; 40063 call WhiteBGMap call ClearSprites call ClearTileMap call Function414b7 ld hl, $c6d0 ld bc, $0115 xor a call ByteFill xor a ld [$cf63], a ld [$cf64], a ld [$cf65], a ld [$cf66], a call Function400a2 ld a, [$d959] ld [$c7d4], a call Function40bdc call Function400b4 call Function400ed callba Function1de247 call Function41af7 ret ; 400a2 Function400a2: ; 400a2 ld a, [StatusFlags] bit 1, a jr nz, .asm_400ae xor a ld [$c7dc], a ret .asm_400ae ld a, 1 ld [$c7dc], a ret ; 400b4 Function400b4: ; 400b4 ld hl, $c6d0 ld a, [$c2d6] and a jr z, .asm_400ec cp $fc jr nc, .asm_400ec ld b, a ld a, [$c7d2] cp $8 jr c, .asm_400db sub $7 ld c, a .asm_400cc ld a, b cp [hl] jr z, .asm_400ec inc hl ld a, [$c7d0] inc a ld [$c7d0], a dec c jr nz, .asm_400cc .asm_400db ld c, $7 .asm_400dd ld a, b cp [hl] jr z, .asm_400ec inc hl ld a, [$c7d1] inc a ld [$c7d1], a dec c jr nz, .asm_400dd .asm_400ec ret ; 400ed Function400ed: ; 400ed ld a, [MapGroup] ld b, a ld a, [MapNumber] ld c, a call GetWorldMapLocation cp SPECIAL_MAP jr nz, .asm_40107 ld a, [BackupMapGroup] ld b, a ld a, [BackupMapNumber] ld c, a call GetWorldMapLocation .asm_40107 ld [$c7e4], a ret ; 4010b Function4010b: ; 4010b ld a, [$cf63] ld hl, Jumptable_40115 call Function41432 jp [hl] ; 40115 ; no known jump sources Jumptable_40115: ; 40115 (10:4115) dw Function4013c dw Function401ae dw Function40217 dw Function40258 dw Function402aa dw Function40443 dw Function40471 dw Function4039d dw Function403be dw Function4050a dw Function40562 dw Function405bd dw Function405df dw Function40136 ; known jump sources: 401aa (10:41aa), 40254 (10:4254), 4026f (10:426f), 403ba (10:43ba), 4046d (10:446d), 4055e (10:455e), 405db (10:45db) Function40131: ; 40131 (10:4131) ld hl, $cf63 inc [hl] ret ; no known jump sources Function40136: ; 40136 (10:4136) ld hl, $cf63 set 7, [hl] ret ; no known jump sources Function4013c: ; 4013c (10:413c) xor a ld [hBGMapMode], a ; $ff00+$d4 call ClearSprites xor a ld hl, AttrMap ; $cdd9 ld bc, $168 call ByteFill callba Function1de171 ld hl, $c5f4 ld de, $47f2 call Function40acd ld a, $7 ld [$c7d3], a call Function40b0f call Function41aeb call Function41af7 call Function4074c ld a, $5 ld [hSCX], a ; $ff00+$cf ld a, [$c7d4] cp $1 ld a, $4a jr z, .asm_4017b ld a, $47 .asm_4017b ld [hWX], a ; $ff00+$d1 xor a ld [hWY], a ; $ff00+$d2 call WaitBGMap call Function41af7 ld a, $ff ld [CurPartySpecies], a ; $d108 ld a, $4 call Function41423 call Function41148 callba Function1de171 ld hl, $c5f4 ld de, $47f2 call Function40acd ld a, $7 ld [$c7d3], a call Function40b0f call Function40131 ret ; no known jump sources Function401ae: ; 401ae (10:41ae) ld hl, hJoyPressed ; $ffa7 ld a, [hl] and $2 jr nz, .asm_40211 ld a, [hl] and $1 jr nz, .asm_401d9 ld a, [hl] and $4 jr nz, .asm_401eb ld a, [hl] and $8 jr nz, .asm_401fe call Function406c5 ret nc call Function41148 xor a ld [hBGMapMode], a ; $ff00+$d4 call Function40b0f call Function41ad7 call Function41af7 ret .asm_401d9 call Function40bb1 call Function40bd0 ret z ld a, $2 ld [$cf63], a ld a, $0 ld [$cf64], a ret .asm_401eb call Function41401 ld a, $7 ld [$cf63], a xor a ld [hSCX], a ; $ff00+$cf ld a, $a7 ld [hWX], a ; $ff00+$d1 call DelayFrame ret .asm_401fe call Function41401 ld a, $5 ld [$cf63], a xor a ld [hSCX], a ; $ff00+$cf ld a, $a7 ld [hWX], a ; $ff00+$d1 call DelayFrame ret .asm_40211 ld a, $d ld [$cf63], a ret ; no known jump sources Function40217: ; 40217 (10:4217) call LowVolume xor a ld [$cf65], a xor a ld [hBGMapMode], a ; $ff00+$d4 call ClearSprites call Function41478 call Function407fd call Function4134f call Function40bb1 ld [$c2d6], a callba Function4424d call Function40ba0 call WaitBGMap ld a, $a7 ld [hWX], a ; $ff00+$d1 call Function40bb1 ld [CurPartySpecies], a ; $d108 ld a, $4 call Function41423 ld a, [CurPartySpecies] ; $d108 call Function37ce call Function40131 ret ; no known jump sources Function40258: ; 40258 (10:4258) ld de, Unknown_402e8 call Function4135a ld hl, hJoyPressed ; $ffa7 ld a, [hl] and $2 jr nz, .asm_4027d ld a, [hl] and $1 jr nz, .asm_40273 call Function4066c ret nc call Function40131 ret .asm_40273 ld a, [$c7d8] ld hl, Jumptable_402f2 call Function41432 jp [hl] .asm_4027d ld a, [LastVolume] ; $c2b4 and a jr z, .asm_40288 ld a, $77 ld [LastVolume], a ; $c2b4 .asm_40288 call MaxVolume ld a, [$cf64] ld [$cf63], a ret ; 40292 (10:4292) Function40292: ; 40292 ld a, [$cf65] xor $1 ld [$cf65], a call Function40bb1 ld [$c2d6], a callba Function4424d call WaitBGMap ret ; 402aa ; no known jump sources Function402aa: ; 402aa (10:42aa) call Function41401 xor a ld [$cf65], a xor a ld [hBGMapMode], a ; $ff00+$d4 call Function407fd call Function4134f call Function41478 call Function40bb1 ld [$c2d6], a callba Function4424d call Function40ba0 call Function4143b call WaitBGMap call Function40bb1 ld [CurPartySpecies], a ; $d108 ld a, $4 call Function41423 ld a, [CurPartySpecies] ; $d108 call Function37ce ld hl, $cf63 dec [hl] ret ; 402e8 (10:42e8) Unknown_402e8: ; 402e8 dw $0430 dw $c5f5 dw $c5fa dw $c5ff dw $c603 ; 402f2 Jumptable_402f2: ; 402f2 dw Function40292 dw Function402fa dw Function40340 dw Function4034f ; 402fa Function402fa: ; 402fa call Function41401 xor a ld [hSCX], a call DelayFrame ld a, $7 ld [hWX], a ld a, $90 ld [hWY], a call Function40bb1 ld a, [$c7e4] ld e, a ld a, $32 call Predef call Function41401 call DelayFrame xor a ld [hBGMapMode], a ld a, $90 ld [hWY], a ld a, $5 ld [hSCX], a call DelayFrame call Function4038d call Function4143b call WaitBGMap call Function40bb1 ld [CurPartySpecies], a ld a, $4 call Function41423 ret ; 40340 Function40340: ; 40340 call Function40bb1 ld a, [$d265] call Function381e ld e, c ld d, b call PlayCryHeader ret ; 4034f Function4034f: ; 4034f call Function41415 xor a ld [hSCX], a ld a, [$cf65] push af ld a, [$cf64] push af ld a, [$cf63] push af callba Function8442c pop af ld [$cf63], a pop af ld [$cf64], a pop af ld [$cf65], a call WhiteBGMap call DisableLCD call Function414fb call Function4038d call EnableLCD call WaitBGMap ld a, $5 ld [hSCX], a call Function41427 ret ; 4038d Function4038d: ; 4038d call Function407fd call Function40bb1 callba Function4424d call Function40ba0 ret ; 4039d ; no known jump sources Function4039d: ; 4039d (10:439d) xor a ld [hBGMapMode], a ; $ff00+$d4 call ClearSprites call Function4087c call Function4134f ld a, [$c7d4] ld [$c7d8], a call Function40e5b call WaitBGMap ld a, $10 call Function41423 call Function40131 ret ; no known jump sources Function403be: ; 403be (10:43be) ld a, [$c7dc] and a jr nz, .asm_403c9 ld de, Unknown_403f3 jr .asm_403cc .asm_403c9 ld de, Unknown_403fb .asm_403cc call Function4135a call c, Function40e5b ld hl, hJoyPressed ; $ffa7 ld a, [hl] and $6 jr nz, .asm_403ea ld a, [hl] and $1 jr nz, .asm_403e0 ret .asm_403e0 ld a, [$c7d8] ld hl, Jumptable_40405 call Function41432 jp [hl] .asm_403ea call Function41401 ld a, $0 ld [$cf63], a ret ; 403f3 (10:43f3) Unknown_403f3: ; 403f3 dw $03c0 dw $c4f2 dw $c51a dw $c542 ; 403fb Unknown_403fb: ; 403fb dw $04c0 dw $c4f2 dw $c51a dw $c542 dw $c56a ; 40405 ; no known jump sources Jumptable_40405: ; 40405 (10:4405) dw Function4040d dw Function40411 dw Function40415 dw Function4043a ; 4040d ; no known jump sources Function4040d: ; 4040d (10:440d) ld b, $0 jr Function40417 ; no known jump sources Function40411: ; 40411 (10:4411) ld b, $1 jr Function40417 ; no known jump sources Function40415: ; 40415 (10:4415) ld b, $2 Function40417: ; 40417 (10:4417) ld a, [$c7d4] cp b jr z, .asm_40431 ld a, b ld [$c7d4], a call Function40bdc call Function40f08 xor a ld [$c7d0], a ld [$c7d1], a call Function400b4 .asm_40431 call Function41401 ld a, $0 ld [$cf63], a ret ; no known jump sources Function4043a: ; 4043a (10:443a) call Function41401 ld a, $b ld [$cf63], a ret ; no known jump sources Function40443: ; 40443 (10:4443) xor a ld [hBGMapMode], a ; $ff00+$d4 call ClearSprites call Function408f0 call Function4134f ld a, $1 ld [$c7d5], a xor a ld [$c7d6], a call Function40fa8 xor a ld [$c7db], a callba Function44207 call WaitBGMap ld a, $10 call Function41423 call Function40131 ret ; no known jump sources Function40471: ; 40471 (10:4471) ld de, Unknown_4049e call Function4135a call Function40f4f call c, Function40fa8 ld hl, hJoyPressed ; $ffa7 ld a, [hl] and $a jr nz, .asm_40495 ld a, [hl] and $1 jr nz, .asm_4048b ret .asm_4048b ld a, [$c7d8] ld hl, Jumptable_404a8 call Function41432 jp [hl] .asm_40495 call Function41401 ld a, $0 ld [$cf63], a ret ; 4049e (10:449e) Unknown_4049e: ; 4049e dw $04c0 dw $c4f2 dw $c51a dw $c5a6 dw $c5ce ; 404a8 Jumptable_404a8: ; 404a8 dw Function404b0 dw Function404b0 dw Function404b7 dw Function40501 ; 404b0 Function404b0: ; 404b0 call Function40f84 call Function40fa8 ret ; 404b7 Function404b7: ; 404b7 call Function41086 callba Function441cf ld a, [$c7d7] and a jr nz, .asm_404dc call Function40bdc call Function41107 xor a ld [hBGMapMode], a call Function408f0 call Function4134f call Function40fa8 call WaitBGMap ret .asm_404dc ld [$c7d2], a ld a, [$c7d0] ld [$c7e0], a ld a, [$c7d1] ld [$c7e1], a ld a, [$c2d6] ld [$cf65], a xor a ld [$c7d0], a ld [$c7d1], a call Function41401 ld a, $9 ld [$cf63], a ret ; 40501 Function40501: ; 40501 call Function41401 ld a, $0 ld [$cf63], a ret ; 4050a ; no known jump sources Function4050a: ; 4050a (10:450a) xor a ld [hBGMapMode], a ; $ff00+$d4 xor a ld hl, AttrMap ; $cdd9 ld bc, $168 call ByteFill call Function41ae1 call Function41af7 callba Function1de1d1 call Function409cf ld a, $4 ld [$c7d3], a call Function40b0f call Function41ad7 call Function41af7 call Function40962 ld a, $5 ld [hSCX], a ; $ff00+$cf ld a, $4a ld [hWX], a ; $ff00+$d1 xor a ld [hWY], a ; $ff00+$d2 call WaitBGMap call Function41af7 callba Function1de1d1 call Function409cf call Function41281 ld a, $ff ld [CurPartySpecies], a ; $d108 ld a, $4 call Function41423 call Function40131 ret ; no known jump sources Function40562: ; 40562 (10:4562) ld hl, hJoyPressed ; $ffa7 ld a, [hl] and $2 jr nz, .asm_40595 ld a, [hl] and $1 jr nz, .asm_40583 call Function406c5 ret nc call Function41281 xor a ld [hBGMapMode], a ; $ff00+$d4 call Function40b0f call Function41ad7 call Function41af7 ret .asm_40583 call Function40bb1 call Function40bd0 ret z ld a, $2 ld [$cf63], a ld a, $9 ld [$cf64], a ret .asm_40595 ld a, [$c7e0] ld [$c7d0], a ld a, [$c7e1] ld [$c7d1], a ld a, [$cf65] ld [$c2d6], a call Function41401 call ClearSprites call Function40bdc ld a, $5 ld [$cf63], a xor a ld [hSCX], a ; $ff00+$cf ld a, $a7 ld [hWX], a ; $ff00+$d1 ret ; no known jump sources Function405bd: ; 405bd (10:45bd) call Function41a2c call Function409f1 xor a ld [$c7dd], a call Function41a58 call Function40658 callba Functionfba2e call WaitBGMap ld a, $16 call Function41423 call Function40131 ret ; no known jump sources Function405df: ; 405df (10:45df) ld hl, hJoyPressed ; $ffa7 ld a, [hl] and A_BUTTON | B_BUTTON jr nz, .asm_405eb call Function40610 ret .asm_405eb call Function41401 ld a, $7 ld [$cf63], a call DelayFrame call Function41a24 jr nz, .asm_40603 callba Function1ddf26 jr .asm_4060f .asm_40603 ld hl, PokedexLZ ld de, $9310 lb bc, BANK(PokedexLZ), $3a call Functione73 .asm_4060f ret ; known jump sources: 405e7 (10:45e7) Function40610: ; 40610 (10:4610) ld hl, $ffa9 ld a, [hl] and $10 jr nz, .asm_4061e ld a, [hl] and $20 jr nz, .asm_4062d ret .asm_4061e ld a, [$c7de] ld e, a ld hl, $c7dd ld a, [hl] inc a cp e ret nc ld a, [hl] inc [hl] jr .asm_40635 .asm_4062d ld hl, $c7dd ld a, [hl] and a ret z ld a, [hl] dec [hl] .asm_40635 push af xor a ld [hBGMapMode], a ; $ff00+$d4 pop af call Function40654 call Function41a58 call Function40658 callba Functionfba2e ld a, $1 ld [hBGMapMode], a ; $ff00+$d4 call DelayFrame call DelayFrame ret ; known jump sources: 4063a (10:463a) Function40654: ; 40654 (10:4654) ld c, $7f jr asm_4065d ; known jump sources: 405ca (10:45ca), 40640 (10:4640) Function40658: ; 40658 (10:4658) ld a, [$c7dd] ld c, $5a asm_4065d: ; 4065d (10:465d) ld e, a ld d, 0 ld hl, $4a40 add hl, de add hl, de add hl, de add hl, de ld a, [hli] ld h, [hl] ld l, a ld [hl], c ret ; known jump sources: 4026b (10:426b) Function4066c: ; 4066c (10:466c) ld a, [$c7d1] ld [$c7e2], a ld a, [$c7d0] ld [$c7e3], a ld hl, $ffa9 ld a, [hl] and $40 jr nz, .asm_40687 ld a, [hl] and $80 jr nz, .asm_4069e and a ret .asm_40687 ld a, [$c7d3] ld d, a ld a, [$c7d2] ld e, a call Function406ea jr nc, .asm_406b7 call Function40bb1 call Function40bd0 jr nz, .asm_406b5 jr .asm_40687 .asm_4069e ld a, [$c7d3] ld d, a ld a, [$c7d2] ld e, a call Function406fe jr nc, .asm_406b7 call Function40bb1 call Function40bd0 jr nz, .asm_406b5 jr .asm_4069e .asm_406b5 scf ret .asm_406b7 ld a, [$c7e2] ld [$c7d1], a ld a, [$c7e3] ld [$c7d0], a and a ret ; known jump sources: 401c5 (10:41c5), 4056f (10:456f) Function406c5: ; 406c5 (10:46c5) ld a, [$c7d3] ld d, a ld a, [$c7d2] ld e, a ld hl, $ffa9 ld a, [hl] and $40 jr nz, Function406ea ld a, [hl] and $80 jr nz, Function406fe ld a, d cp e jr nc, asm_4073d ld a, [hl] and $20 jr nz, asm_40716 ld a, [hl] and $10 jr nz, asm_40728 jr asm_4073d ; known jump sources: 4068f (10:468f), 406d3 (10:46d3) Function406ea: ; 406ea (10:46ea) ld hl, $c7d1 ld a, [hl] and a jr z, .asm_406f4 dec [hl] jr asm_4073f .asm_406f4 ld hl, $c7d0 ld a, [hl] and a jr z, asm_4073d dec [hl] jr asm_4073f ; known jump sources: 406a6 (10:46a6), 406d8 (10:46d8) Function406fe: ; 406fe (10:46fe) ld hl, $c7d1 ld a, [hl] inc a cp e jr nc, asm_4073d cp d jr nc, .asm_4070c inc [hl] jr asm_4073f .asm_4070c ld hl, $c7d0 add [hl] cp e jr nc, asm_4073d inc [hl] jr asm_4073f asm_40716: ; 40716 (10:4716) ld hl, $c7d0 ld a, [hl] and a jr z, asm_4073d cp d jr nc, .asm_40724 xor a ld [hl], a jr asm_4073f .asm_40724 sub d ld [hl], a jr asm_4073f asm_40728: ; 40728 (10:4728) ld hl, $c7d0 ld a, d add a add [hl] jr c, .asm_40733 cp e jr c, .asm_40738 .asm_40733 ld a, e sub d ld [hl], a jr asm_4073f .asm_40738 ld a, [hl] add d ld [hl], a jr asm_4073f asm_4073d: ; 4073d (10:473d) and a ret asm_4073f: ; 4073f (10:473f) scf ret Function40741: ; 40741 push de ld de, $0014 .asm_40745 ld [hl], a add hl, de dec b jr nz, .asm_40745 pop de ret ; 4074c ; known jump sources: 40169 (10:4169) Function4074c: ; 4074c (10:474c) ld hl, $c5f4 ld de, Unknown_407f2 call Function40acd ld a, $32 ld hl, TileMap ; $c4a0 (aliases: SpritesEnd) ld bc, $168 call ByteFill ld hl, TileMap ; $c4a0 (aliases: SpritesEnd) ld bc, $707 call Function40ad5 ld hl, $c554 ld bc, $607 call Function40ad5 ld hl, $c57d ld de, Unknown_407e1 call Function40acd ld hl, PokedexSeen ; $deb9 (aliases: EndPokedexSeen) ld b, $20 call CountSetBits ld de, $d265 ld hl, $c595 ld bc, $103 call PrintNum ld hl, $c5b9 ld de, Unknown_407e6 call Function40acd ld hl, PokedexCaught ; $de99 ld b, $20 call CountSetBits ld de, $d265 ld hl, $c5d1 ld bc, $103 call PrintNum ld hl, $c5f5 ld de, Unknown_407ea call Function40acd ld hl, $c4bc ld b, $7 ld a, $5a call Function40741 ld hl, $c570 ld b, $6 ld a, $5a call Function40741 ld hl, $c4a8 ld [hl], $59 ld hl, $c548 ld [hl], $53 ld hl, $c55c ld [hl], $54 ld hl, $c5e8 ld [hl], $5b call Function40ab2 ret ; 407e1 (10:47e1) Unknown_407e1: ; 407e1 db "SEEN", $ff Unknown_407e6: ; 407e6 db "OWN", $ff Unknown_407ea: ; 407ea db $3b, $48, $49, $4a, $44, $45, $46, $47 ; SELECT > OPTION Unknown_407f2: ; 407f2 db $3c, $3b, $41, $42, $43, $4b, $4c, $4d, $4e, $3c, $ff ; START > SEARCH ; 407fd Function407fd: ; 407fd call Function40aa6 ld hl, TileMap ld bc, $0f12 call Function40ad5 ld hl, $c4b3 ld [hl], $34 ld hl, $c4c7 ld a, $7f ld b, $f call Function40741 ld [hl], $39 ld hl, $c569 ld bc, $0013 ld a, $61 call ByteFill ld hl, $c5f5 ld bc, $0012 ld a, $7f call ByteFill ld hl, $c535 ld de, Unknown_40852 call Function40acd ld hl, $c55d ld de, Unknown_4085c call Function40acd ld hl, $c5f4 ld de, Unknown_40867 call Function40acd call Function40ab2 ret ; 4084f Unknown_4084f: ; 4084f db $5c, $5d, $ff ; No. Unknown_40852: ; 40852 db "HT ?", $5e, "??", $5f, $ff ; HT ?'??" Unknown_4085c: ; 4085c db "WT ???lb", $ff ; WT ???lb Unknown_40867: ; 40867 db $3b, " PAGE AREA CRY PRNT", $ff ; 4087c ; known jump sources: 403a3 (10:43a3) Function4087c: ; 4087c (10:487c) call Function40aa6 ld hl, $c4c8 ld bc, $812 call Function40ad5 ld hl, $c590 ld bc, $412 call Function40ad5 ld hl, $c4b4 ld de, Unknown_408b2 call Function40acd ld hl, $c4f3 ld de, String_408bd call PlaceString ld a, [$c7dc] and a ret z ld hl, $c56b ld de, String_408e5 call PlaceString ret ; 408b2 (10:48b2) Unknown_408b2: ; 408b2 db $3b, " OPTION ", $3c, $ff ; 408bd String_408bd: ; 408bd db "NEW #DEX MODE", $4e db "OLD #DEX MODE", $4e db "A to Z MODE@" ; 408e5 String_408e5: ; 408e5 db "UNOWN MODE@" ; 408f0 ; known jump sources: 40449 (10:4449) Function408f0: ; 408f0 (10:48f0) call Function40aa6 ld hl, $c4c8 ld bc, $e12 call Function40ad5 ld hl, $c4b4 ld de, Unknown_4092a call Function40acd ld hl, $c4f8 ld de, Unknown_40935 call Function40acd ld hl, $c520 ld de, Unknown_40935 call Function40acd ld hl, $c4f3 ld de, String_40940 call PlaceString ld hl, $c5a7 ld de, String_4094c call PlaceString ret ; 4092a (10:492a) Unknown_4092a: ; 4092a db $3b, " SEARCH ", $3c, $ff ; 40925 Unknown_40935: ; 40935 db $3d, " ", $3e, $ff ; 40940 String_40940: ; 40940 db "TYPE1", $4e db "TYPE2@" ; 4094c String_4094c: ; 4094c db "BEGIN SEARCH!!", $4e, "CANCEL@" ; 40962 ; known jump sources: 40534 (10:4534) Function40962: ; 40962 (10:4962) call Function40aa6 ld hl, TileMap ; $c4a0 (aliases: SpritesEnd) ld bc, $707 call Function40ad5 ld hl, $c57c ld bc, $512 call Function40ad5 ld hl, $c591 ld de, String_409ae call PlaceString ld de, $c7d7 ld hl, $c5e1 ld bc, $103 call PrintNum ld hl, $c4a8 ld [hl], $59 ld hl, $c4bc ld b, $7 ld a, $5a call Function40741 ld hl, $c548 ld [hl], $53 ld hl, $c55c ld [hl], $69 ld hl, $c570 ld [hl], $6a call Function40ab2 ret ; 409ae (10:49ae) String_409ae: ; 409ae db "SEARCH RESULTS", $4e db " TYPE", $4e db " FOUND!@" ; 409cf ; known jump sources: 40523 (10:4523), 4054e (10:454e) Function409cf: ; 409cf (10:49cf) ld a, [$c7d5] ld hl, $c5b8 call Function40fcd ld a, [$c7d5] ld b, a ld a, [$c7d6] and a jr z, .asm_409f0 cp b jr z, .asm_409f0 ld hl, $c5ce call Function40fcd ld hl, $c5cd ld [hl], $f3 .asm_409f0 ret ; known jump sources: 405c0 (10:45c0) Function409f1: ; 409f1 (10:49f1) call Function40aa6 ld hl, $c4b6 ld bc, $a0d call Function40ad5 ld hl, $c5ba ld bc, $10d call Function40ad5 ld hl, $c5ce ld [hl], $3d ld hl, $c5dc ld [hl], $3e ld hl, $c50a call Function40ab5 ld de, $0 ld b, $0 ld c, $1a .asm_40a1d ld hl, EndPokedexSeen ; $ded9 (aliases: UnownDex) add hl, de ld a, [hl] and a jr z, .asm_40a39 push af ld hl, Unknown_40a3e add hl, de add hl, de add hl, de add hl, de ld a, [hli] ld h, [hl] ld l, a pop af add $3f ld [hl], a inc de inc b dec c jr nz, .asm_40a1d .asm_40a39 ld a, b ld [$c7de], a ret ; 40a3e (10:4a3e) Unknown_40a3e: ; 40a3e dw $c580, $c57f dw $c56c, $c56b dw $c558, $c557 dw $c544, $c543 dw $c530, $c52f dw $c51c, $c51b dw $c508, $c507 dw $c4f4, $c4f3 dw $c4e0, $c4cb dw $c4e1, $c4cd dw $c4e2, $c4ce dw $c4e3, $c4cf dw $c4e4, $c4d0 dw $c4e5, $c4d1 dw $c4e6, $c4d2 dw $c4e7, $c4d3 dw $c4e8, $c4d4 dw $c4e9, $c4d5 dw $c4ea, $c4d7 dw $c4fe, $c4ff dw $c512, $c513 dw $c526, $c527 dw $c53a, $c53b dw $c54e, $c54f dw $c562, $c563 dw $c576, $c577 ; 40aa6 Function40aa6: ; 40aa6 ld hl, TileMap ld a, $32 ld bc, $0168 call ByteFill ret ; 40ab2 Function40ab2: ; 40ab2 ld hl, $c4b5 Function40ab5: ; 40ab5 xor a ld b, $7 .asm_40ab8 ld c, $7 push af push hl .asm_40abc ld [hli], a add $7 dec c jr nz, .asm_40abc pop hl ld de, $0014 add hl, de pop af inc a dec b jr nz, .asm_40ab8 ret ; 40acd Function40acd: ; 40acd .asm_40acd ld a, [de] cp $ff ret z inc de ld [hli], a jr .asm_40acd ; 40ad5 Function40ad5: ; 40ad5 push hl ld a, $33 ld [hli], a ld d, $34 call Function40b06 ld a, $35 ld [hl], a pop hl ld de, $0014 add hl, de .asm_40ae6 push hl ld a, $36 ld [hli], a ld d, $7f call Function40b06 ld a, $37 ld [hl], a pop hl ld de, $0014 add hl, de dec b jr nz, .asm_40ae6 ld a, $38 ld [hli], a ld d, $39 call Function40b06 ld a, $3a ld [hl], a ret ; 40b06 Function40b06: ; 40b06 ld e, c .asm_40b07 ld a, e and a ret z ld a, d ld [hli], a dec e jr .asm_40b07 ; 40b0f ; known jump sources: 40160 (10:4160), 401a7 (10:41a7), 401cf (10:41cf), 4052b (10:452b), 40579 (10:4579) Function40b0f: ; 40b0f (10:4b0f) ld a, [$c7d4] cp $1 jr z, .asm_40b1a ld c, $b jr .asm_40b1c .asm_40b1a ld c, $b .asm_40b1c ld hl, $c4b4 ld a, [$c7d3] add a inc a ld b, a ld a, $7f call Function413fe ld a, [$c7d0] ld e, a ld d, $0 ld hl, PlayerSDefLevel ; $c6d0 add hl, de ld e, l ld d, h ld hl, $c4c8 ld a, [$c7d3] .asm_40b3c push af ld a, [de] ld [$d265], a push de push hl call Function40b55 pop hl ld de, $28 add hl, de pop de inc de pop af dec a jr nz, .asm_40b3c call Function4143b ret ; known jump sources: 40b43 (10:4b43) Function40b55: ; 40b55 (10:4b55) and a ret z call Function40b6a call Function40b8d ret c call Function40b82 push hl call GetPokemonName pop hl call PlaceString ret ; known jump sources: 40b57 (10:4b57) Function40b6a: ; 40b6a (10:4b6a) ld a, [$c7d4] cp $1 jr z, .asm_40b72 ret .asm_40b72 push hl ld de, $ffec add hl, de ld de, $d265 ld bc, $8103 call PrintNum pop hl ret ; known jump sources: 40b5e (10:4b5e) Function40b82: ; 40b82 (10:4b82) call Function40bc4 jr nz, .asm_40b89 inc hl ret .asm_40b89 ld a, $4f ld [hli], a ret ; known jump sources: 40b5a (10:4b5a) Function40b8d: ; 40b8d (10:4b8d) call Function40bd0 ret nz inc hl ld de, String_40b9a call PlaceString scf ret ; 40b9a (10:4b9a) String_40b9a: ; 40b9a db "-----@" ; 40ba0 Function40ba0: ; 40ba0 ld hl, $c4c6 ld a, $62 ld [hli], a inc a ld [hl], a ld hl, $c4da ld a, $64 ld [hli], a inc a ld [hl], a ret ; 40bb1 Function40bb1: ; 40bb1 ld a, [$c7d1] ld hl, $c7d0 add [hl] ld e, a ld d, $0 ld hl, PlayerSDefLevel add hl, de ld a, [hl] ld [$d265], a ret ; 40bc4 ; known jump sources: 40b82 (10:4b82) Function40bc4: ; 40bc4 (10:4bc4) push de push hl ld a, [$d265] dec a call CheckCaughtMon pop hl pop de ret Function40bd0: ; 40bd0 push de push hl ld a, [$d265] dec a call CheckSeenMon pop hl pop de ret ; 40bdc Function40bdc: ; 40bdc ld hl, PlayerSDefLevel ld bc, Start xor a call ByteFill ld a, [$c7d4] ld hl, Jumptable_40bf0 call Function41432 jp [hl] ; 40bf0 ; no known jump sources Jumptable_40bf0: ; 40bf0 (10:4bf0) dw Function40bf6 dw Function40c08 dw Function40c30 ; no known jump sources Function40bf6: ; 40bf6 (10:4bf6) ld de, NewPokedexOrder ld hl, $c6d0 ld c, NUM_POKEMON .asm_40bfe ld a, [de] inc de ld [hli], a dec c jr nz, .asm_40bfe call Function40c18 ret ; no known jump sources Function40c08: ; 40c08 (10:4c08) ld hl, $c6d0 ld a, $1 ld c, NUM_POKEMON .asm_40c0f ld [hli], a inc a dec c jr nz, .asm_40c0f call Function40c18 ret ; known jump sources: 40c04 (10:4c04), 40c14 (10:4c14) Function40c18: ; 40c18 (10:4c18) ld hl, $c7ca ld d, NUM_POKEMON ld e, d .asm_40c1e ld a, [hld] ld [$d265], a call Function40bd0 jr nz, .asm_40c2b dec d dec e jr nz, .asm_40c1e .asm_40c2b ld a, d ld [$c7d2], a ret Function40c30: ; 40c30 xor a ld [$c7d2], a ld hl, $c6d0 ld de, AlphabeticalPokedexOrder ld c, NUM_POKEMON .asm_40c3c push bc ld a, [de] ld [$d265], a call Function40bd0 jr z, .asm_40c51 ld a, [$d265] ld [hli], a ld a, [$c7d2] inc a ld [$c7d2], a .asm_40c51 inc de pop bc dec c jr nz, .asm_40c3c ld a, [$c7d2] ld c, 0 .asm_40c5b cp NUM_POKEMON jr z, .asm_40c64 ld [hl], c inc hl inc a jr .asm_40c5b .asm_40c64 ret ; 40c65 AlphabeticalPokedexOrder: ; 0x40c65 INCLUDE "stats/pokedex/order_alpha.asm" NewPokedexOrder: ; 0x40d60 INCLUDE "stats/pokedex/order_new.asm" Function40e5b: ; 40e5b xor a ld [hBGMapMode], a ld hl, $c590 ld bc, $0412 call Function40ad5 ld a, [$c7d8] ld hl, Unknown_40e7d call Function41432 ld e, l ld d, h ld hl, $c5b9 call PlaceString ld a, $1 ld [hBGMapMode], a ret ; 40e7d Unknown_40e7d: ; 40e7d dw String_40e85 dw String_40ea6 dw String_40ec6 dw String_40ee4 ; 40e85 String_40e85: ; 40e85 db $e1, $e2, " are listed by", $4e db "evolution type.@" ; 40ea6 String_40ea6: ; 40ea6 db $e1, $e2, " are listed by", $4e db "official type.@" ; 40ec6 String_40ec6: ; 40ec6 db $e1, $e2, " are listed", $4e db "alphabetically.@" ; 40ee4 String_40ee4: ; 40ee4 db "UNOWN are listed", $4e db "in catching order.@" ; 40f08 ; known jump sources: 40424 (10:4424) Function40f08: ; 40f08 (10:4f08) xor a ld [hBGMapMode], a ; $ff00+$d4 ld hl, $c590 ld bc, $412 call Function40ad5 ld de, $4f32 ld hl, $c5b9 call PlaceString ld a, $1 ld [hBGMapMode], a ; $ff00+$d4 ld c, $40 call DelayFrames ld de, SFX_CHANGE_DEX_MODE call PlaySFX ld c, $40 call DelayFrames ret ; 40f32 (10:4f32) String_40f32: ; 40f32 db "Changing modes.", $4e, "Please wait.@" ; 40f4f ; known jump sources: 40477 (10:4477) Function40f4f: ; 40f4f (10:4f4f) ld a, [$c7d8] cp $2 jr nc, .asm_40f63 ld hl, $ffa9 ld a, [hl] and $20 jr nz, .asm_40f65 ld a, [hl] and $10 jr nz, Function40f84 .asm_40f63 and a ret .asm_40f65 ld a, [$c7d8] and a jr nz, .asm_40f76 ld hl, $c7d5 ld a, [hl] cp $1 jr z, .asm_40f80 dec [hl] jr .asm_40f82 .asm_40f76 ld hl, $c7d6 ld a, [hl] and a jr z, .asm_40f80 dec [hl] jr .asm_40f82 .asm_40f80 ld [hl], $11 .asm_40f82 scf ret ; 40f84 Function40f84: ; 40f84 ld a, [$c7d8] and a jr nz, .asm_40f99 ld hl, $c7d5 ld a, [hl] cp $11 jr nc, .asm_40f95 inc [hl] jr .asm_40fa6 .asm_40f95 ld [hl], $1 jr .asm_40fa6 .asm_40f99 ld hl, $c7d6 ld a, [hl] cp $11 jr nc, .asm_40fa4 inc [hl] jr .asm_40fa6 .asm_40fa4 ld [hl], $0 .asm_40fa6 scf ret ; known jump sources: 40458 (10:4458), 4047a (10:447a) Function40fa8: ; 40fa8 (10:4fa8) xor a ld [hBGMapMode], a ; $ff00+$d4 ld hl, $c4e5 ld bc, $408 ld a, $7f call Function413fe ld a, [$c7d5] ld hl, $c4f9 call Function40fcd ld a, [$c7d6] ld hl, $c521 call Function40fcd ld a, $1 ld [hBGMapMode], a ; $ff00+$d4 ret ; known jump sources: 409d5 (10:49d5), 409e8 (10:49e8), 40fbc (10:4fbc), 40fc5 (10:4fc5) Function40fcd: ; 40fcd (10:4fcd) push hl ld e, a ld d, 0 ld hl, Strings_40fe4 add hl, de add hl, de add hl, de add hl, de add hl, de add hl, de add hl, de add hl, de add hl, de ld e, l ld d, h pop hl call PlaceString ret ; 40fe4 (10:4fe4) Strings_40fe4: ; 40fe4 db " ---- @" db " NORMAL @" db " FIRE @" db " WATER @" db " GRASS @" db "ELECTRIC@" db " ICE @" db "FIGHTING@" db " POISON @" db " GROUND @" db " FLYING @" db "PSYCHIC @" db " BUG @" db " ROCK @" db " GHOST @" db " DRAGON @" db " DARK @" db " STEEL @" ; 41086 Function41086: ; 41086 ld a, [$c7d6] and a call nz, Function41095 ld a, [$c7d5] and a call nz, Function41095 ret ; 41095 Function41095: ; 41095 dec a ld e, a ld d, 0 ld hl, Unknown_410f6 add hl, de ld a, [hl] ld [$c7df], a ld hl, $c6d0 ld de, $c6d0 ld c, NUM_POKEMON xor a ld [$c7d7], a .asm_410ad push bc ld a, [hl] and a jr z, .asm_410e0 ld [$d265], a ld [CurSpecies], a call Function40bc4 jr z, .asm_410e0 push hl push de call GetBaseData pop de pop hl ld a, [$c7df] ld b, a ld a, [BaseType1] cp b jr z, .asm_410d4 ld a, [BaseType2] cp b jr nz, .asm_410e0 .asm_410d4 ld a, [$d265] ld [de], a inc de ld a, [$c7d7] inc a ld [$c7d7], a .asm_410e0 inc hl pop bc dec c jr nz, .asm_410ad ld l, e ld h, d ld a, [$c7d7] ld c, 0 .asm_410ec cp NUM_POKEMON jr z, .asm_410f5 ld [hl], c inc hl inc a jr .asm_410ec .asm_410f5 ret ; 410f6 Unknown_410f6: ; 410f6 db NORMAL db FIRE db WATER db GRASS db ELECTRIC db ICE db FIGHTING db POISON db GROUND db FLYING db PSYCHIC db BUG db ROCK db GHOST db DRAGON db DARK db STEEL ; 41107 Function41107: ; 41107 xor a ld [hBGMapMode], a ld hl, $c590 ld bc, $0412 call Function40ad5 ld de, String_41126 ld hl, $c5b9 call PlaceString ld a, $1 ld [hBGMapMode], a ld c, $80 call DelayFrames ret ; 41126 String_41126: ; 41126 db "The specified type", $4e db "was not found.@" ; 41148 ; known jump sources: 40190 (10:4190), 401c9 (10:41c9) Function41148: ; 41148 (10:5148) ld a, [$c7d4] cp $1 jp z, Function41157 call Function41229 call Function4130e ret ; known jump sources: 4114d (10:514d), 41286 (10:5286) Function41157: ; 41157 (10:5157) ld hl, Unknown_41167 ld a, [$c7d1] or a jr nz, .asm_41163 ld hl, Unknown_411c8 .asm_41163 call Function412f1 ret ; 41167 (10:5167) Unknown_41167: ; 41167 ; OAM db $18, $47, $30, $07 db $10, $47, $31, $07 db $10, $4f, $32, $07 db $10, $57, $32, $07 db $10, $5f, $32, $07 db $10, $67, $33, $07 db $10, $7e, $33, $27 db $10, $86, $32, $27 db $10, $8e, $32, $27 db $10, $96, $32, $27 db $10, $9e, $31, $27 db $18, $9e, $30, $27 db $20, $47, $30, $47 db $28, $47, $31, $47 db $28, $4f, $32, $47 db $28, $57, $32, $47 db $28, $5f, $32, $47 db $28, $67, $33, $47 db $28, $7e, $33, $67 db $28, $86, $32, $67 db $28, $8e, $32, $67 db $28, $96, $32, $67 db $28, $9e, $31, $67 db $20, $9e, $30, $67 db $ff ; 411c8 Unknown_411c8: ; 411c8 ; OAM db $18, $47, $30, $07 db $10, $47, $34, $07 db $10, $4f, $35, $07 db $10, $57, $35, $07 db $10, $5f, $35, $07 db $10, $67, $36, $07 db $10, $7e, $36, $27 db $10, $86, $35, $27 db $10, $8e, $35, $27 db $10, $96, $35, $27 db $10, $9e, $34, $27 db $18, $9e, $30, $27 db $20, $47, $30, $47 db $28, $47, $31, $47 db $28, $4f, $32, $47 db $28, $57, $32, $47 db $28, $5f, $32, $47 db $28, $67, $33, $47 db $28, $7e, $33, $67 db $28, $86, $32, $67 db $28, $8e, $32, $67 db $28, $96, $32, $67 db $28, $9e, $31, $67 db $20, $9e, $30, $67 db $ff ; 41229 ; known jump sources: 41150 (10:5150) Function41229: ; 41229 (10:5229) ld hl, Unknown_41230 call Function412f1 ret ; 41230 (10:5230) Unknown_41230: ; 41230 ; OAM db $1b, $47, $30, $07 db $13, $47, $31, $07 db $13, $4f, $32, $07 db $13, $57, $32, $07 db $13, $5f, $33, $07 db $13, $80, $33, $27 db $13, $88, $32, $27 db $13, $90, $32, $27 db $13, $98, $31, $27 db $1b, $98, $30, $27 db $23, $47, $30, $47 db $2b, $47, $31, $47 db $2b, $4f, $32, $47 db $2b, $57, $32, $47 db $2b, $5f, $33, $47 db $2b, $80, $33, $67 db $2b, $88, $32, $67 db $2b, $90, $32, $67 db $2b, $98, $31, $67 db $23, $98, $30, $67 db $ff ; 41281 ; known jump sources: 40551 (10:4551), 40573 (10:4573) Function41281: ; 41281 (10:5281) ld a, [$c7d4] cp $1 jp z, Function41157 ld hl, Unknown_41290 call Function412f1 ret ; 41290 (10:5290) Unknown_41290: ; 41290 ; OAM db $1b, $47, $30, $07 db $13, $47, $31, $07 db $13, $4f, $32, $07 db $13, $57, $32, $07 db $13, $5f, $32, $07 db $13, $67, $33, $07 db $13, $7e, $33, $27 db $13, $86, $32, $27 db $13, $8e, $32, $27 db $13, $96, $32, $27 db $13, $9e, $31, $27 db $1b, $9e, $30, $27 db $23, $47, $30, $47 db $2b, $47, $31, $47 db $2b, $4f, $32, $47 db $2b, $57, $32, $47 db $2b, $5f, $32, $47 db $2b, $67, $33, $47 db $2b, $7e, $33, $67 db $2b, $86, $32, $67 db $2b, $8e, $32, $67 db $2b, $96, $32, $67 db $2b, $9e, $31, $67 db $23, $9e, $30, $67 db $ff ; 412f1 ; known jump sources: 41163 (10:5163), 4122c (10:522c), 4128c (10:528c) Function412f1: ; 412f1 (10:52f1) ld de, Sprites ; $c400 .asm_412f4 ld a, [hl] cp $ff ret z ld a, [$c7d1] and $7 swap a add [hl] inc hl ld [de], a inc de ld a, [hli] ld [de], a inc de ld a, [hli] ld [de], a inc de ld a, [hli] ld [de], a inc de jr .asm_412f4 ; known jump sources: 41153 (10:5153) Function4130e: ; 4130e (10:530e) push de ld a, [$c7d2] dec a ld e, a ld a, [$c7d1] ld hl, $c7d0 add [hl] cp e jr z, .asm_4133f ld hl, $0 ld bc, $79 call AddNTimes ld e, l ld d, h ld b, $0 ld a, d or e jr z, .asm_41341 ld a, [$c7d2] ld c, a .asm_41333 ld a, e sub c ld e, a ld a, d sbc $0 ld d, a jr c, .asm_41341 inc b jr .asm_41333 .asm_4133f ld b, $79 .asm_41341 ld a, $14 add b pop hl ld [hli], a ld a, $a1 ld [hli], a ld a, $f ld [hli], a ld [hl], $0 ret ; known jump sources: 4022a (10:422a), 402b7 (10:42b7), 403a6 (10:43a6), 4044c (10:444c) Function4134f: ; 4134f (10:534f) xor a ld [$c7d8], a ld [$c7d9], a ld [$c7da], a ret ; known jump sources: 4025b (10:425b), 403cc (10:43cc), 40474 (10:4474) Function4135a: ; 4135a (10:535a) ld a, [de] ld b, a inc de ld a, [de] dec a ld c, a inc de call Function413e0 ld hl, hJoyPressed ; $ffa7 ld a, [hl] and D_LEFT | D_UP and b jr nz, .asm_4138f ld a, [hl] and D_RIGHT | D_DOWN and b jr nz, .asm_413a0 ld a, [hl] and SELECT and b jr nz, .asm_413c1 call Function413f5 jr c, .asm_413bf ld hl, $ffa9 ld a, [hl] and D_LEFT | D_UP and b jr nz, .asm_4138f ld a, [hl] and D_RIGHT | D_DOWN and b jr nz, .asm_413a0 jr .asm_413bf .asm_4138f ld a, [$c7d8] and a jr z, .asm_413bf call Function413d4 ld [hl], $7f ld hl, $c7d8 dec [hl] jr .asm_413af .asm_413a0 ld a, [$c7d8] cp c jr nc, .asm_413bf call Function413d4 ld [hl], $7f ld hl, $c7d8 inc [hl] .asm_413af call Function413d4 ld [hl], $ed ld a, $c ld [$c7d9], a xor a ld [$c7da], a scf ret .asm_413bf and a ret .asm_413c1 call Function413d4 ld [hl], $7f ld a, [$c7d8] cp c jr c, .asm_413ce ld a, $ff .asm_413ce inc a ld [$c7d8], a jr .asm_413af ; known jump sources: 41395 (10:5395), 413a6 (10:53a6), 413af (10:53af), 413c1 (10:53c1), 413e9 (10:53e9), 413ef (10:53ef) Function413d4: ; 413d4 (10:53d4) ld a, [$c7d8] add a ld l, a ld h, $0 add hl, de ld a, [hli] ld h, [hl] ld l, a ret ; known jump sources: 41361 (10:5361) Function413e0: ; 413e0 (10:53e0) ld hl, $c7da ld a, [hl] inc [hl] and $8 jr z, .asm_413ef call Function413d4 ld [hl], $7f ret .asm_413ef call Function413d4 ld [hl], $ed ret ; known jump sources: 41379 (10:5379) Function413f5: ; 413f5 (10:53f5) ld hl, $c7d9 ld a, [hl] and a ret z dec [hl] scf ret ; known jump sources: 40b27 (10:4b27), 40fb3 (10:4fb3) Function413fe: ; 413fe (10:53fe) jp Functionfb8 ; known jump sources: 401eb (10:41eb), 401fe (10:41fe), 402aa (10:42aa), 403ea (10:43ea), 40431 (10:4431), 4043a (10:443a), 40495 (10:4495), 405a7 (10:45a7), 405eb (10:45eb) Function41401: ; 41401 (10:5401) ld a, [rSVBK] ; $ff00+$70 push af ld a, $5 ld [rSVBK], a ; $ff00+$70 ld hl, Unkn1Pals ; $d000 ld bc, $40 xor a call ByteFill pop af ld [rSVBK], a ; $ff00+$70 Function41415: ; 41415 ld a, $ff call DmgToCgbBGPals ld a, $ff call Functioncf8 call DelayFrame ret Function41423: ; 41423 ld b, a call GetSGBLayout Function41427: ; 41427 ld a, $e4 call DmgToCgbBGPals ld a, $e0 call Functioncf8 ret ; 41432 Function41432: ; 41432 ld e, a ld d, 0 add hl, de add hl, de ld a, [hli] ld h, [hl] ld l, a ret ; 4143b Function4143b: ; 4143b call Function40bb1 call Function40bd0 jr z, .asm_4145b ld a, [$def4] ld [UnownLetter], a ld a, [$d265] ld [CurPartySpecies], a call GetBaseData ld de, VTiles2 ld a, $3c call Predef ret .asm_4145b ld a, $0 call GetSRAMBank callba Function1de0d7 ld hl, VTiles2 ld de, $a000 ld c, $31 ld a, [hROMBank] ld b, a call Get2bpp call CloseSRAM ret ; 41478 ; known jump sources: 40224 (10:4224), 402ba (10:42ba) Function41478: ; 41478 (10:5478) call Function40bb1 Function4147b: ; 4147b ld a, [$d265] dec a and $f8 srl a srl a srl a ld e, 0 ld d, a ld a, [$d265] dec a and 7 swap a ; * $10 ld l, a ld h, 0 add hl, de ld de, Footprints add hl, de push hl ld e, l ld d, h ld hl, $9620 lb bc, BANK(Footprints), 2 call Request1bpp pop hl ; Whoever was editing footprints forgot to fix their ; tile editor. Now each bottom half is 8 tiles off. ld de, $80 add hl, de ld e, l ld d, h ld hl, $9640 lb bc, BANK(Footprints), 2 call Request1bpp ret ; 414b7 Function414b7: ; 414b7 call DisableLCD ld hl, VTiles2 ld bc, $0310 xor a call ByteFill call Function414fb call Functione5f ld hl, $9600 ld bc, $0200 call Function41504 call Function41a24 jr nz, .asm_414e0 callba Function1ddf1c jr .asm_414e9 .asm_414e0 ld hl, PokedexLZ ld de, $9310 call Decompress .asm_414e9 ld hl, PokedexSlowpokeLZ ld de, VTiles0 call Decompress ld a, $6 call Function3cb4 call EnableLCD ret Function414fb: ; 414fb call Functione51 ld hl, VTiles1 ld bc, $0800 Function41504: ; 41504 ld a, [hl] xor $ff ld [hli], a dec bc ld a, b or c jr nz, Function41504 ret ; 4150e PokedexLZ: ; 4150e INCBIN "baserom.gbc",$4150e,$416b0 - $4150e ; 416b0 PokedexSlowpokeLZ: ; 416b0 INCBIN "baserom.gbc",$416b0,$41a24 - $416b0 Function41a24: ; 41a24 ld a, [hCGB] or a ret nz ld a, [hSGB] dec a ret ; 41a2c Function41a2c: ; 41a2c ld a, $0 call GetSRAMBank ld hl, UnownFont ld de, $a188 ld bc, $0270 ld a, BANK(UnownFont) call FarCopyBytes ld hl, $a188 ld bc, $01b0 call Function41504 ld de, $a188 ld hl, $9400 lb bc, $10, $1b call Request2bpp call CloseSRAM ret ; 41a58 ; known jump sources: 405c7 (10:45c7), 4063d (10:463d) Function41a58: ; 41a58 (10:5a58) ld a, [UnownLetter] ; $d234 push af ld a, [$c7dd] ld e, a ld d, $0 ld hl, EndPokedexSeen ; $ded9 (aliases: UnownDex) add hl, de ld a, [hl] ld [UnownLetter], a ; $d234 ld a, UNOWN ld [CurPartySpecies], a ; $d108 call GetBaseData ld de, $9000 ld a, $3c call Predef pop af ld [UnownLetter], a ; $d234 ret Function41a7f: ; 41a7f xor a ld [hBGMapMode], a callba Function1de247 call Function41af7 call DisableLCD call Functione51 call Functione5f call Function414b7 call Function4147b ld a, [$d265] ld [CurPartySpecies], a call Function407fd call Function40ba0 ld hl, $c5f4 ld [hl], $3b inc hl ld bc, $0013 ld a, $7f call ByteFill callba Function4424d call EnableLCD call WaitBGMap call GetBaseData ld de, VTiles2 ld a, $3c call Predef ld a, $4 call Function41423 ld a, [CurPartySpecies] call Function37ce ret ; 41ad7 ; known jump sources: 401d2 (10:41d2), 4052e (10:452e), 4057c (10:457c), 41af3 (10:5af3) Function41ad7: ; 41ad7 (10:5ad7) ld a, $3 ld [hBGMapMode], a ; $ff00+$d4 ld c, $4 call DelayFrames ret ; known jump sources: 40517 (10:4517), 41af0 (10:5af0) Function41ae1: ; 41ae1 (10:5ae1) ld a, $4 ld [hBGMapMode], a ; $ff00+$d4 ld c, $4 call DelayFrames ret ; known jump sources: 40163 (10:4163) Function41aeb: ; 41aeb (10:5aeb) ld a, [hCGB] ; $ff00+$e6 and a jr z, .asm_41af3 call Function41ae1 .asm_41af3 call Function41ad7 ret Function41af7: ; 41af7 xor a ld [hBGMapMode], a ret ; 41afb INCLUDE "battle/moves/moves.asm" Function421d8: ; 421d8 ld hl, EvolvableFlags xor a ld [hl], a ld a, [CurPartyMon] ld c, a ld b, $1 call Function42577 Function421e6: ; 421e6 xor a ld [$d268], a dec a ld [CurPartyMon], a push hl push bc push de ld hl, PartyCount push hl Function421f5: ; 421f5 ld hl, CurPartyMon inc [hl] pop hl inc hl ld a, [hl] cp $ff jp z, Function423ff ld [Buffer1], a push hl ld a, [CurPartyMon] ld c, a ld hl, EvolvableFlags ld b, 2 call Function42577 ld a, c and a jp z, Function421f5 ld a, [Buffer1] dec a ld b, 0 ld c, a ld hl, EvosAttacksPointers add hl, bc add hl, bc ld a, [hli] ld h, [hl] ld l, a push hl xor a ld [MonType], a ld a, $1f call Predef pop hl .asm_42230 ld a, [hli] and a jr z, Function421f5 ld b, a cp EVOLVE_TRADE jr z, .trade ld a, [InLinkBattle] and a jp nz, .asm_423f9 ld a, b cp EVOLVE_ITEM jp z, .item ld a, [$d1e9] and a jp nz, .asm_423f9 ld a, b cp EVOLVE_LEVEL jp z, .level cp EVOLVE_HAPPINESS jr z, .happiness ; EVOLVE_STAT ld a, [TempMonLevel] cp [hl] jp c, .asm_423f8 call Function42461 jp z, .asm_423f8 push hl ld de, TempMonAtk ld hl, TempMonDef ld c, 2 call StringCmp ld a, ATK_EQ_DEF jr z, .asm_4227a ld a, ATK_LT_DEF jr c, .asm_4227a ld a, ATK_GT_DEF .asm_4227a pop hl inc hl cp [hl] jp nz, .asm_423f9 inc hl jr .asm_422fd .happiness ld a, [TempMonHappiness] cp 220 jp c, .asm_423f9 call Function42461 jp z, .asm_423f9 ld a, [hli] cp TR_ANYTIME jr z, .asm_422fd cp TR_MORNDAY jr z, .asm_422a4 ; TR_NITE ld a, [TimeOfDay] cp NITE jp nz, .asm_423fa jr .asm_422fd .asm_422a4 ld a, [TimeOfDay] cp NITE jp z, .asm_423fa jr .asm_422fd .trade ld a, [InLinkBattle] and a jp z, .asm_423f9 call Function42461 jp z, .asm_423f9 ld a, [hli] ld b, a inc a jr z, .asm_422fd ld a, [InLinkBattle] cp $1 jp z, .asm_423fa ld a, [TempMonItem] cp b jp nz, .asm_423fa xor a ld [TempMonItem], a jr .asm_422fd .item ld a, [hli] ld b, a ld a, [CurItem] cp b jp nz, .asm_423fa ld a, [$d1e9] and a jp z, .asm_423fa ld a, [InLinkBattle] and a jp nz, .asm_423fa jr .asm_422fd .level ld a, [hli] ld b, a ld a, [TempMonLevel] cp b jp c, .asm_423fa call Function42461 jp z, .asm_423fa .asm_422fd ld a, [TempMonLevel] ld [CurPartyLevel], a ld a, $1 ld [$d268], a push hl ld a, [hl] ld [Buffer2], a ld a, [CurPartyMon] ld hl, PartyMon1Nickname call GetNick call CopyName1 ld hl, UnknownText_0x42482 call PrintText ld c, 50 call DelayFrames xor a ld [hBGMapMode], a ld hl, TileMap lb bc, 12, 20 call ClearBox ld a, $1 ld [hBGMapMode], a call ClearSprites callba EvolutionAnimation push af call ClearSprites pop af jp c, Function42454 ld hl, UnknownText_0x42473 call PrintText pop hl ld a, [hl] ld [CurSpecies], a ld [TempMonSpecies], a ld [Buffer2], a ld [$d265], a call GetPokemonName push hl ld hl, UnknownText_0x42478 call PrintTextBoxText callba Function106094 ld de, MUSIC_NONE call PlayMusic ld de, SFX_CAUGHT_MON call PlaySFX call WaitSFX ld c, 40 call DelayFrames call ClearTileMap call Function42414 call GetBaseData ld hl, $d118 ld de, TempMonMaxHP ld b, $1 ld a, PREDEF_FILLSTATS call Predef ld a, [CurPartyMon] ld hl, PartyMons ld bc, PartyMon2 - PartyMon1 call AddNTimes ld e, l ld d, h ld bc, $0024 add hl, bc ld a, [hli] ld b, a ld c, [hl] ld hl, $d133 ld a, [hld] sub c ld c, a ld a, [hl] sbc b ld b, a ld hl, $d131 ld a, [hl] add c ld [hld], a ld a, [hl] adc b ld [hl], a ld hl, TempMonSpecies ld bc, $0030 call CopyBytes ld a, [CurSpecies] ld [$d265], a xor a ld [MonType], a call Function42487 ld a, [$d265] dec a call SetSeenAndCaughtMon ld a, [$d265] cp UNOWN jr nz, .asm_423ec ld hl, TempMonDVs ld a, PREDEF_GET_UNOWN_LETTER call Predef callab Functionfba18 .asm_423ec pop de pop hl ld a, [TempMonSpecies] ld [hl], a push hl ld l, e ld h, d jp Function421f5 ; 423f8 .asm_423f8 inc hl .asm_423f9 inc hl .asm_423fa inc hl jp .asm_42230 ; 423fe Function423fe: ; 423fe pop hl Function423ff: ; 423ff pop de pop bc pop hl ld a, [InLinkBattle] and a ret nz ld a, [IsInBattle] and a ret nz ld a, [$d268] and a call nz, Function3d47 ret ; 42414 Function42414: ; 42414 ld a, [CurSpecies] push af ld a, [BaseDexNo] ld [$d265], a call GetPokemonName pop af ld [CurSpecies], a ld hl, StringBuffer1 ld de, StringBuffer2 .asm_4242b ld a, [de] inc de cp [hl] inc hl ret nz cp "@" jr nz, .asm_4242b ld a, [CurPartyMon] ld bc, $000b ld hl, PartyMon1Nickname call AddNTimes push hl ld a, [CurSpecies] ld [$d265], a call GetPokemonName ld hl, StringBuffer1 pop de ld bc, $000b jp CopyBytes ; 42454 Function42454: ; 42454 ld hl, UnknownText_0x4247d call PrintText call ClearTileMap pop hl jp Function421f5 ; 42461 Function42461: ; 42461 push hl ld a, [CurPartyMon] ld hl, PartyMon1Item ld bc, PartyMon2 - PartyMon1 call AddNTimes ld a, [hl] cp EVERSTONE pop hl ret ; 42473 UnknownText_0x42473: ; 0x42473 ; Congratulations! Your @ @ text_jump UnknownText_0x1c4b92 db "@" ; 0x42478 UnknownText_0x42478: ; 0x42478 ; evolved into @ ! text_jump UnknownText_0x1c4baf db "@" ; 0x4247d UnknownText_0x4247d: ; 0x4247d ; Huh? @ stopped evolving! text_jump UnknownText_0x1c4bc5 db "@" ; 0x42482 UnknownText_0x42482: ; 0x42482 ; What? @ is evolving! text_jump UnknownText_0x1c4be3 db "@" ; 0x42487 Function42487: ; 42487 ld a, [$d265] ld [CurPartySpecies], a dec a ld b, 0 ld c, a ld hl, EvosAttacksPointers add hl, bc add hl, bc ld a, [hli] ld h, [hl] ld l, a .asm_42499 ld a, [hli] and a jr nz, .asm_42499 .asm_4249d ld a, [hli] and a jr z, .asm_424da ld b, a ld a, [CurPartyLevel] cp b ld a, [hli] jr nz, .asm_4249d push hl ld d, a ld hl, PartyMon1Move1 ld a, [CurPartyMon] ld bc, $0030 call AddNTimes ld b, $4 .asm_424b9 ld a, [hli] cp d jr z, .asm_424c2 dec b jr nz, .asm_424b9 jr .asm_424c5 .asm_424c2 pop hl jr .asm_4249d .asm_424c5 ld a, d ld [$d262], a ld [$d265], a call GetMoveName call CopyName1 ld a, $0 call Predef pop hl jr .asm_4249d .asm_424da ld a, [CurPartySpecies] ld [$d265], a ret ; 424e1 FillMoves: ; 424e1 ; Fill in moves at de for CurPartySpecies at CurPartyLevle push hl push de push bc ld hl, EvosAttacksPointers ld b, 0 ld a, [CurPartySpecies] dec a add a rl b ld c, a add hl, bc ld a, [hli] ld h, [hl] ld l, a .GoToAttacks ld a, [hli] and a jr nz, .GoToAttacks jr .GetLevel .NextMove pop de .GetMove inc hl .GetLevel ld a, [hli] and a jp z, .done ld b, a ld a, [CurPartyLevel] cp b jp c, .done ld a, [Buffer1] and a jr z, .CheckMove ld a, [DefaultFlypoint] cp b jr nc, .GetMove .CheckMove push de ld c, NUM_MOVES .CheckRepeat ld a, [de] inc de cp [hl] jr z, .NextMove dec c jr nz, .CheckRepeat pop de push de ld c, NUM_MOVES .CheckSlot ld a, [de] and a jr z, .LearnMove inc de dec c jr nz, .CheckSlot pop de push de push hl ld h, d ld l, e call ShiftMoves ld a, [Buffer1] and a jr z, .ShiftedMove push de ld bc, PartyMon1PP - PartyMon1Move4 add hl, bc ld d, h ld e, l call ShiftMoves pop de .ShiftedMove pop hl .LearnMove ld a, [hl] ld [de], a ld a, [Buffer1] and a jr z, .NextMove push hl ld a, [hl] ld hl, PartyMon1PP - PartyMon1Moves add hl, de push hl dec a ld hl, Moves + MOVE_PP ld bc, Move2 - Move1 call AddNTimes ld a, BANK(Moves) call GetFarByte pop hl ld [hl], a pop hl jr .NextMove .done pop bc pop de pop hl ret ; 4256e ShiftMoves: ; 4256e ld c, $3 .asm_42570 inc de ld a, [de] ld [hli], a dec c jr nz, .asm_42570 ret ; 42577 Function42577: ; 42577 push de ld d, $0 ld a, $3 call Predef pop de ret ; 42581 GetPreEvolution: ; 42581 ; Find the first mon to evolve into CurPartySpecies. ; Return carry and the new species in CurPartySpecies ; if a pre-evolution is found. ld c, 0 .asm_42583 ld hl, EvosAttacksPointers ld b, 0 add hl, bc add hl, bc ld a, [hli] ld h, [hl] ld l, a .asm_4258d ld a, [hli] and a jr z, .asm_425a2 cp EVOLVE_STAT jr nz, .asm_42596 inc hl .asm_42596 inc hl ld a, [CurPartySpecies] cp [hl] jr z, .asm_425aa inc hl ld a, [hl] and a jr nz, .asm_4258d .asm_425a2 inc c ld a, c cp NUM_POKEMON jr c, .asm_42583 and a ret .asm_425aa inc c ld a, c ld [CurPartySpecies], a scf ret ; 425b1 SECTION "bank11", ROMX, BANK[$11] INCLUDE "engine/fruit_trees.asm" AIChooseMove: ; 440ce ; Score each move in EnemyMonMoves starting from Buffer1. Lower is better. ; Pick the move with the lowest score. ; Wildmons attack at random. ld a, [IsInBattle] dec a ret z ld a, [InLinkBattle] and a ret nz ; No use picking a move if there's no choice. callba Function3e8d1 ret nz ; The default score is 20. Unusable moves are given a score of 80. ld a, 20 ld hl, Buffer1 ld [hli], a ld [hli], a ld [hli], a ld [hl], a ; Don't pick disabled moves. ld a, [EnemyDisabledMove] and a jr z, .CheckPP ld hl, EnemyMonMove1 ld c, 0 .CheckDisabledMove cp [hl] jr z, .ScoreDisabledMove inc c inc hl jr .CheckDisabledMove .ScoreDisabledMove ld hl, Buffer1 ld b, 0 add hl, bc ld [hl], 80 ; Don't pick moves with 0 PP. .CheckPP ld hl, Buffer1 - 1 ld de, EnemyMonPP ld b, 0 .CheckMovePP inc b ld a, b cp EnemyMonMovesEnd - EnemyMonMoves + 1 jr z, .ApplyLayers inc hl ld a, [de] inc de and $3f jr nz, .CheckMovePP ld [hl], 80 jr .CheckMovePP ; Apply AI scoring layers depending on the trainer class. .ApplyLayers ld hl, TrainerClassAttributes + 3 ld a, [$cfc0] bit 0, a jr nz, .asm_4412f ld a, [TrainerClass] dec a ld bc, 7 ; Trainer2AI - Trainer1AI call AddNTimes .asm_4412f lb bc, CHECK_FLAG, 0 push bc push hl .CheckLayer pop hl pop bc ld a, c cp 16 ; up to 16 scoring layers jr z, .asm_4415e push bc ld d, $e ; BANK(TrainerAI) ld a, PREDEF_FLAG call Predef ld d, c pop bc inc c push bc push hl ld a, d and a jr z, .CheckLayer ld hl, AIScoringPointers dec c ld b, 0 add hl, bc add hl, bc ld a, [hli] ld h, [hl] ld l, a ld a, BANK(AIScoring) call FarCall_hl jr .CheckLayer .asm_4415e ld hl, Buffer1 ld de, EnemyMonMoves ld c, EnemyMonMovesEnd - EnemyMonMoves .asm_44166 ld a, [de] inc de and a jr z, .asm_4415e dec [hl] jr z, .asm_44174 inc hl dec c jr z, .asm_4415e jr .asm_44166 .asm_44174 ld a, c .asm_44175 inc [hl] dec hl inc a cp EnemyMonMovesEnd - EnemyMonMoves + 1 jr nz, .asm_44175 ld hl, Buffer1 ld de, EnemyMonMoves ld c, EnemyMonMovesEnd - EnemyMonMoves .asm_44184 ld a, [de] and a jr nz, .asm_44189 ld [hl], a .asm_44189 ld a, [hl] dec a jr z, .asm_44191 xor a ld [hli], a jr .asm_44193 .asm_44191 ld a, [de] ld [hli], a .asm_44193 inc de dec c jr nz, .asm_44184 .asm_44197 ld hl, Buffer1 call Random and 3 ld c, a ld b, 0 add hl, bc ld a, [hl] and a jr z, .asm_44197 ld [CurEnemyMove], a ld a, c ld [CurEnemyMoveNum], a ret ; 441af AIScoringPointers: ; 441af dw AIScoring_RedStatus dw AIScoring_RedStatMods dw AIScoring_RedSuperEffective dw AIScoring_Offensive dw AIScoring_Smart dw AIScoring_Opportunist dw AIScoring_Aggressive dw AIScoring_Cautious dw AIScoring_StatusImmunity dw AIScoring_Risky dw AIScoring_None dw AIScoring_None dw AIScoring_None dw AIScoring_None dw AIScoring_None dw AIScoring_None ; 441cf Function441cf: ; 441cf ld hl, Unknown_441fc ld b, 25 .asm_441d4 ld a, [hli] cp $fe jr nz, .asm_441dd ld hl, Unknown_441fc ld a, [hli] .asm_441dd ld [$c7db], a ld a, [hli] ld c, a push bc push hl call Function44207 pop hl pop bc call DelayFrames dec b jr nz, .asm_441d4 xor a ld [$c7db], a call Function44207 ld c, $20 call DelayFrames ret ; 441fc Unknown_441fc: ; 441fc db $00, $07 db $01, $07 db $02, $07 db $03, $07 db $04, $07 db $fe ; 44207 Function44207: ; 44207 ld a, [$c7db] ld hl, Unknown_44228 ld de, Sprites .asm_44210 ld a, [hli] cp $ff ret z ld [de], a inc de ld a, [hli] ld [de], a inc de ld a, [$c7db] ld b, a add a add b add [hl] inc hl ld [de], a inc de ld a, [hli] ld [de], a inc de jr .asm_44210 ; 44228 Unknown_44228: ; 44228 db $58, $48, $00, $00 db $58, $50, $01, $00 db $58, $58, $02, $00 db $60, $48, $10, $00 db $60, $50, $11, $00 db $60, $58, $12, $00 db $68, $48, $20, $00 db $68, $50, $21, $00 db $68, $58, $22, $00 db $ff ; 4424d Function4424d: ; 4424d call GetPokemonName ld hl, $c4e5 call PlaceString ld a, [$d265] ld b, a call Function44333 ld a, b push af ld hl, $c50d call Function13d4 ld h, b ld l, c push de ld hl, $c542 ld a, $5c ld [hli], a ld a, $5d ld [hli], a ld de, $d265 ld bc, $8103 call PrintNum ld a, [$d265] dec a call CheckCaughtMon pop hl pop bc ret z ld a, [CurPartySpecies] ld [CurSpecies], a inc hl ld a, b push af push hl call GetFarHalfword ld d, l ld e, h pop hl inc hl inc hl ld a, d or e jr z, .asm_442b0 push hl push de ld hl, [sp+$0] ld d, h ld e, l ld hl, $c538 ld bc, $0224 call PrintNum ld hl, $c53a ld [hl], $5e pop af pop hl .asm_442b0 pop af push af inc hl push hl dec hl call GetFarHalfword ld d, l ld e, h ld a, e or d jr z, .asm_442cd push de ld hl, [sp+$0] ld d, h ld e, l ld hl, $c55f ld bc, ClearVRAM call PrintNum pop de .asm_442cd ld bc, $0512 ld hl, $c57e call ClearBox ld hl, $c569 ld bc, $0013 ld a, $61 call ByteFill ld hl, $c555 ld [hl], $55 inc hl ld [hl], $55 ld hl, $c569 ld [hl], $56 inc hl ld [hl], $57 pop de inc de pop af ld hl, $c57e push af call Function13d4 pop bc ld a, [$cf65] or a ret z push bc push de ld bc, $0512 ld hl, $c57e call ClearBox ld hl, $c569 ld bc, $0013 ld a, $61 call ByteFill ld hl, $c555 ld [hl], $55 inc hl ld [hl], $55 ld hl, $c569 ld [hl], $56 inc hl ld [hl], $58 pop de inc de pop af ld hl, $c57e call Function13d4 ret ; 44331 String_44331: ; 44331 db "#@" ; 44333 Function44333: ; 44333 push hl ld hl, PokedexDataPointerTable ld a, b dec a ld d, 0 ld e, a add hl, de add hl, de ld e, [hl] inc hl ld d, [hl] push de rlca rlca and $3 ld hl, PokedexEntryBanks ld d, 0 ld e, a add hl, de ld b, [hl] pop de pop hl ret ; 44351 PokedexEntryBanks: ; 44351 GLOBAL PokedexEntries1 GLOBAL PokedexEntries2 GLOBAL PokedexEntries3 GLOBAL PokedexEntries4 db BANK(PokedexEntries1) db BANK(PokedexEntries2) db BANK(PokedexEntries3) db BANK(PokedexEntries4) ; 44355 Function44355: ; 44355 call Function44333 push hl ld h, d ld l, e .asm_4435b ld a, b call GetFarByte inc hl cp $50 jr nz, .asm_4435b inc hl inc hl inc hl inc hl dec c jr z, .asm_44374 .asm_4436b ld a, b call GetFarByte inc hl cp $50 jr nz, .asm_4436b .asm_44374 ld d, h ld e, l pop hl ret ; 44378 PokedexDataPointerTable: ; 0x44378 INCLUDE "stats/pokedex/entry_pointers.asm" Function4456e: ; 4456e ld a, $1 call GetPartyParamLocation ld d, [hl] callba ItemIsMail jr nc, .asm_445be call Function44648 cp $a jr nc, .asm_445be ld bc, $002f ld hl, $a835 call AddNTimes ld d, h ld e, l ld a, [CurPartyMon] ld bc, $002f ld hl, $a600 call AddNTimes push hl ld a, $0 call GetSRAMBank ld bc, $002f call CopyBytes pop hl xor a ld bc, $002f call ByteFill ld a, $1 call GetPartyParamLocation ld [hl], $0 ld hl, $a834 inc [hl] call CloseSRAM xor a ret .asm_445be scf ret ; 445c0 ; known jump sources: 44645 (11:4645) Function445c0: ; 445c0 (11:45c0) ld a, $0 call GetSRAMBank ld a, b push bc ld hl, $a835 ld bc, $2f call AddNTimes push hl add hl, bc pop de pop bc .asm_445d4 ld a, b cp $9 jr z, .asm_445e4 push bc ld bc, $2f call CopyBytes pop bc inc b jr .asm_445d4 .asm_445e4 ld h, d ld l, e xor a ld bc, $2f call ByteFill ld hl, $a834 dec [hl] jp CloseSRAM ; 445f4 (11:45f4) Function445f4: ; 445f4 ld a, b ld hl, $a835 ld bc, $2f call AddNTimes ld d, h ld e, l callba Functionb9237 ret Function44607: ; 44607 ld a, $0 call GetSRAMBank push bc ld a, b ld bc, $2f ld hl, $a835 call AddNTimes push hl ld a, [CurPartyMon] ; $d109 ld bc, $2f ld hl, $a600 call AddNTimes ld d, h ld e, l pop hl push hl ld bc, $2f call CopyBytes pop hl ld de, $2e add hl, de ld d, [hl] ld a, [CurPartyMon] ; $d109 ld hl, PartyMon1Item ; $dce0 ld bc, $30 call AddNTimes ld [hl], d call CloseSRAM pop bc jp Function445c0 ; 44648 (11:4648) Function44648: ; 44648 ld a, $0 call GetSRAMBank ld a, [$a834] ld c, a jp CloseSRAM ; 44654 Function44654:: ; 44654 push bc push de callba Function50000 ld a, $2 jr c, .asm_446c6 ld a, [CurPartyMon] ld hl, PartyMon1Item ld bc, $0030 call AddNTimes ld d, [hl] callba ItemIsMail ld a, $3 jr nc, .asm_446c6 ld a, $0 call GetSRAMBank ld a, [CurPartyMon] ld hl, $a600 ld bc, $002f call AddNTimes ld d, h ld e, l pop hl pop bc ld a, $20 ld [$d265], a .asm_44691 ld a, [de] ld c, a ld a, b call GetFarByte cp $50 jr z, .asm_446ab cp c ld a, $0 jr nz, .asm_446c1 inc hl inc de ld a, [$d265] dec a ld [$d265], a jr nz, .asm_44691 .asm_446ab callba Functione538 ld a, $4 jr c, .asm_446c1 xor a ld [$d10b], a callba Functione039 ld a, $1 .asm_446c1 call CloseSRAM jr .asm_446c8 .asm_446c6 pop de pop bc .asm_446c8 ld [ScriptVar], a ret ; 446cc Function446cc:: ; 446cc ld a, [PartyCount] dec a push af push bc ld hl, PartyMon1Item ld bc, $0030 call AddNTimes pop bc ld [hl], b pop af push bc push af ld hl, $a600 ld bc, $002f call AddNTimes ld d, h ld e, l ld hl, $d002 ld bc, $0021 ld a, $0 call GetSRAMBank call CopyBytes pop af push af ld hl, PartyMon1OT ld bc, $000b call AddNTimes ld bc, $000a call CopyBytes pop af ld hl, PartyMon1ID ld bc, $0030 call AddNTimes ld a, [hli] ld [de], a inc de ld a, [hl] ld [de], a inc de ld a, [CurPartySpecies] ld [de], a inc de pop bc ld a, b ld [de], a jp CloseSRAM ; 44725 Function44725: ; 44725 ld a, $0 call GetSRAMBank ld hl, $a600 ld de, $a71a ld bc, $011a call CopyBytes ld hl, $a834 ld de, $aa0b ld bc, $01d7 call CopyBytes jp CloseSRAM ; 44745 ; no known jump sources Function44745: ; 44745 (11:4745) ld a, $0 call GetSRAMBank ld hl, $a71a ld de, $a600 ld bc, $11a call CopyBytes ld hl, $aa0b ld de, $a834 ld bc, $1d7 call CopyBytes jp CloseSRAM ; no known jump sources Function44765: ; 44765 (11:4765) ld a, $0 call GetSRAMBank xor a ld hl, $a600 ld bc, $11a call ByteFill xor a ld hl, $a834 ld bc, $1d7 call ByteFill jp CloseSRAM ; 44781 (11:4781) Function44781: ; 44781 ld a, [PartyCount] and a jr z, .asm_4479e ld e, a ld hl, PartyMon1Item .asm_4478b ld d, [hl] push hl push de callba ItemIsMail pop de pop hl ret c ld bc, $0030 add hl, bc dec e jr nz, .asm_4478b .asm_4479e and a ret ; 447a0 _KrisMailBoxMenu: ; 0x447a0 call InitMail jr z, .nomail call Function1d6e call Function44806 jp Function1c17 .nomail ld hl, .EmptyMailboxText jp Function1d67 ; 0x447b4 .EmptyMailboxText ; 0x447b4 TX_FAR _EmptyMailboxText db "@" InitMail: ; 0x447b9 ; initialize $d0f2 and beyond with incrementing values, one per mail ; set z if no mail ld a, $0 call GetSRAMBank ld a, [$a834] call CloseSRAM ld hl, $d0f2 ld [hli], a and a jr z, .done ; if no mail, we're done ; load values in memory with incrementing values starting at $d0f2 ld b, a ld a, $1 .loop ld [hli], a inc a dec b jr nz, .loop .done ld [hl], $ff ; terminate ld a, [$d0f2] and a ret ; 0x447da Function447da: ; 0x447da dec a ld hl, $a856 ld bc, $002f call AddNTimes ld a, $0 call GetSRAMBank ld de, StringBuffer2 push de ld bc, $a call CopyBytes ld a, $50 ld [de], a call CloseSRAM pop de ret ; 0x447fb Function447fb: ; 0x447fb push de ld a, [MenuSelection] call Function447da pop hl jp PlaceString ; 0x44806 Function44806: ; 0x44806 xor a ld [CurMart], a ld a, $1 ld [$d0f1], a .asm_4480f call InitMail ld hl, MenuData4494c call Function1d3c xor a ld [hBGMapMode], a call Function352f call Function1ad2 ld a, [$d0f1] ld [$cf88], a ld a, [CurMart] ld [$d0e4], a call Function350c ld a, [$d0e4] ld [CurMart], a ld a, [$cfa9] ld [$d0f1], a ld a, [$cf73] cp $2 jr z, .asm_44848 call Function4484a jr .asm_4480f .asm_44848 xor a ret ; 0x4484a Function4484a: ; 0x4484a ld hl, MenuData44964 call LoadMenuDataHeader call Function1d81 call Function1c07 jr c, .asm_44860 ld a, [$cfa9] dec a ld hl, .JumpTable rst JumpTable .asm_44860 ret ; 0x44861 .JumpTable dw .ReadMail dw .PutInPack dw .AttachMail dw .Cancel .ReadMail ; 0x44869 call FadeToMenu ld a, [MenuSelection] dec a ld b, a call Function445f4 jp Function2b3c ; 0x44877 .PutInPack ; 0x44877 ld hl, .MessageLostText call Function1d4f call YesNoBox call Function1c07 ret c ld a, [MenuSelection] dec a call .Function448bb ld a, $1 ld [$d10c], a ld hl, NumItems call ReceiveItem jr c, .asm_4489e ld hl, .PackFullText jp Function1d67 .asm_4489e ld a, [MenuSelection] dec a ld b, a call Function445c0 ld hl, .PutAwayText jp Function1d67 ; 0x448ac .PutAwayText ; 0x448ac TX_FAR ClearedMailPutAwayText db "@" .PackFullText ; 0x448b1 TX_FAR MailPackFullText db "@" .MessageLostText ; 0x448b6 TX_FAR MailMessageLostText db "@" .Function448bb: ; 0x448bb push af ld a, $0 call GetSRAMBank pop af ld hl, $a863 ld bc, $002f call AddNTimes ld a, [hl] ld [CurItem], a jp CloseSRAM ; 0x448d2 .AttachMail ; 0x448d2 call FadeToMenu xor a ld [PartyMenuActionText], a call WhiteBGMap .asm_448dc callba Function5004f callba Function50405 callba Function503e0 callba WritePartyMenuTilemap callba PrintPartyMenuText call WaitBGMap call Function32f9 call DelayFrame callba PartyMenuSelect jr c, .asm_44939 ld a, [CurPartySpecies] cp EGG jr z, .asm_44923 ld a, PartyMon1Item - PartyMon1 call GetPartyParamLocation ld a, [hl] and a jr z, .asm_4492b ld hl, .HoldingMailText call PrintText jr .asm_448dc .asm_44923 ld hl, .EggText call PrintText jr .asm_448dc .asm_4492b ld a, [MenuSelection] dec a ld b, a call Function44607 ld hl, .MailMovedText call PrintText .asm_44939 jp Function2b3c ; 0x4493c .HoldingMailText ; 0x4493c TX_FAR MailAlreadyHoldingItemText db "@" .EggText ; 0x44941 TX_FAR MailEggText db "@" .MailMovedText ; 0x44946 TX_FAR MailMovedFromBoxText db "@" .Cancel ret MenuData4494c: ; 0x4494c db %01000000 ; flags db 1, 8 ; start coords db $a, $12 ; end coords dw .MenuData2 db 1 ; default option .MenuData2 db %00010000 ; flags db 4, 0 ; rows/columns? db 1 ; horizontal spacing? dbw 0,$d0f2 ; text pointer dbw BANK(Function447fb), Function447fb dbw 0,0 dbw 0,0 MenuData44964: ; 0x44964 db %01000000 ; flags db 0, 0 ; start coords db 9, $d ; end coords dw .MenuData2 db 1 ; default option .MenuData2 db %10000000 ; flags db 4 ; items db "READ MAIL@" db "PUT IN PACK@" db "ATTACH MAIL@" db "CANCEL@" SECTION "bank12", ROMX, BANK[$12] Function48000: ; 48000 ld a, $1 ld [$d474], a xor a ld [$d473], a ld [PlayerGender], a ld [$d475], a ld [$d476], a ld [$d477], a ld [$d478], a ld [DefaultFlypoint], a ld [$d003], a ld a, [$d479] res 0, a ld [$d479], a ld a, [$d479] res 1, a ld [$d479], a ret ; 4802f ; known jump sources: 4a0e8 (12:60e8) Function4802f: ; 4802f (12:402f) xor a set 6, a ld [DefaultFlypoint], a ; $d002 ld hl, $d003 set 0, [hl] ld a, c and a call z, Function48000 call WhiteBGMap call Function48d3d ld a, [$d479] bit 1, a jr z, .asm_4805a ld a, [$d003] set 0, a set 1, a set 2, a set 3, a ld [$d003], a .asm_4805a call Function486bf call Functione5f ld de, $48c3 ld hl, $9100 lb bc, $12, $01 call Request1bpp ld de, $48cb ld hl, $9110 lb bc, $12, $01 call Request1bpp call Function4a3a7 call WhiteBGMap ld a, [DefaultFlypoint] ; $d002 bit 6, a jr z, .asm_4808a call Function48689 jr .asm_480d7 .asm_4808a ld a, $5 ld [MusicFade], a ; $c2a7 ld a, MUSIC_MOBILE_ADAPTER_MENU % $100 ld [MusicFadeIDLo], a ; $c2a9 ld a, MUSIC_MOBILE_ADAPTER_MENU / $100 ld [MusicFadeIDHi], a ; $c2aa ld c, $14 call DelayFrames ld b, $1 call Function4930f call WhiteBGMap ld hl, TileMap ; $c4a0 (aliases: SpritesEnd) ld b, $2 ld c, $14 call ClearBox ld hl, $c4b4 ld a, $c ld [hl], a ld bc, $13 add hl, bc ld [hl], a ld de, $4471 ld hl, $c4b5 call PlaceString ld hl, $c4c8 ld b, $a ld c, $12 call Function48cdc ld hl, $c4f2 ld de, $4482 call PlaceString .asm_480d7 ld hl, $c51a ld de, $4489 call PlaceString ld hl, $c542 ld de, $448d call PlaceString ld hl, $c56a ld de, $4495 call PlaceString ld hl, $c592 ld de, $449e call PlaceString ld a, [DefaultFlypoint] ; $d002 bit 6, a jr nz, .asm_48113 ld a, [PlayerGender] ; $d472 ld hl, $44fb call GetNthString ld d, h ld e, l ld hl, $c4fb call PlaceString .asm_48113 ld hl, $c523 call Function487ec ld a, [$d474] dec a ld hl, $455b call GetNthString ld d, h ld e, l ld hl, $c54b call PlaceString ld hl, $c573 call Function489ea ld hl, $c5b8 ld b, $2 ld c, $12 call TextBox ld hl, $c5e1 ld de, String_48275 call PlaceString call Function48187 call Function3200 call Function32f9 call Function1bc9 ld hl, $cfa9 ld b, [hl] push bc jr asm_4815f ; known jump sources: 48434 (12:4434), 48441 (12:4441) Function48157: ; 48157 (12:4157) call Function1bd3 ld hl, $cfa9 ld b, [hl] push bc ; known jump sources: 48155 (12:4155) asm_4815f: ; 4815f (12:415f) bit 0, a jp nz, Function4820d ld b, a ld a, [DefaultFlypoint] ; $d002 bit 6, a jr z, .asm_48177 ld hl, $d479 bit 1, [hl] jr z, .asm_48177 bit 1, b jr nz, .asm_4817a .asm_48177 jp Function48272 .asm_4817a call WhiteBGMap call Function48d30 pop bc call ClearTileMap ld a, $ff ret ; known jump sources: 48144 (12:4144), 48377 (12:4377), 4840c (12:440c) Function48187: ; 48187 (12:4187) ld a, [$d479] bit 1, a jr nz, .asm_481f1 ld a, [$d003] ld d, a call Function48725 jr c, .asm_481a2 ld bc, $104 ld hl, $c592 call ClearBox jr .asm_481ad .asm_481a2 push de ld hl, $c592 ld de, $449e call PlaceString pop de .asm_481ad ld a, [DefaultFlypoint] ; $d002 bit 6, a jr nz, .asm_481c1 bit 0, d jr nz, .asm_481c1 ld bc, $108 ld hl, $c4fb call ClearBox .asm_481c1 bit 1, d jr nz, .asm_481ce ld bc, $108 ld hl, $c523 call ClearBox .asm_481ce bit 2, d jr nz, .asm_481db ld bc, $208 ld hl, $c537 call ClearBox .asm_481db bit 3, d jr nz, .asm_481f1 ld a, [$d479] bit 0, a jr nz, .asm_481f8 ld bc, $108 ld hl, $c573 call ClearBox jr .asm_48201 .asm_481f1 ld a, [$d479] bit 0, a jr nz, .asm_48201 .asm_481f8 ld hl, $c573 ld de, String_48202 call PlaceString .asm_48201 ret ; 48202 (12:4202) String_48202: ; 48202 db "Tell Later@" ; 4820d ; known jump sources: 48161 (12:4161) Function4820d: ; 4820d (12:420d) call Function1bee ld hl, $cfa9 ld a, [hl] push af ld a, [DefaultFlypoint] ; $d002 bit 6, a jr z, .asm_4821f pop af inc a push af .asm_4821f pop af cp $1 jr z, asm_4828d cp $2 jp z, Function4876f cp $3 jp z, Function48304 cp $4 jp z, Function488d3 ld a, $2 call Function1ff8 ld a, [DefaultFlypoint] ; $d002 bit 6, a jr z, .asm_4825c jr .asm_4825c ; 48241 (12:4241) ld hl, $c5cd ld b, $2 ld c, $12 call ClearBox ld de, $44a1 ld hl, $c5e1 call PlaceString call WaitBGMap ld c, $30 call DelayFrames .asm_4825c call WhiteBGMap call Function48d30 pop bc call ClearTileMap ld b, $8 call GetSGBLayout ld hl, $d479 set 1, [hl] xor a ret ; known jump sources: 48177 (12:4177) Function48272: ; 48272 (12:4272) jp Function4840c ; 48275 (12:4275) String_48275: ; 48275 db "Personal Info@" ; 48283 ; known jump sources: 4828d (12:428d), 48304 (12:4304), 4840f (12:440f), 4876f (12:476f), 488d3 (12:48d3) Function48283: ; 48283 (12:4283) ld bc, $212 ld hl, $c5cd call ClearBox ret ; known jump sources: 48222 (12:4222) asm_4828d: ; 4828d (12:428d) call Function48283 ld hl, $c5e1 ld de, $44b1 call PlaceString ld hl, $44f1 call LoadMenuDataHeader call Function4873c ld hl, $c4d3 ld b, $4 ld c, $7 call Function48cdc ld hl, $c4fd ld de, $44fb call PlaceString ld hl, $c525 ld de, $44ff call PlaceString call WaitBGMap ld a, [PlayerGender] ; $d472 inc a ld [$cf88], a call Function1bc9 call PlayClickSFX call Function1c07 bit 0, a jp z, Function4840c ld hl, $cfa9 ld a, [hl] ld hl, $44fb cp $1 jr z, .asm_482ed .asm_482e1 ld a, [hli] cp $50 jr nz, .asm_482e1 ld a, $1 ld [PlayerGender], a ; $d472 jr .asm_482f1 .asm_482ed xor a ld [PlayerGender], a ; $d472 .asm_482f1 ld d, h ld e, l ld hl, $c4fb call PlaceString ld a, [$d003] set 0, a ld [$d003], a jp Function4840c ; known jump sources: 4822b (12:422b) Function48304: ; 48304 (12:4304) call Function48283 ld hl, $c5e1 ld de, $44cf call PlaceString ld hl, $4504 call LoadMenuDataHeader ld hl, $4513 call LoadMenuDataHeader ld hl, $c4aa ld b, $c ld c, $8 call Function48cdc ld a, [$cf88] ld b, a ld a, [$d0e4] ld c, a push bc ld a, [$d474] dec a cp $29 jr c, .asm_4833f sub $29 inc a ld [$cf88], a ld a, $29 .asm_4833f ld [$d0e4], a callba Function104148 .asm_48348 call Function350c ld de, $629 call Function48383 jr c, .asm_48348 ld d, a pop bc ld a, b ld [$cf88], a ld a, c ld [$d0e4], a ld a, d push af call Function1c07 call Function1c07 pop af ld a, [hJoyPressed] ; $ff00+$a7 bit 0, a jr z, .asm_48377 call Function483bb ld a, [$d003] set 2, a ld [$d003], a .asm_48377 call Function48187 callba Function104148 jp Function4840c ; known jump sources: 4834e (12:434e) Function48383: ; 48383 (12:4383) push bc push af bit 5, a jr nz, .asm_48390 bit 4, a jr nz, .asm_4839f and a jr .asm_483b7 .asm_48390 ld a, [$d0e4] sub d ld [$d0e4], a jr nc, .asm_483af xor a ld [$d0e4], a jr .asm_483af .asm_4839f ld a, [$d0e4] add d ld [$d0e4], a cp e jr c, .asm_483af ld a, e ld [$d0e4], a jr .asm_483af .asm_483af ld hl, $cfa9 ld a, [hl] ld [$cf88], a scf .asm_483b7 pop bc ld a, b pop bc ret ; known jump sources: 4836c (12:436c) Function483bb: ; 483bb (12:43bb) ld hl, $cf77 ld a, [hl] inc a ld [$d474], a dec a ld b, a ld hl, Prefectures .asm_483c8 and a jr z, .asm_483d5 .asm_483cb ld a, [hli] cp "@" jr nz, .asm_483cb ld a, b dec a ld b, a jr .asm_483c8 .asm_483d5 ld d, h ld e, l ld b, $2 ld c, $8 ld hl, $c537 call ClearBox ld hl, $c54b call PlaceString ret ; 483e8 (12:43e8) INCBIN "baserom.gbc",$483e8,$4840c - $483e8 ; known jump sources: 48272 (12:4272), 482d3 (12:42d3), 48301 (12:4301), 48380 (12:4380), 487e9 (12:47e9), 488e2 (12:48e2), 489e7 (12:49e7) Function4840c: ; 4840c (12:440c) call Function48187 call Function48283 ld hl, $c5e1 ld de, String_48275 call PlaceString call Function486bf pop bc ld hl, $cfa9 ld [hl], b ld a, [DefaultFlypoint] ; $d002 bit 6, a jr nz, .asm_48437 ld b, $9 ld c, $1 ld hl, $c4f1 call ClearBox jp Function48157 .asm_48437 ld b, $7 ld c, $1 ld hl, $c519 call ClearBox jp Function48157 ; known jump sources: 489f0 (12:49f0), 489fb (12:49fb), 48a04 (12:4a04), 48a16 (12:4a16), 48a1f (12:4a1f), 48a2a (12:4a2a), 48a33 (12:4a33) Function48444: ; 48444 (12:4444) push bc push af push de push hl ld hl, Unknown_4845d .asm_4844b and a jr z, .asm_48453 inc hl inc hl dec a jr .asm_4844b .asm_48453 ld d, h ld e, l pop hl call PlaceString pop de pop af pop bc ret ; 4845d (12:445d) Unknown_4845d: ; 4845d ; 4845d db "0@" db "1@" db "2@" db "3@" db "4@" db "5@" db "6@" db "7@" db "8@" db "9@" db " Mobile Profile@" db "Gender@" db "Age@" db "Address@" db "Zip Code@" db "OK@" db "Profile Changed@" db "Boy or girl?@" db "How old are you?@" db "Where do you live?@" db "Your zip code?@" ; 484f1 INCBIN "baserom.gbc",$484f1,$48552 - $484f1 ; 48552 db "がぎぐげござじず", $ff Prefectures: Aichi: db "あいちけん@" ; Aichi Aomori: db "あおもりけん@" ; Aomori Akita: db "あきたけん@" ; Akita Ishikawa: db "いしかわけん@" ; Ishikawa Ibaraki: db "いばらきけん@" ; Ibaraki Iwate: db "いわてけん@" ; Iwate Ehime: db "えひめけん@" ; Ehime Oita: db "おおいたけん@" ; Oita Osakafu: db "おおさかふ@" ; Osakafu Okayama: db "おかやまけん@" ; Okayama Okinawa: db "おきなわけん@" ; Okinawa Kagawa: db "かがわけん@" ; Kagawa Kagoshima: db "かごしまけん@" ; Kagoshima Kanagawa: db "かながわけん@" ; Kanagawa Gifu: db "ぎふけん@" ; Gifu Kyotofu: db "きょうとふ@" ; Kyotofu Kumamoto: db "くまもとけん@" ; Kumamoto Gunma: db "ぐんまけん@" ; Gunma Kochi: db "こうちけん@" ; Kochi Saitama: db "さいたまけん@" ; Saitama Saga: db "さがけん@" ; Saga Shiga: db "しがけん@" ; Shiga Shizuoka: db "しずおかけん@" ; Shizuoka Shimane: db "しまねけん@" ; Shimane Chiba: db "ちばけん@" ; Chiba Tokyo: db "とうきょうと@" ; Tokyo Tokushima: db "とくしまけん@" ; Tokushima Tochigi: db "とちぎけん@" ; Tochigi Tottori: db "とっとりけん@" ; Tottori Toyama: db "とやまけん@" ; Toyama Nagasaki: db "ながさきけん@" ; Nagasaki Nagano: db "ながのけん@" ; Nagano Naraken: db "ならけん@" ; Naraken Niigata: db "にいがたけん@" ; Niigata Hyogo: db "ひょうごけん@" ; Hyogo Hiroshima: db "ひろしまけん@" ; Hiroshima Fukui: db "ふくいけん@" ; Fukui Fukuoka: db "ふくおかけん@" ; Fukuoka Fukushima: db "ふくしまけん@" ; Fukushima Hokkaido: db "ほっかいどう@" ; Hokkaido Mie: db "みえけん@" ; Mie Miyagi: db "みやぎけん@" ; Miyagi Miyazaki: db "みやざきけん@" ; Miyazaki Yamagata: db "やまがたけん@" ; Yamagata Yamaguchi: db "やまぐちけん@" ; Yamaguchi Yamanashi: db "やまなしけん@" ; Yamanashi Wakayama: db "わかやまけん@" ; Wakayama ; 48689 ; known jump sources: 48085 (12:4085) Function48689: ; 48689 (12:4689) ld c, $7 call DelayFrames ld b, $1 call Function4930f call WhiteBGMap ld hl, TileMap ; $c4a0 (aliases: SpritesEnd) ld b, $4 ld c, $14 call ClearBox ld hl, $c4c8 ld a, $c ld [hl], a ld bc, $13 add hl, bc ld [hl], a ld de, $4471 ld hl, $c4c9 call PlaceString ld hl, $c4f0 ld b, $8 ld c, $12 call Function48cdc ret ; known jump sources: 4805a (12:405a), 4841b (12:441b) Function486bf: ; 486bf (12:46bf) ld hl, $cfa1 ld a, [DefaultFlypoint] ; $d002 bit 6, a jr nz, .asm_486ce ld a, $4 ld [hli], a jr .asm_486d1 .asm_486ce ld a, $6 ld [hli], a .asm_486d1 ld a, $1 ld [hli], a ld a, [DefaultFlypoint] ; $d002 bit 6, a jr nz, .asm_486e7 call Function48725 ld a, $4 jr nc, .asm_486e4 ld a, $5 .asm_486e4 ld [hli], a jr .asm_486fb .asm_486e7 ld a, [$d479] bit 1, a jr nz, .asm_486f8 call Function48725 jr c, .asm_486f8 ld a, $3 ld [hli], a jr .asm_486fb .asm_486f8 ld a, $4 ld [hli], a .asm_486fb ld a, $1 ld [hli], a ld [hl], $0 set 5, [hl] inc hl xor a ld [hli], a ld a, $20 ld [hli], a ld a, $1 add $40 add $80 push af ld a, [DefaultFlypoint] ; $d002 bit 6, a jr z, .asm_4871a pop af add $2 push af .asm_4871a pop af ld [hli], a ld a, $1 ld [hli], a ld [hli], a xor a ld [hli], a ld [hli], a ld [hli], a ret ; known jump sources: 48192 (12:4192), 486db (12:46db), 486ee (12:46ee) Function48725: ; 48725 (12:4725) ld a, [$d003] bit 0, a jr z, .asm_4873a bit 1, a jr z, .asm_4873a bit 2, a jr z, .asm_4873a bit 3, a jr z, .asm_4873a scf ret .asm_4873a and a ret ; known jump sources: 4829f (12:429f), 48a40 (12:4a40) Function4873c: ; 4873c (12:473c) ld hl, $cfa1 ld a, $4 ld [hli], a ld a, $c ld [hli], a ld a, $2 ld [hli], a ld a, $1 ld [hli], a ld [hl], $0 set 5, [hl] inc hl xor a ld [hli], a ld a, $20 ld [hli], a ld a, $1 add $2 ld [hli], a ld a, [PlayerGender] ; $d472 and a jr z, .asm_48764 ld a, $2 jr .asm_48766 .asm_48764 ld a, $1 .asm_48766 ld [hli], a ld a, $1 ld [hli], a xor a ld [hli], a ld [hli], a ld [hli], a ret ; known jump sources: 48226 (12:4226) Function4876f: ; 4876f (12:476f) call Function48283 ld hl, $c5e1 ld de, $44be call PlaceString ld hl, $4509 call LoadMenuDataHeader ld a, [$FF00+$aa] push af ld a, $1 ld [$FF00+$aa], a ld hl, $c50e ld b, $1 ld c, $8 call Function48cdc call WaitBGMap ld a, [$d473] and a jr z, .asm_487ab cp $64 jr z, .asm_487b2 ld hl, $c510 ld [hl], $10 ld hl, $c538 ld [hl], $11 jr .asm_487b7 .asm_487ab ld hl, $c510 ld [hl], $10 jr .asm_487b7 .asm_487b2 ld hl, $c538 ld [hl], $11 .asm_487b7 ld hl, $c523 call Function487ec ld c, $a call DelayFrames ld a, [$d473] push af .asm_487c6 call Functiona57 call Function4880e jr nc, .asm_487c6 ld a, $1 call Function1ff8 pop bc jr nz, .asm_487da ld a, b ld [$d473], a .asm_487da ld a, [$d473] call Function1c07 ld hl, $c523 call Function487ec pop af ld [$FF00+$aa], a jp Function4840c ; known jump sources: 48116 (12:4116), 487ba (12:47ba), 487e3 (12:47e3), 488aa (12:48aa) Function487ec: ; 487ec (12:47ec) push hl ld de, $d473 call Function487ff pop hl inc hl inc hl inc hl inc hl ld de, String_4880d call PlaceString ret ; known jump sources: 487f0 (12:47f0) Function487ff: ; 487ff (12:47ff) push hl ld a, $7f ld [hli], a ld [hl], a pop hl ld b, $81 ld c, $3 call PrintNum ret ; 4880d (12:480d) String_4880d: ; 4880d db "@" ; 4880e ; known jump sources: 487c9 (12:47c9) Function4880e: ; 4880e (12:480e) ld a, [hJoyPressed] ; $ff00+$a7 and $1 jp nz, Function488b9 ld a, [hJoyPressed] ; $ff00+$a7 and $2 jp nz, Function488b4 ld hl, $ffa9 ld a, [hl] and $40 jr nz, .asm_48843 ld a, [hl] and $80 jr nz, .asm_48838 ld a, [hl] and $20 jr nz, .asm_4884f ld a, [hl] and $10 jr nz, .asm_4885f call DelayFrame and a ret .asm_48838 ld hl, $d473 ld a, [hl] and a jr z, .asm_48840 dec a .asm_48840 ld [hl], a jr .asm_4886f .asm_48843 ld hl, $d473 ld a, [hl] cp $64 jr nc, .asm_4884c inc a .asm_4884c ld [hl], a jr .asm_4886f .asm_4884f ld a, [$d473] cp $5b jr c, .asm_48858 ld a, $5a .asm_48858 add $a ld [$d473], a jr .asm_4886f .asm_4885f ld a, [$d473] cp $a jr nc, .asm_48868 ld a, $a .asm_48868 sub $a ld [$d473], a jr .asm_4886f .asm_4886f ld a, [$d473] and a jr z, .asm_48887 cp $64 jr z, .asm_48898 jr z, .asm_488a7 ld hl, $c510 ld [hl], $10 ld hl, $c538 ld [hl], $11 jr .asm_488a7 .asm_48887 ld hl, $c50e ld b, $1 ld c, $8 call Function48cdc ld hl, $c510 ld [hl], $10 jr .asm_488a7 .asm_48898 ld hl, $c50e ld b, $1 ld c, $8 call Function48cdc ld hl, $c538 ld [hl], $11 .asm_488a7 ld hl, $c523 call Function487ec call WaitBGMap ld a, $1 and a ret ; known jump sources: 48819 (12:4819) Function488b4: ; 488b4 (12:48b4) ld a, $0 and a scf ret ; known jump sources: 48812 (12:4812) Function488b9: ; 488b9 (12:48b9) ld a, [$d003] set 1, a ld [$d003], a scf ret ; 488c3 (12:48c3) INCBIN "baserom.gbc",$488c3,$488d3 - $488c3 ; known jump sources: 48230 (12:4230) Function488d3: ; 488d3 (12:48d3) call Function48283 ld hl, $c5e1 ld de, $44e2 call PlaceString call Function48a3a jp c, Function4840c ld hl, $450e call LoadMenuDataHeader ld a, [$FF00+$aa] push af ld a, $1 ld [$FF00+$aa], a ld hl, $c55e ld b, $1 ld c, $8 call Function48cdc ld a, [$d475] and $f ld d, $0 ld hl, $c573 call Function489ea call WaitBGMap ld a, [$d475] ld b, a ld a, [$d476] ld c, a ld a, [$d477] ld d, a ld a, [$d478] ld e, a push de push bc ld d, $0 ld b, $0 ; known jump sources: 48999 (12:4999) asm_48922: ; 48922 (12:4922) push bc call Functiona57 ld a, [hJoyDown] ; $ff00+$a8 and a jp z, Function4896e bit 0, a jp nz, Function4896e bit 1, a jp nz, Function4896e ld a, [DefaultFlypoint] ; $d002 and $cf res 7, a ld [DefaultFlypoint], a ; $d002 pop bc inc b ld a, b cp $5 push bc jr c, .asm_4894c pop bc ld b, $4 push bc .asm_4894c pop bc push bc ld a, b cp $4 jr nz, asm_48972 ld c, $a call DelayFrames jr asm_48972 ; 4895a (12:495a) INCBIN "baserom.gbc",$4895a,$4896e - $4895a ; known jump sources: 48929 (12:4929), 4892e (12:492e), 48933 (12:4933) Function4896e: ; 4896e (12:496e) pop bc ld b, $0 push bc ; known jump sources: 48951 (12:4951), 48958 (12:4958) asm_48972: ; 48972 (12:4972) call Function48ab5 push af cp $f0 jr z, .asm_48994 cp $f jr nz, .asm_48988 ld a, [DefaultFlypoint] ; $d002 set 7, a and $cf ld [DefaultFlypoint], a ; $d002 .asm_48988 ld hl, $c573 ld b, $0 ld c, d add hl, bc ld b, $3 call Function48c11 .asm_48994 call WaitBGMap pop af pop bc jr nc, asm_48922 jr nz, .asm_489b1 pop bc ld a, b ld [$d475], a ld a, c ld [$d476], a pop bc ld a, b ld [$d477], a ld a, c ld [$d478], a jr .asm_489c5 .asm_489b1 push af ld a, [$d479] set 0, a ld [$d479], a ld a, [$d003] set 3, a ld [$d003], a pop af pop bc pop bc .asm_489c5 push af push bc push de push hl ld a, $1 call Function1ff8 pop hl pop de pop bc pop af call Function1c07 ld hl, $c573 call Function489ea ld hl, $c55f ld bc, $108 call ClearBox pop af ld [$FF00+$aa], a jp Function4840c ; known jump sources: 4812e (12:412e), 48906 (12:4906), 489d8 (12:49d8), 48b47 (12:4b47), 48c04 (12:4c04) Function489ea: ; 489ea (12:49ea) push de ld a, [$d475] and $f call Function48444 ld a, [$d476] and $f0 swap a inc hl call Function48444 ld a, [$d476] and $f inc hl call Function48444 inc hl ld de, String_48a38 call PlaceString ld a, [$d477] and $f0 swap a inc hl call Function48444 ld a, [$d477] and $f inc hl call Function48444 ld a, [$d478] and $f0 swap a inc hl call Function48444 ld a, [$d478] and $f inc hl call Function48444 pop de ret ; 48a38 (12:4a38) String_48a38: ; 48a38 db "-@" ; 48a3a ; known jump sources: 488df (12:48df) Function48a3a: ; 48a3a (12:4a3a) ld hl, $4a9c call LoadMenuDataHeader call Function4873c ld a, $a ld [$cfa1], a ld a, $b ld [$cfa2], a ld a, $1 ld [$cfa9], a ld hl, $c54a ld b, $4 ld c, $8 call Function48cdc ld hl, $c574 ld de, $4aa1 call PlaceString call Function1bc9 push af call PlayClickSFX call Function1c07 pop af bit 1, a jp nz, Function48a9a ld a, [$cfa9] cp $1 jr z, .asm_48a98 ld a, [$d003] set 3, a ld [$d003], a ld a, [$d479] res 0, a ld [$d479], a xor a ld bc, $4 ld hl, $d475 call ByteFill jr Function48a9a .asm_48a98 and a ret ; known jump sources: 48a72 (12:4a72), 48a96 (12:4a96) Function48a9a: ; 48a9a (12:4a9a) scf ret ; 48a9c (12:4a9c) INCBIN "baserom.gbc",$48a9c,$48ab5 - $48a9c ; known jump sources: 48972 (12:4972) Function48ab5: ; 48ab5 (12:4ab5) ld a, [hJoyPressed] ; $ff00+$a7 and $1 jp nz, Function48c0f ld a, [hJoyPressed] ; $ff00+$a7 and $2 jp nz, Function48c0d ld a, d and a jr z, .asm_48adf cp $1 jr z, .asm_48ae7 cp $2 jr z, .asm_48af1 cp $3 jr z, .asm_48af9 cp $4 jr z, .asm_48b03 cp $5 jr z, .asm_48b0b cp $6 jr .asm_48b15 .asm_48adf ld hl, $d475 ld a, [hl] and $f jr .asm_48b1d .asm_48ae7 ld hl, $d476 ld a, [hl] swap a or $f0 jr .asm_48b1d .asm_48af1 ld hl, $d476 ld a, [hl] and $f jr .asm_48b1d .asm_48af9 ld hl, $d477 ld a, [hl] swap a or $f0 jr .asm_48b1d .asm_48b03 ld hl, $d477 ld a, [hl] and $f jr .asm_48b1d .asm_48b0b ld hl, $d478 ld a, [hl] swap a or $f0 jr .asm_48b1d .asm_48b15 ld hl, $d478 ld a, [hl] and $f jr .asm_48b1d .asm_48b1d push hl push af ld e, $0 ld hl, $c573 ld a, d .asm_48b25 and a jr z, .asm_48b2c inc e dec a jr .asm_48b25 .asm_48b2c ld hl, $ffa9 ld a, [hl] and $40 jr nz, .asm_48b8d ld a, [hl] and $80 jr nz, .asm_48b55 ld a, [hl] and $20 jp nz, Function48bd7 ld a, [hl] and $10 jr nz, .asm_48b9d ld hl, $c573 call Function489ea ld a, [DefaultFlypoint] ; $d002 bit 7, a jr nz, .asm_48b51 .asm_48b51 pop bc pop bc and a ret .asm_48b55 pop af ld b, a and $f and a ld a, b jr nz, .asm_48b61 and $f0 add $a .asm_48b61 dec a .asm_48b62 push de push af ld hl, $c55e ld b, $1 ld c, $8 call Function48cdc pop af pop de ld hl, $c573 ld b, a ld a, d cp $3 jr c, .asm_48b7a inc hl .asm_48b7a ld a, b pop hl bit 7, a jr z, .asm_48b85 call Function48c4d jr .asm_48b88 .asm_48b85 call Function48c5a .asm_48b88 ld a, $f0 jp Function48c00 .asm_48b8d pop af ld b, a and $f cp $9 ld a, b jr c, .asm_48b9a and $f0 add $ff .asm_48b9a inc a jr .asm_48b62 .asm_48b9d push de ld hl, $c55e ld b, $1 ld c, $8 call Function48cdc pop de ld a, d cp $6 jr nc, .asm_48baf inc d .asm_48baf pop af pop hl ld b, a ld a, d cp $6 ld a, b jr z, .asm_48bc4 bit 7, a jr nz, .asm_48bc4 inc hl ld a, [hl] swap a and $f jr asm_48bc7 .asm_48bc4 ld a, [hl] and $f ; known jump sources: 48bc2 (12:4bc2), 48bf6 (12:4bf6), 48bfe (12:4bfe) asm_48bc7: ; 48bc7 (12:4bc7) ld hl, $c573 push af ld a, d cp $3 pop bc ld a, b jr c, .asm_48bd3 inc hl .asm_48bd3 ld a, $f jr Function48c00 ; known jump sources: 48b3c (12:4b3c) Function48bd7: ; 48bd7 (12:4bd7) push de ld hl, $c55e ld b, $1 ld c, $8 call Function48cdc pop de ld a, d and a pop af pop hl ld b, a ld a, d and a ld a, b jr z, .asm_48bf3 bit 7, a jr z, .asm_48bf8 dec d dec hl .asm_48bf3 ld a, [hl] and $f jr asm_48bc7 .asm_48bf8 dec d ld a, [hl] swap a and $f jr asm_48bc7 ; known jump sources: 48b8a (12:4b8a), 48bd5 (12:4bd5) Function48c00: ; 48c00 (12:4c00) push af ld hl, $c573 call Function489ea ld a, $1 and a pop bc ld a, b ret ; known jump sources: 48ac0 (12:4ac0) Function48c0d: ; 48c0d (12:4c0d) xor a and a ; known jump sources: 48ab9 (12:4ab9) Function48c0f: ; 48c0f (12:4c0f) scf ret ; known jump sources: 48991 (12:4991) Function48c11: ; 48c11 (12:4c11) ld a, [DefaultFlypoint] ; $d002 bit 7, a jr z, .asm_48c20 ld a, d cp $3 jr c, .asm_48c1e inc hl .asm_48c1e ld [hl], $7f .asm_48c20 ld a, [DefaultFlypoint] ; $d002 swap a and $3 inc a cp b jr nz, .asm_48c40 ld a, [DefaultFlypoint] ; $d002 bit 7, a jr z, .asm_48c3a res 7, a ld [DefaultFlypoint], a ; $d002 xor a jr .asm_48c40 .asm_48c3a set 7, a ld [DefaultFlypoint], a ; $d002 xor a .asm_48c40 swap a ld b, a ld a, [DefaultFlypoint] ; $d002 and $cf or b ld [DefaultFlypoint], a ; $d002 ret ; known jump sources: 48b80 (12:4b80) Function48c4d: ; 48c4d (12:4c4d) swap a and $f0 push af ld a, [hl] and $f ld [hl], a pop af or [hl] ld [hl], a ret ; known jump sources: 48b85 (12:4b85) Function48c5a: ; 48c5a (12:4c5a) push af ld a, [hl] and $f0 ld [hl], a pop af or [hl] ld [hl], a ret Function48c63: ; 48c63 ld a, $50 ld [de], a ld a, c cp $30 jr nc, .asm_48c8c and a jr z, .asm_48c8c dec c push de ld h, d ld l, e ld a, $50 ld b, $7 .asm_48c76 ld [hli], a dec b jr nz, .asm_48c76 ld hl, Prefectures ld a, c call GetNthString .asm_48c81 ld a, [hli] ld [de], a inc de ld a, [hl] cp $50 jr nz, .asm_48c81 and a pop de ret .asm_48c8c scf ret ; 48c8e INCBIN "baserom.gbc",$48c8e,$48cda - $48c8e ; no known jump sources Function48cda: ; 48cda (12:4cda) ld h, d ld l, e ; known jump sources: 480cb (12:40cb), 482a9 (12:42a9), 48323 (12:4323), 486bb (12:46bb), 4878f (12:478f), 4888e (12:488e), 4889f (12:489f), 488f9 (12:48f9), 48a59 (12:4a59), 48b6b (12:4b6b), 48ba5 (12:4ba5), 48bdf (12:4bdf), 49f25 (12:5f25), 4a150 (12:6150), 4a2b3 (12:62b3), 4a4df (12:64df) Function48cdc: ; 48cdc (12:4cdc) push bc push hl call Function48cfd pop hl pop bc ld de, $939 add hl, de inc b inc b inc c inc c ld a, $0 .asm_48ced push bc push hl .asm_48cef ld [hli], a dec c jr nz, .asm_48cef pop hl ld de, $14 add hl, de pop bc dec b jr nz, .asm_48ced ret ; known jump sources: 48cde (12:4cde) Function48cfd: ; 48cfd (12:4cfd) push hl ld a, $4 ld [hli], a inc a call Function48d2a inc a ld [hl], a pop hl ld de, $14 add hl, de .asm_48d0c push hl ld a, $7 ld [hli], a ld a, $7f call Function48d2a ld [hl], $8 pop hl ld de, $14 add hl, de dec b jr nz, .asm_48d0c ld a, $9 ld [hli], a ld a, $a call Function48d2a ld [hl], $b ret ; known jump sources: 48d02 (12:4d02), 48d12 (12:4d12), 48d24 (12:4d24) Function48d2a: ; 48d2a (12:4d2a) ld d, c .asm_48d2b ld [hli], a dec d jr nz, .asm_48d2b ret ; known jump sources: 4817d (12:417d), 4825f (12:425f) Function48d30: ; 48d30 (12:4d30) ld hl, $d475 call Function48d4a ld hl, $d477 call Function48d4a ret ; known jump sources: 48042 (12:4042) Function48d3d: ; 48d3d (12:4d3d) ld hl, $d475 call Function48d94 ld hl, $d477 call Function48d94 ret ; known jump sources: 48d33 (12:4d33), 48d39 (12:4d39) Function48d4a: ; 48d4a (12:4d4a) inc hl ld a, [hl] ld b, a and $f ld c, a srl b srl b srl b srl b push bc ld c, $a ld a, b call SimpleMultiply pop bc add c ld [hld], a xor a ld [hQuotient], a ; $ff00+$b4 (aliases: hMultiplicand) ld [$FF00+$b5], a ld a, [hl] srl a srl a srl a srl a ld c, $a call SimpleMultiply ld b, a ld a, [hli] and $f add b ld [$FF00+$b6], a ld a, $64 ld [hDivisor], a ; $ff00+$b7 (aliases: hMultiplier) call Multiply ld a, [$FF00+$b5] ld b, a ld a, [$FF00+$b6] ld c, a ld e, [hl] add e ld c, a ld a, b adc $0 ld b, a ld a, c ld [hld], a ld [hl], b ret ; known jump sources: 48d40 (12:4d40), 48d46 (12:4d46) Function48d94: ; 48d94 (12:4d94) xor a ld [hPastLeadingZeroes], a ; $ff00+$b3 (aliases: hDividend, hProduct) ld [hQuotient], a ; $ff00+$b4 (aliases: hMultiplicand) ld a, [hli] ld [hPastLeadingZeroes], a ; $ff00+$b3 (aliases: hDividend, hProduct) ld a, [hl] ld [hQuotient], a ; $ff00+$b4 (aliases: hMultiplicand) ld a, $64 ld [hDivisor], a ; $ff00+$b7 (aliases: hMultiplier) ld b, $2 call Divide ld a, [hDivisor] ; $ff00+$b7 (aliases: hMultiplier) ld c, $a call SimpleDivide sla b sla b sla b sla b or b ld [hld], a ld a, [$FF00+$b6] ld c, $a call SimpleDivide sla b sla b sla b sla b or b ld [hl], a ret ; no known jump sources Function48dcb: ; 48dcb (12:4dcb) call Function48e14 call Function48e47 call Function48e64 call Function3200 call Function32f9 ld hl, UnknownText_0x48e0f call PrintText ld hl, Unknown_48dfc call LoadMenuDataHeader call Function3200 call Function1d81 call Function1c17 ld a, [$cfa9] dec a ld [PlayerGender], a ; $d472 ld c, $a call DelayFrames ret ; 48dfc (12:4dfc) Unknown_48dfc: ; 48dfc INCBIN "baserom.gbc", $48dfc, $48e0f - $48dfc UnknownText_0x48e0f: ; 0x48e0f ; Are you a boy? Or are you a girl? text_jump UnknownText_0x1c0ca3 db "@" ; 0x48e14 ; known jump sources: 48dcb (12:4dcb) Function48e14: ; 48e14 (12:4e14) ld a, $10 ld [MusicFade], a ; $c2a7 ld a, $0 ld [MusicFadeIDLo], a ; $c2a9 ld a, $0 ld [MusicFadeIDHi], a ; $c2aa ld c, $8 call DelayFrames call WhiteBGMap call Function48000 call Functione5f ld hl, TileMap ; $c4a0 (aliases: SpritesEnd) ld bc, $168 ld a, $0 call ByteFill ld hl, AttrMap ; $cdd9 ld bc, $168 xor a call ByteFill ret ; known jump sources: 48dce (12:4dce) Function48e47: ; 48e47 (12:4e47) ld hl, $4e5c ld de, Unkn1Pals ; $d000 ld bc, $8 ld a, $5 call FarCopyWRAM callba Function96a4 ret ; 48e5c (12:4e5c) INCBIN "baserom.gbc",$48e5c,$48e64 - $48e5c ; known jump sources: 48dd1 (12:4dd1) Function48e64: ; 48e64 (12:4e64) ld de, $4e71 ld hl, $9000 ld bc, $1201 call Get2bpp ret ; 48e71 (12:4e71) INCBIN "baserom.gbc",$48e71,$48e81 - $48e71 Function48e81: ; 48e81 ld hl, PackFGFXPointers add hl, de add hl, de ld a, [hli] ld e, a ld d, [hl] ld hl, $9500 lb bc, BANK(PackFGFX), 15 call Request2bpp ret ; 48e93 PackFGFXPointers: ; 48e93 dw PackFGFX + $f0 * 1 dw PackFGFX + $f0 * 3 dw PackFGFX + $f0 * 0 dw PackFGFX + $f0 * 2 ; 48e9b PackFGFX: ; 48e9b INCBIN "gfx/misc/pack_f.w40.2bpp" ; 4925b Function4925b: ; 4925b call FadeToMenu call WhiteBGMap call Functionfdb call DelayFrame ld b, $14 call GetSGBLayout xor a ld [$d142], a call Function492a5 ld [$d265], a ld [$d262], a call GetMoveName call CopyName1 callba Function2c7fb jr c, .asm_4929c jr .asm_49291 .asm_49289 callba Function2c80a jr c, .asm_4929c .asm_49291 call Function492b9 jr nc, .asm_49289 xor a ld [ScriptVar], a jr .asm_492a1 .asm_4929c ld a, $ff ld [ScriptVar], a .asm_492a1 call Function2b3c ret ; 492a5 Function492a5: ; 492a5 ld a, [ScriptVar] cp $1 jr z, .asm_492b3 cp $2 jr z, .asm_492b6 ld a, $3a ret .asm_492b3 ld a, $35 ret .asm_492b6 ld a, $55 ret ; 492b9 Function492b9: ; 492b9 ld hl, MenuDataHeader_0x4930a call LoadMenuDataHeader ld a, $e call Predef push bc ld a, [CurPartyMon] ld hl, PartyMon1Nickname call GetNick pop bc ld a, c and a jr nz, .asm_492e5 push de ld de, SFX_WRONG call PlaySFX pop de ld a, BANK(UnknownText_0x2c8ce) ld hl, UnknownText_0x2c8ce call FarPrintText jr .asm_49300 .asm_492e5 callab Functionf9ea jr c, .asm_49300 ld a, $0 call Predef ld a, b and a jr z, .asm_49300 ld c, $5 callab ChangeHappiness jr .asm_49305 .asm_49300 call Function1c07 and a ret .asm_49305 call Function1c07 scf ret ; 4930a MenuDataHeader_0x4930a: ; 0x4930a db $40 ; flags db 12, 00 ; start coords db 17, 19 ; end coords ; 4930f ; known jump sources: 480a0 (12:40a0), 48690 (12:4690) Function4930f: ; 4930f (12:530f) ld a, b cp $ff jr nz, .asm_49317 ld a, [SGBPredef] ; $cd98 .asm_49317 push af callba Function9673 pop af ld l, a ld h, 0 add hl, hl ld de, Jumptable_49330 add hl, de ld a, [hli] ld h, [hl] ld l, a ld de, .done push de jp [hl] .done ret ; 49330 (12:5330) Jumptable_49330: ; 49330 dw Function4936e dw Function4942f dw Function49706 ; 49336 Function49336: ; 49336 .asm_49336 push bc push hl .asm_49338 ld [hli], a dec c jr nz, .asm_49338 pop hl ld bc, $0014 add hl, bc pop bc dec b jr nz, .asm_49336 ret ; 49346 ; known jump sources: 49371 (12:5371) Function49346: ; 49346 (12:5346) ld hl, AttrMap ; $cdd9 ld bc, $168 xor a call ByteFill ret ; known jump sources: 4936e (12:536e), 4a0af (12:60af) Function49351: ; 49351 (12:5351) ld de, Unkn1Pals ; $d000 ld hl, Palette_493e1 ld bc, $28 ld a, $5 ; BANK(Unkn1Pals) call FarCopyWRAM ld de, Unkn1Pals + $38 ld hl, Palette_49418 ld bc, $8 ld a, $5 ; BANK(Unkn1Pals) call FarCopyWRAM ret ; known jump sources: 4a492 (12:6492) Function4936e: ; 4936e (12:536e) call Function49351 call Function49346 call Function49384 callba Function96b3 callba Function96a4 ret ; known jump sources: 49374 (12:5374) Function49384: ; 49384 (12:5384) ld hl, AttrMap ; $cdd9 ld bc, $401 ld a, $1 call Function49336 ld bc, $201 ld a, $2 call Function49336 ld bc, $601 ld a, $3 call Function49336 ld hl, $cdda ld a, $1 ld bc, $312 call Function49336 ld bc, $212 ld a, $2 call Function49336 ld bc, $c12 ld a, $3 call Function49336 ld hl, $cdec ld bc, $401 ld a, $1 call Function49336 ld bc, $201 ld a, $2 call Function49336 ld bc, $601 ld a, $3 call Function49336 ld hl, $cec9 ld bc, $78 ld a, $7 call ByteFill ret ; 493e1 (12:53e1) Palette_493e1: ; 493e1 RGB 03, 07, 09 RGB 26, 31, 00 RGB 20, 16, 03 RGB 31, 31, 31 RGB 13, 24, 29 RGB 11, 16, 30 RGB 07, 11, 22 RGB 05, 06, 18 RGB 31, 31, 31 RGB 20, 26, 31 RGB 13, 24, 29 RGB 11, 16, 30 RGB 31, 31, 31 RGB 20, 26, 31 RGB 00, 00, 00 RGB 00, 00, 00 RGB 31, 31, 31 RGB 20, 16, 08 RGB 31, 00, 00 RGB 00, 00, 00 ; 49409 Function49409:: ; 49409 ld hl, Palette_49418 ld de, $d038 ld bc, $0008 ld a, $5 call FarCopyWRAM ret ; 49418 Palette_49418: ; 49418 RGB 31, 31, 31 RGB 08, 19, 28 RGB 05, 05, 16 RGB 00, 00, 00 ; 49420 ; no known jump sources Function49420:: ; 49420 (12:5420) ld hl, Palette_496bd ld de, Unkn1Pals + $30 ld bc, $8 ld a, $5 ; BANK(Unkn1Pals) call FarCopyWRAM ret ; 4942f (12:542f) Function4942f: ; 4942f call Function49351 ld de, Unkn1Pals + $38 ld hl, Palette_49478 ld bc, $8 ld a, $5 ; BANK(Unkn1Pals) call FarCopyWRAM call Function49346 ld hl, AttrMap ld bc, $0168 xor a call ByteFill ld hl, $cef1 ld bc, $0050 ld a, $7 call ByteFill ld a, [DefaultFlypoint] bit 6, a jr z, .asm_49464 call Function49480 jr .asm_49467 .asm_49464 call Function49496 .asm_49467 callba Function96b3 callba Function96a4 ld a, $1 ld [hCGBPalUpdate], a ret ; 49478 Palette_49478: ; 49478 RGB 31, 31, 31 RGB 26, 31, 00 RGB 20, 16, 03 RGB 00, 00, 00 ; 49480 Function49480: ; 49480 ld hl, AttrMap ld bc, $0414 ld a, $7 call Function49336 ld hl, $ce01 ld a, $4 ld [hl], a ld hl, $ce14 ld [hl], a ret ; 49496 Function49496: ; 49496 ld hl, AttrMap ld bc, $0214 ld a, $7 call Function49336 ld hl, $cded ld a, $4 ld [hl], a ld hl, $ce00 ld [hl], a ret ; 494ac Function494ac: ; 494ac ld a, [$d199] cp $15 jr z, .asm_494c9 cp $16 jr z, .asm_494ce cp $1d jr z, .asm_494d3 cp $5 jr z, .asm_494e1 cp $1b jr z, .asm_494e6 cp $d jr z, .asm_494eb jr .asm_494f0 .asm_494c9 call Function494f2 scf ret .asm_494ce call Function49541 scf ret .asm_494d3 ld a, [$d19a] and $7 cp $3 jr z, .asm_494f0 call Function49590 scf ret .asm_494e1 call Function495df scf ret .asm_494e6 call Function4962e scf ret .asm_494eb call Function496c5 scf ret .asm_494f0 and a ret ; 494f2 Function494f2: ; 494f2 ld a, $5 ld de, Unkn1Pals ld hl, Palette_49501 ld bc, $0040 call FarCopyWRAM ret ; 49501 Palette_49501: ; 49501 RGB 30, 28, 26 RGB 19, 19, 19 RGB 13, 13, 13 RGB 07, 07, 07 RGB 30, 28, 26 RGB 31, 19, 24 RGB 30, 10, 06 RGB 07, 07, 07 RGB 18, 24, 09 RGB 15, 20, 01 RGB 09, 13, 00 RGB 07, 07, 07 RGB 30, 28, 26 RGB 17, 19, 31 RGB 14, 16, 31 RGB 07, 07, 07 RGB 31, 26, 21 RGB 31, 20, 01 RGB 14, 16, 31 RGB 07, 07, 07 RGB 21, 17, 07 RGB 17, 19, 31 RGB 16, 13, 03 RGB 07, 07, 07 RGB 05, 05, 16 RGB 08, 19, 28 RGB 00, 00, 00 RGB 31, 31, 31 RGB 31, 31, 16 RGB 31, 31, 16 RGB 14, 09, 00 RGB 00, 00, 00 ; 49541 Function49541: ; 49541 ld a, $5 ld de, Unkn1Pals ld hl, Palette_49550 ld bc, $0040 call FarCopyWRAM ret ; 49550 Palette_49550: ; 49550 RGB 30, 28, 26 RGB 19, 19, 19 RGB 13, 13, 13 RGB 07, 07, 07 RGB 30, 28, 26 RGB 31, 19, 24 RGB 30, 10, 06 RGB 07, 07, 07 RGB 18, 24, 09 RGB 15, 20, 01 RGB 09, 13, 00 RGB 07, 07, 07 RGB 30, 28, 26 RGB 15, 16, 31 RGB 09, 09, 31 RGB 07, 07, 07 RGB 30, 28, 26 RGB 31, 31, 07 RGB 31, 16, 01 RGB 07, 07, 07 RGB 26, 24, 17 RGB 21, 17, 07 RGB 16, 13, 03 RGB 07, 07, 07 RGB 05, 05, 16 RGB 08, 19, 28 RGB 00, 00, 00 RGB 31, 31, 31 RGB 31, 31, 16 RGB 31, 31, 16 RGB 14, 09, 00 RGB 00, 00, 00 ; 49590 Function49590: ; 49590 ld a, $5 ld de, Unkn1Pals ld hl, Palette_4959f ld bc, $0040 call FarCopyWRAM ret ; 4959f Palette_4959f: ; 4959f RGB 15, 14, 24 RGB 11, 11, 19 RGB 07, 07, 12 RGB 00, 00, 00 RGB 15, 14, 24 RGB 14, 07, 17 RGB 13, 00, 08 RGB 00, 00, 00 RGB 22, 29, 31 RGB 10, 27, 31 RGB 31, 31, 31 RGB 05, 00, 09 RGB 15, 14, 24 RGB 05, 05, 17 RGB 03, 03, 10 RGB 00, 00, 00 RGB 30, 30, 11 RGB 16, 14, 18 RGB 16, 14, 10 RGB 00, 00, 00 RGB 15, 14, 24 RGB 12, 09, 15 RGB 08, 04, 05 RGB 00, 00, 00 RGB 25, 31, 31 RGB 09, 28, 31 RGB 16, 11, 31 RGB 05, 00, 09 RGB 31, 31, 16 RGB 31, 31, 16 RGB 14, 09, 00 RGB 00, 00, 00 ; 495df Function495df: ; 495df ld a, $5 ld de, Unkn1Pals ld hl, Palette_495ee ld bc, $0040 call FarCopyWRAM ret ; 495ee Palette_495ee: ; 495ee RGB 30, 28, 26 RGB 19, 19, 19 RGB 13, 13, 13 RGB 07, 07, 07 RGB 30, 28, 26 RGB 31, 19, 24 RGB 30, 10, 06 RGB 07, 07, 07 RGB 30, 28, 26 RGB 15, 20, 01 RGB 09, 13, 00 RGB 07, 07, 07 RGB 30, 28, 26 RGB 15, 16, 31 RGB 09, 09, 31 RGB 07, 07, 07 RGB 30, 28, 26 RGB 31, 31, 07 RGB 31, 16, 01 RGB 07, 07, 07 RGB 26, 24, 17 RGB 21, 17, 07 RGB 16, 13, 03 RGB 07, 07, 07 RGB 30, 28, 26 RGB 31, 19, 24 RGB 16, 13, 03 RGB 07, 07, 07 RGB 31, 31, 16 RGB 31, 31, 16 RGB 14, 09, 00 RGB 00, 00, 00 ; 4962e Function4962e: ; 4962e ld a, $5 ld de, Unkn1Pals ld hl, Palette_4963d ld bc, $0040 call FarCopyWRAM ret ; 4963d Palette_4963d: ; 4963d RGB 27, 31, 27 RGB 21, 21, 21 RGB 13, 13, 13 RGB 07, 07, 07 RGB 27, 31, 27 RGB 31, 19, 24 RGB 30, 10, 06 RGB 07, 07, 07 RGB 08, 12, 31 RGB 12, 25, 01 RGB 05, 14, 00 RGB 07, 07, 07 RGB 31, 31, 31 RGB 08, 12, 31 RGB 01, 04, 31 RGB 07, 07, 07 RGB 27, 31, 27 RGB 12, 25, 01 RGB 05, 14, 00 RGB 07, 07, 07 RGB 27, 31, 27 RGB 24, 18, 07 RGB 20, 15, 03 RGB 07, 07, 07 RGB 27, 31, 27 RGB 15, 31, 31 RGB 05, 17, 31 RGB 07, 07, 07 RGB 31, 31, 16 RGB 31, 31, 16 RGB 14, 09, 00 RGB 00, 00, 00 ; 4967d Palette_4967d: ; 4967d RGB 30, 28, 26 RGB 19, 19, 19 RGB 13, 13, 13 RGB 07, 07, 07 RGB 30, 28, 26 RGB 31, 19, 24 RGB 30, 10, 06 RGB 07, 07, 07 RGB 18, 24, 09 RGB 15, 20, 01 RGB 09, 13, 00 RGB 07, 07, 07 RGB 30, 28, 26 RGB 15, 16, 31 RGB 09, 09, 31 RGB 07, 07, 07 RGB 30, 28, 26 RGB 31, 31, 07 RGB 31, 16, 01 RGB 07, 07, 07 RGB 26, 24, 17 RGB 21, 17, 07 RGB 16, 13, 03 RGB 07, 07, 07 Palette_496ad: ; 496ad RGB 30, 28, 26 RGB 17, 19, 31 RGB 14, 16, 31 RGB 07, 07, 07 RGB 31, 31, 16 RGB 31, 31, 16 RGB 14, 09, 00 RGB 00, 00, 00 ; 496bd Palette_496bd: ; 496bd RGB 05, 05, 16 RGB 08, 19, 28 RGB 00, 00, 00 RGB 31, 31, 31 ; 496c5 Function496c5: ; 496c5 ld a, $5 ld de, Unkn1Pals ld hl, Palette_4967d ld bc, $0040 call FarCopyWRAM ld a, $5 ld de, $d020 ld hl, Palette_496fe ld bc, $0008 call FarCopyWRAM ld a, $5 ld de, $d018 ld hl, Palette_496ad ld bc, $0008 call FarCopyWRAM ld a, $5 ld de, $d030 ld hl, Palette_496bd ld bc, $0008 call FarCopyWRAM ret ; 496fe Palette_496fe: ; 496fe RGB 25, 24, 23 RGB 20, 19, 19 RGB 14, 16, 31 RGB 07, 07, 07 ; 49706 Function49706: ; 49706 ld hl, Palette_49732 ld de, Unkn1Pals ld bc, $0008 ld a, $5 call FarCopyWRAM callba Function96a4 call Function49346 callba Function96b3 ld hl, Palette_4973a ld de, Unkn2Pals ld bc, $0008 ld a, $5 call FarCopyWRAM ret ; 49732 Palette_49732: ; 49732 RGB 31, 31, 31 RGB 23, 16, 07 RGB 23, 07, 07 RGB 03, 07, 20 ; 4973a Palette_4973a: ; 4973a RGB 00, 00, 00 RGB 07, 05, 31 RGB 14, 18, 31 RGB 31, 31, 31 ; 49742 Function49742: ; 49742 ld hl, Palette_49757 ld de, Unkn1Pals ld bc, $0040 ld a, $5 call FarCopyWRAM callba Function96a4 ret ; 49757 Palette_49757: ; 49757 RGB 31, 31, 63 RGB 00, 00, 00 RGB 00, 00, 00 RGB 00, 00, 00 RGB 31, 31, 63 RGB 00, 00, 00 RGB 00, 00, 00 RGB 00, 00, 00 RGB 04, 02, 15 RGB 21, 00, 21 RGB 31, 00, 00 RGB 31, 31, 31 RGB 04, 02, 15 RGB 21, 00, 21 RGB 30, 16, 26 RGB 31, 31, 31 RGB 04, 02, 15 RGB 21, 00, 21 RGB 16, 16, 16 RGB 31, 31, 31 RGB 04, 02, 15 RGB 21, 00, 21 RGB 31, 12, 12 RGB 31, 31, 31 RGB 04, 02, 15 RGB 21, 00, 21 RGB 07, 08, 31 RGB 31, 31, 31 RGB 04, 02, 15 RGB 21, 00, 21 RGB 29, 28, 09 RGB 31, 31, 31 ; 49797 Function49797: ; 49797 ld hl, AttrMap ld bc, $1002 ld a, $4 call Function49336 ld a, $3 ld [$cded], a ld [$cef1], a ld hl, $cddb ld bc, $0812 ld a, $5 call Function49336 ld hl, $ce7b ld bc, $0812 ld a, $6 call Function49336 ld hl, $cf19 ld bc, $0214 ld a, $4 call Function49336 ld a, $3 ld bc, $0601 ld hl, $cdf3 call Function49336 ld a, $3 ld bc, $0601 ld hl, $cdfe call Function49336 ld a, $3 ld bc, $0601 ld hl, $ce93 call Function49336 ld a, $3 ld bc, $0601 ld hl, $ce9e call Function49336 ld a, $2 ld hl, $cf1b ld [hli], a ld a, $7 ld [hli], a ld [hli], a ld [hli], a ld a, $2 ld [hl], a ld hl, $cf2f ld a, $3 ld bc, $0006 call ByteFill ret ; 49811 Function49811: ; 49811 ld hl, Palette_49826 ld de, $d010 ld bc, $0030 ld a, $5 call FarCopyWRAM callba Function96a4 ret ; 49826 Palette_49826: ; 49826 RGB 04, 02, 15 RGB 07, 09, 31 RGB 31, 00, 00 RGB 31, 31, 31 RGB 04, 02, 15 RGB 07, 09, 31 RGB 15, 23, 30 RGB 31, 31, 31 RGB 04, 02, 15 RGB 07, 09, 31 RGB 16, 16, 16 RGB 31, 31, 31 RGB 04, 02, 15 RGB 07, 09, 31 RGB 25, 07, 04 RGB 31, 31, 31 RGB 04, 02, 15 RGB 07, 09, 31 RGB 03, 22, 08 RGB 31, 31, 31 RGB 04, 02, 15 RGB 07, 09, 31 RGB 29, 28, 09 RGB 31, 31, 31 ; 49856 Function49856: ; 49856 call Function49797 ret ; 4985a INCBIN "baserom.gbc",$4985a,$4989a - $4985a Function4989a: ; 4989a call DelayFrame ld a, [VramState] push af xor a ld [VramState], a call Function49912 ld de, $0750 ld a, $2c call Function3b2a ld hl, $0003 add hl, bc ld [hl], $84 ld hl, $0002 add hl, bc ld [hl], $1f ld hl, $000f add hl, bc ld a, $80 ld [hl], a ld a, $a0 ld [$cf64], a ld d, $0 .asm_498ca ld a, [$cf63] bit 7, a jr nz, .asm_498ee push bc call Function49bae inc d push de ld a, $90 ld [$c3b5], a callba Function8cf7a call Function49935 ld c, $2 call DelayFrames pop de pop bc jr .asm_498ca .asm_498ee pop af ld [VramState], a call Function498f9 call Function49bf3 ret ; 498f9 Function498f9: ; 498f9 ld hl, $c402 xor a ld c, $4 .asm_498ff ld [hli], a inc hl inc hl inc hl inc a dec c jr nz, .asm_498ff ld hl, $c410 ld bc, $0090 xor a call ByteFill ret ; 49912 Function49912: ; 49912 callba Function8cf53 ld de, SpecialCelebiLeafGFX ld hl, VTiles1 lb bc, BANK(SpecialCelebiLeafGFX), 4 call Request2bpp ld de, SpecialCelebiGFX ld hl, $8840 lb bc, BANK(SpecialCelebiGFX), $10 call Request2bpp xor a ld [$cf63], a ret ; 49935 Function49935: ; 49935 ld hl, $cf64 ld a, [hl] and a jr z, .asm_4993e dec [hl] ret .asm_4993e ld hl, $cf63 set 7, [hl] ret ; 49944 Function49944: ; 49944 ld hl, $cf65 ld a, [hl] inc [hl] and $7 ret nz ld a, [hl] and $18 sla a add $40 ld d, a ld e, $0 ld a, $18 call Function3b2a ld hl, $0003 add hl, bc ld [hl], $80 ret ; 49962 SpecialCelebiLeafGFX: ; 49962 INCBIN "gfx/special/celebi/leaf.2bpp" SpecialCelebiGFX: ; 499a2 INCBIN "gfx/special/celebi/1.2bpp" INCBIN "gfx/special/celebi/2.2bpp" INCBIN "gfx/special/celebi/3.2bpp" INCBIN "gfx/special/celebi/4.2bpp" ; no known jump sources Function49aa2: ; 49aa2 (12:5aa2) ld hl, $6 add hl, bc ld a, [hl] push af ld hl, $5 add hl, bc ld a, [hl] cp $52 jp nc, Function49b30 ld hl, $5 add hl, bc inc [hl] ld hl, $f add hl, bc ld a, [hl] ld d, a cp $3a jr c, .asm_49ac6 jr z, .asm_49ac6 sub $3 ld [hl], a .asm_49ac6 ld hl, $e add hl, bc ld a, [hl] inc [hl] call Function49b3b ld hl, $6 add hl, bc ld [hl], a ld d, a ld hl, $4 add hl, bc add [hl] cp $5c jr nc, .asm_49ae2 cp $44 jr nc, .asm_49b0d .asm_49ae2 pop af push af cp d jr nc, .asm_49af2 ld hl, $4 add hl, bc add [hl] cp $50 jr c, .asm_49b05 jr .asm_49afb .asm_49af2 ld hl, $4 add hl, bc add [hl] cp $50 jr nc, .asm_49b05 .asm_49afb ld hl, $5 add hl, bc ld a, [hl] sub $2 ld [hl], a jr .asm_49b0d .asm_49b05 ld hl, $5 add hl, bc ld a, [hl] add $1 ld [hl], a .asm_49b0d pop af ld hl, $4 add hl, bc add [hl] cp $50 jr c, .asm_49b26 cp $e6 jr nc, .asm_49b26 ld hl, $1 add hl, bc ld a, $41 call Function3b3c jr .asm_49b2f .asm_49b26 ld hl, $1 add hl, bc ld a, $40 call Function3b3c .asm_49b2f ret ; known jump sources: 49aaf (12:5aaf) Function49b30: ; 49b30 (12:5b30) pop af ld hl, $1 add hl, bc ld a, $40 call Function3b3c ret ; known jump sources: 49acc (12:5acc) Function49b3b: ; 49b3b (12:5b3b) add $10 and $3f cp $20 jr nc, .asm_49b48 call Function49b52 ld a, h ret .asm_49b48 and $1f call Function49b52 ld a, h xor $ff inc a ret ; known jump sources: 49b43 (12:5b43), 49b4a (12:5b4a) Function49b52: ; 49b52 (12:5b52) ld e, a ld a, d ld d, $0 ld hl, Unknown_49b6e add hl, de add hl, de ld e, [hl] inc hl ld d, [hl] ld hl, $0 .asm_49b61 srl a jr nc, .asm_49b66 add hl, de .asm_49b66 sla e rl d and a jr nz, .asm_49b61 ret ; 49b6e (12:5b6e) Unknown_49b6e: ; 49b6e ; Yet another sine wave. x set 0 rept $20 dw (sin(x) + (sin(x) & $ff)) >> 8 ; round up x set x + $100 * $40000 endr ; 49bae Function49bae: ; 49bae push hl push bc push de ld a, d ld d, $3 ld e, d cp $0 jr z, .asm_49bd0 cp d jr z, .asm_49bd4 call Function49bed cp d jr z, .asm_49bd8 call Function49bed cp d jr z, .asm_49bdc call Function49bed cp d jr c, .asm_49be9 jr .asm_49be5 .asm_49bd0 ld a, $84 jr .asm_49bde .asm_49bd4 ld a, $88 jr .asm_49bde .asm_49bd8 ld a, $8c jr .asm_49bde .asm_49bdc ld a, $90 .asm_49bde ld hl, $0003 add hl, bc ld [hl], a jr .asm_49be9 .asm_49be5 pop de ld d, $ff push de .asm_49be9 pop de pop bc pop hl ret ; 49bed Function49bed: ; 49bed push af ld a, d add e ld d, a pop af ret ; 49bf3 Function49bf3: ; 49bf3 ld a, $b ld [BattleType], a ret ; 49bf9 Function49bf9: ; 49bf9 ld a, [$d0ee] bit 6, a jr z, .asm_49c07 ld a, $1 ld [ScriptVar], a jr .asm_49c0b .asm_49c07 xor a ld [ScriptVar], a .asm_49c0b ret ; 49c0c GFX_49c0c: ; 49c0c INCBIN "baserom.gbc",$49c0c,$49cdc - $49c0c ; 49cdc MainMenu: ; 49cdc xor a ld [$c2d7], a call Function49ed0 ld b, $8 call GetSGBLayout call Function32f9 ld hl, GameTimerPause res 0, [hl] call Function49da4 ld [$cf76], a call Function49e09 ld hl, MenuDataHeader_0x49d14 call LoadMenuDataHeader call Function49de4 call Function1c17 jr c, .quit call ClearTileMap ld a, [MenuSelection] ld hl, Label49d60 rst JumpTable jr MainMenu .quit ret ; 49d14 MenuDataHeader_0x49d14: ; 49d14 db $40 ; flags db 00, 00 ; start coords db 07, 16 ; end coords dw MenuData2_0x49d1c db 1 ; default option ; 49d1c MenuData2_0x49d1c: ; 49d1c db $80 ; flags db 0 ; items dw MainMenuItems dw Function1f79 dw MainMenuText ; 49d20 MainMenuText: ; 49d24 db "CONTINUE@" db "NEW GAME@" db "OPTION@" db "MYSTERY GIFT@" db "MOBILE@" db "MOBILE STUDIUM@" Label49d60: ; 0x49d60 dw MainMenu_Continue dw MainMenu_NewGame dw MainMenu_Options dw MainMenu_MysteryGift dw MainMenu_Mobile dw MainMenu_MobileStudium ; 0x49d6c CONTINUE EQU 0 NEW_GAME EQU 1 OPTION EQU 2 MYSTERY_GIFT EQU 3 MOBILE EQU 4 MOBILE_STUDIUM EQU 5 MainMenuItems: NewGameMenu: ; 0x49d6c db 2 db NEW_GAME db OPTION db $ff ContinueMenu: ; 0x49d70 db 3 db CONTINUE db NEW_GAME db OPTION db $ff MobileMysteryMenu: ; 0x49d75 db 5 db CONTINUE db NEW_GAME db OPTION db MYSTERY_GIFT db MOBILE db $ff MobileMenu: ; 0x49d7c db 4 db CONTINUE db NEW_GAME db OPTION db MOBILE db $ff MobileStudiumMenu: ; 0x49d82 db 5 db CONTINUE db NEW_GAME db OPTION db MOBILE db MOBILE_STUDIUM db $ff MysteryMobileStudiumMenu: ; 0x49d89 db 6 db CONTINUE db NEW_GAME db OPTION db MYSTERY_GIFT db MOBILE db MOBILE_STUDIUM db $ff MysteryMenu: ; 0x49d91 db 4 db CONTINUE db NEW_GAME db OPTION db MYSTERY_GIFT db $ff MysteryStudiumMenu: ; 0x49d97 db 5 db CONTINUE db NEW_GAME db OPTION db MYSTERY_GIFT db MOBILE_STUDIUM db $ff StudiumMenu: ; 0x49d9e db 4 db CONTINUE db NEW_GAME db OPTION db MOBILE_STUDIUM db $ff Function49da4: ; 49da4 nop nop nop ld a, [$cfcd] and a jr nz, .asm_49db0 ld a, $0 ret .asm_49db0 ld a, [hCGB] cp $1 ld a, $1 ret nz ld a, $0 call GetSRAMBank ld a, [$abe5] cp $ff call CloseSRAM jr nz, .asm_49dd6 ld a, [StatusFlags] bit 7, a ld a, $1 jr z, .asm_49dd1 jr .asm_49dd1 .asm_49dd1 jr .asm_49dd3 .asm_49dd3 ld a, $1 ret .asm_49dd6 ld a, [StatusFlags] bit 7, a jr z, .asm_49ddf jr .asm_49ddf .asm_49ddf jr .asm_49de1 .asm_49de1 ld a, $6 ret ; 49de4 Function49de4: ; 49de4 call SetUpMenu .asm_49de7 call Function49e09 ld a, [$cfa5] set 5, a ld [$cfa5], a call Function1f1a ld a, [$cf73] cp $2 jr z, .asm_49e07 cp $1 jr z, .asm_49e02 jr .asm_49de7 .asm_49e02 call PlayClickSFX and a ret .asm_49e07 scf ret ; 49e09 Function49e09: ; 49e09 ld a, [$cfcd] and a ret z xor a ld [hBGMapMode], a call Function49e27 ld hl, Options ld a, [hl] push af set 4, [hl] call Function49e3d pop af ld [Options], a ld a, $1 ld [hBGMapMode], a ret ; 49e27 Function49e27: ; 49e27 call Function6e3 and $80 jr nz, .asm_49e39 ld hl, $c5b8 ld b, $2 ld c, $12 call TextBox ret .asm_49e39 call SpeechTextBox ret ; 49e3d Function49e3d: ; 49e3d ld a, [$cfcd] and a ret z call Function6e3 and $80 jp nz, Function49e75 call UpdateTime call GetWeekday ld b, a decoord 1, 15 call Function49e91 decoord 4, 16 ld a, [hHours] ld c, a callba Function90b3e ld [hl], ":" inc hl ld de, hMinutes ld bc, $8102 call PrintNum ret ; 49e70 ; 49e70 db "min.@" ; 49e75 Function49e75: ; 49e75 hlcoord 1, 14 ld de, .TimeNotSet call PlaceString ret ; 49e7f .TimeNotSet ; 49e7f db "TIME NOT SET@" ; 49e8c UnknownText_0x49e8c: ; 49e8c text_jump UnknownText_0x1c5182 db "@" ; 49e91 Function49e91: ; 49e91 push de ld hl, .Days ld a, b call GetNthString ld d, h ld e, l pop hl call PlaceString ld h, b ld l, c ld de, .Day call PlaceString ret ; 49ea8 .Days db "SUN@" db "MON@" db "TUES@" db "WEDNES@" db "THURS@" db "FRI@" db "SATUR@" .Day db "DAY@" ; 49ed0 Function49ed0: ; 49ed0 xor a ld [$ffde], a call ClearTileMap call Functione5f call Functione51 call Function1fbf ret ; 49ee0 MainMenu_NewGame: ; 49ee0 callba NewGame ret ; 49ee7 MainMenu_Options: ; 49ee7 callba OptionsMenu ret ; 49eee MainMenu_Continue: ; 49eee callba Continue ret ; 49ef5 MainMenu_MysteryGift: ; 49ef5 callba MysteryGift ret ; 49efc MainMenu_Mobile: ; 49efc call WhiteBGMap ld a, MUSIC_MOBILE_ADAPTER_MENU ld [CurMusic], a ld de, MUSIC_MOBILE_ADAPTER_MENU call Function4a6c5 Function49f0a: ; 49f0a call WhiteBGMap call Function4a3a7 call Function4a492 call WhiteBGMap Function49f16: ; 49f16 call Function4a071 ld c, $c call DelayFrames ld hl, $c4a4 ld b, $a ld c, $a call Function48cdc ld hl, $c4ce ld de, MobileString1 call PlaceString ld hl, $c590 ld b, $4 ld c, $12 call TextBox xor a ld de, String_0x49fe9 ld hl, $c5b9 call PlaceString call Function3200 call Function32f9 call Function1bc9 ld hl, $cfa9 ld b, [hl] push bc jr .asm_49f5d .asm_49f55 call Function1bd3 ld hl, $cfa9 ld b, [hl] push bc .asm_49f5d bit 0, a jr nz, .asm_49f67 bit 1, a jr nz, .asm_49f84 jr .asm_49f97 .asm_49f67 ld hl, $cfa9 ld a, [hl] cp $1 jp z, Function4a098 cp $2 jp z, Function4a0b9 cp $3 jp z, Function4a0c2 cp $4 jp z, Function4a100 ld a, $1 call Function1ff8 .asm_49f84 pop bc call WhiteBGMap call ClearTileMap ld a, MUSIC_MAIN_MENU ld [CurMusic], a ld de, MUSIC_MAIN_MENU call Function4a6c5 ret .asm_49f97 ld hl, $cfa9 ld a, [hl] dec a ld hl, MobileStrings2 call GetNthString ld d, h ld e, l ld hl, $c5a5 ld b, $4 ld c, $12 call ClearBox ld hl, $c5b9 call PlaceString jp .asm_49fb7 .asm_49fb7 call Function4a071 pop bc ld hl, $cfa9 ld [hl], b ld b, $a ld c, $1 ld hl, $c4b9 call ClearBox jp .asm_49f55 ; 49fcc MobileString1: ; 49fcc db "めいしフ,ルダー", $4e db "あいさつ", $4e db "プロフィール", $4e db "せ", $1e, "い", $4e db "もどる@" ; 49fe9 MobileStrings2: String_0x49fe9: ; 49fe9 db "めいし", $1f, "つくったり", $4e db "ほぞんしておける フ,ルダーです@" ; 4a004 String_0x4a004: ; 4a004 db "モバイルたいせんや じぶんのめいしで", $4e db "つかう あいさつ", $1f, "つくります@" ; 4a026 String_0x4a026: ; 4a026 db "あなた", $25, "じゅうしょや ねんれいの", $4e db "せ", $1e, "い", $1f, "かえられます@" ; 4a042 String_0x4a042: ; 4a042 db "モバイルセンター", $1d, "せつぞくするとき", $4e db "ひつような こと", $1f, "きめます@" ; 4a062 String_0x4a062: ; 4a062 db "まえ", $25, "がめん ", $1d, "もどります", $4e db "@" ; 4a071 ; known jump sources: 49f16 (12:5f16), 49fb7 (12:5fb7) Function4a071: ; 4a071 (12:6071) ld hl, $cfa1 ld a, $2 ld [hli], a ld a, $5 ld [hli], a ld a, $5 ld [hli], a ld a, $1 ld [hli], a ld [hl], $0 set 5, [hl] inc hl xor a ld [hli], a ld a, $20 ld [hli], a ld a, $1 add $40 add $80 add $2 ld [hli], a ld a, $1 ld [hli], a ld [hli], a ret ; known jump sources: 49f6d (12:5f6d) Function4a098: ; 4a098 (12:6098) ld a, $2 call Function1ff8 call Function1bee call WaitBGMap call Function1d6e callba Function89de0 call Function1d7d call Function49351 call Function4a485 pop bc jp Function49f16 ; known jump sources: 49f72 (12:5f72) Function4a0b9: ; 4a0b9 (12:60b9) ld a, $2 call Function1ff8 pop bc jp Function4a4c4 ; known jump sources: 49f77 (12:5f77) Function4a0c2: ; 4a0c2 (12:60c2) ld a, $2 call Function1ff8 ld a, $1 call GetSRAMBank ld hl, $a00b ld de, PlayerName ; $d47d ld bc, $6 call CopyBytes call CloseSRAM callba Function150b9 ld c, $2 call DelayFrames ld c, $1 call Function4802f push af call WhiteBGMap pop af and a jr nz, .asm_4a0f9 callba Function1509a .asm_4a0f9 ld c, $5 call DelayFrames jr asm_4a111 ; known jump sources: 49f7c (12:5f7c) Function4a100: ; 4a100 (12:6100) ld a, $2 call Function1ff8 call WhiteBGMap call Function4a13b call WhiteBGMap call ClearTileMap ; known jump sources: 4a0fe (12:60fe) asm_4a111: ; 4a111 (12:6111) pop bc call Functione5f jp Function49f0a ; known jump sources: 4a2c5 (12:62c5) Function4a118: ; 4a118 (12:6118) ld hl, $cfa1 ld a, $1 ld [hli], a ld a, $d ld [hli], a ld a, $3 ld [hli], a ld a, $1 ld [hli], a ld [hl], $0 set 5, [hl] inc hl xor a ld [hli], a ld a, $20 ld [hli], a ld a, $1 add $2 ld [hli], a ld a, $1 ld [hli], a ld [hli], a ret ; known jump sources: 4a108 (12:6108), 4a23a (12:623a) Function4a13b: ; 4a13b (12:613b) call Function4a3a7 call Function4a492 call Function4a373 ld c, $a call DelayFrames ; known jump sources: 4a236 (12:6236) Function4a149: ; 4a149 (12:6149) ld hl, $c4c9 ld b, $6 ld c, $10 call Function48cdc ld hl, $c4f3 ld de, $61ef call PlaceString ld hl, $c590 ld b, $4 ld c, $12 call TextBox ld a, [$cfa9] dec a ld hl, $623d call GetNthString ld d, h ld e, l ld hl, $c5a5 ld b, $4 ld c, $12 call ClearBox ld hl, $c5b9 call PlaceString callba Function104148 call Function32f9 call Function1bc9 ld hl, $cfa9 ld b, [hl] push bc jr asm_4a19d ; known jump sources: 4a1ec (12:61ec) Function4a195: ; 4a195 (12:6195) call Function1bd3 ld hl, $cfa9 ld b, [hl] push bc ; known jump sources: 4a193 (12:6193) asm_4a19d: ; 4a19d (12:619d) bit 0, a jr nz, .asm_4a1a7 bit 1, a jr nz, .asm_4a1ba jr .asm_4a1bc .asm_4a1a7 ld hl, $cfa9 ld a, [hl] cp $1 jp z, Function4a20e cp $2 jp z, Function4a221 ld a, $1 call Function1ff8 .asm_4a1ba pop bc ret .asm_4a1bc ld hl, $cfa9 ld a, [hl] dec a ld hl, Strings_4a23d call GetNthString ld d, h ld e, l ld hl, $c5a5 ld b, $4 ld c, $12 call ClearBox ld hl, $c5b9 call PlaceString jr .asm_4a1db .asm_4a1db call Function4a373 pop bc ld hl, $cfa9 ld [hl], b ld bc, $601 ld hl, $c4de call ClearBox jp Function4a195 ; 4a1ef (12:61ef) INCBIN "baserom.gbc",$4a1ef,$4a20e - $4a1ef ; known jump sources: 4a1ad (12:61ad) Function4a20e: ; 4a20e (12:620e) ld a, $1 call Function1ff8 callba Function1719c8 call WhiteBGMap call DelayFrame jr Function4a239 ; known jump sources: 4a1b2 (12:61b2) Function4a221: ; 4a221 (12:6221) ld a, $1 call Function1ff8 call Function4a28a jr c, Function4a239 call Function4a373 ld a, $2 ld [$cfa9], a jr .asm_4a235 .asm_4a235 pop bc jp Function4a149 ; known jump sources: 4a21f (12:621f), 4a229 (12:6229) Function4a239: ; 4a239 (12:6239) pop bc jp Function4a13b ; 4a23d (12:623d) Strings_4a23d: ; 4a23d db "いつも せつぞく", $1f, "する" next "モバイルセンター", $1f, "えらびます@" db "モバイルセンター", $1d, "せつぞくするとき" next "つかうパスワード", $1f, "ほぞんできます@" db "まえ", $25, "がめん ", $1d, "もどります@" db "@" ; 4a28a ; known jump sources: 4a226 (12:6226) Function4a28a: ; 4a28a (12:628a) ld hl, $c4de ld bc, $601 ld a, $7f call Function4a6d8 call Function1bee call WaitBGMap call Function1d6e ld a, $5 call GetSRAMBank ld a, [$aa4b] call CloseSRAM and a jr z, .asm_4a2df ld hl, $c4ac ld b, $5 ld c, $6 call Function48cdc ld hl, $c4c2 ld de, $634b call PlaceString callba Function104148 call Function4a118 call Function1bd3 push af call PlayClickSFX pop af bit 1, a jr nz, .asm_4a33b ld a, [$cfa9] cp $2 jr z, .asm_4a2f0 cp $3 jr z, .asm_4a33b .asm_4a2df callba Function11765d call WhiteBGMap call Function1d7d call Functione5f scf ret .asm_4a2f0 call Function1bee ld hl, $6358 call PrintText ld hl, $c53a ld b, $3 ld c, $4 call TextBox callba Function104148 ld hl, $6362 call LoadMenuDataHeader call Function1d81 bit 1, a jr nz, .asm_4a338 ld a, [$cfa9] cp $2 jr z, .asm_4a338 ld a, $5 call GetSRAMBank ld hl, $aa4b xor a ld bc, $11 call ByteFill call CloseSRAM ld hl, $635d call PrintText call Functiona36 .asm_4a338 call Function1c07 .asm_4a33b call Function1d7d callba Function104148 xor a ret ; 4a346 (12:6346) INCBIN "baserom.gbc",$4a346,$4a373 - $4a346 ; known jump sources: 4a141 (12:6141), 4a1db (12:61db), 4a22b (12:622b) Function4a373: ; 4a373 (12:6373) ld hl, $cfa1 ld a, $4 ld [hli], a ld a, $2 ld [hli], a ld a, $3 ld [hli], a ld a, $1 ld [hli], a ld [hl], $0 set 5, [hl] inc hl xor a ld [hli], a ld a, $20 ld [hli], a ld a, $1 add $40 add $80 add $2 ld [hli], a ld a, $1 ld [hli], a ld [hli], a ret ; 4a39a (12:639a) INCBIN "baserom.gbc",$4a39a,$4a3a7 - $4a39a ; known jump sources: 48078 (12:4078), 49f0d (12:5f0d), 4a13b (12:613b), 4a4c7 (12:64c7) Function4a3a7: ; 4a3a7 (12:63a7) call Function4a485 ld hl, TileMap ; $c4a0 (aliases: SpritesEnd) ld bc, $301 xor a call Function4a6d8 ld bc, $101 ld a, $1 call Function4a6d8 ld bc, $101 xor a call Function4a6d8 ld bc, $101 ld a, $1 call Function4a6d8 ld bc, $401 ld a, $2 call Function4a6d8 ld bc, $101 ld a, $3 call Function4a6d8 ld bc, $101 ld a, $7f call Function4a6d8 ld hl, $c4a1 ld a, $1 ld bc, $312 call Function4a6d8 ld bc, $112 ld a, $0 call Function4a6d8 ld bc, $112 ld a, $1 call Function4a6d8 ld bc, $112 ld a, $2 call Function4a6d8 ld bc, $b12 ld a, $7f call Function4a6d8 ld hl, $c4b3 ld bc, $301 ld a, $0 call Function4a6d8 ld bc, $101 ld a, $1 call Function4a6d8 ld bc, $101 xor a call Function4a6d8 ld bc, $101 ld a, $1 call Function4a6d8 ld bc, $401 ld a, $2 call Function4a6d8 ld bc, $101 ld a, $3 call Function4a6d8 ld bc, $101 ld a, $7f call Function4a6d8 ret ; 4a449 (12:6449) INCBIN "baserom.gbc",$4a449,$4a485 - $4a449 ; known jump sources: 4a0b2 (12:60b2), 4a3a7 (12:63a7) Function4a485: ; 4a485 (12:6485) ld de, GFX_49c0c ld hl, $9000 lb bc, BANK(GFX_49c0c), $d call Get2bpp ret ; known jump sources: 49f10 (12:5f10), 4a13e (12:613e), 4a4ca (12:64ca) Function4a492: ; 4a492 (12:6492) call Function4936e ret MainMenu_MobileStudium: ; 4a496 ld a, [StartDay] ld b, a ld a, [StartHour] ld c, a ld a, [StartMinute] ld d, a ld a, [StartSecond] ld e, a push bc push de callba MobileStudium call WhiteBGMap pop de pop bc ld a, b ld [StartDay], a ld a, c ld [StartHour], a ld a, d ld [StartMinute], a ld a, e ld [StartSecond], a ret ; 4a4c4 ; known jump sources: 4a0bf (12:60bf), 4a6c2 (12:66c2) Function4a4c4: ; 4a4c4 (12:64c4) call WhiteBGMap call Function4a3a7 call Function4a492 call Function4a680 call WhiteBGMap ld c, $14 call DelayFrames ld hl, $c4a2 ld b, $a ld c, $e call Function48cdc ld hl, $c4cc ld de, String_4a5c5 call PlaceString ld hl, $c4f4 ld de, String_4a5cd call PlaceString ld hl, $c51c ld de, String_4a5da call PlaceString ld hl, $c544 ld de, String_4a5e6 call PlaceString ld hl, $c56c ld de, String_4a5f2 call PlaceString ld hl, $c590 ld b, $4 ld c, $12 call TextBox xor a ld hl, Strings_4a5f6 ld d, h ld e, l ld hl, $c5b9 call PlaceString ld a, $1 ld hl, Strings_4a5f6 call GetNthString ld d, h ld e, l ld hl, $c5e1 call PlaceString call Function3200 call Function32f9 call Function1bc9 ld hl, $cfa9 ld b, [hl] push bc jr asm_4a54d ; known jump sources: 4a5c2 (12:65c2) Function4a545: ; 4a545 (12:6545) call Function1bd3 ld hl, $cfa9 ld b, [hl] push bc ; known jump sources: 4a543 (12:6543) asm_4a54d: ; 4a54d (12:654d) bit 0, a jr nz, .asm_4a557 bit 1, a jr nz, .asm_4a574 jr .asm_4a57e .asm_4a557 ld hl, $cfa9 ld a, [hl] cp $1 jp z, Function4a6ab cp $2 jp z, Function4a6ab cp $3 jp z, Function4a6ab cp $4 jp z, Function4a6ab ld a, $1 call Function1ff8 .asm_4a574 pop bc call WhiteBGMap call ClearTileMap jp Function49f0a .asm_4a57e ld hl, $cfa9 ld a, [hl] dec a add a push af ld hl, Strings_4a5f6 call GetNthString ld d, h ld e, l ld hl, $c5a5 ld b, $4 ld c, $12 call ClearBox ld hl, $c5b9 call PlaceString pop af inc a ld hl, Strings_4a5f6 call GetNthString ld d, h ld e, l ld hl, $c5e1 call PlaceString jp Function4a5b0 ; known jump sources: 4a5ad (12:65ad) Function4a5b0: ; 4a5b0 (12:65b0) call Function4a680 pop bc ld hl, $cfa9 ld [hl], b ld b, $a ld c, $1 ld hl, $c4b7 call ClearBox jp Function4a545 ; 4a5c5 (12:65c5) String_4a5c5: ; 4a5c5 db "じこしょうかい@" String_4a5cd: ; 4a5cd db "たいせん ", $4a, "はじまるとき@" String_4a5da: ; 4a5da db "たいせん ", $1d, "かったとき@" String_4a5e6: ; 4a5e6 db "たいせん ", $1d, "まけたとき@" String_4a5f2: ; 4a5f2 db "もどる@" ; 4a5f6 Strings_4a5f6: ; 4a5f6 db "めいし や ニュース ", $1d, "のせる@" db "あなた", $25, "あいさつです@" db "モバイル たいせん", $4a, "はじまるとき@" db "あいて", $1d, "みえる あいさつです@" db "モバイル たいせんで かったとき@" db "あいて", $1d, "みえる あいさつです@" db "モバイル たいせんで まけたとき@" db "あいて", $1d, "みえる あいさつです@" db "まえ", $25, "がめん ", $1d, "もどります@" db "@" ; 4a680 ; known jump sources: 4a4cd (12:64cd), 4a5b0 (12:65b0) Function4a680: ; 4a680 (12:6680) ld hl, $cfa1 ld a, $2 ld [hli], a ld a, $3 ld [hli], a ld a, $5 ld [hli], a ld a, $1 ld [hli], a ld [hl], $0 set 5, [hl] inc hl xor a ld [hli], a ld a, $20 ld [hli], a ld a, $1 add $40 add $80 add $2 ld [hli], a ld a, $1 ld [hli], a ld [hli], a xor a ld [hli], a ld [hli], a ld [hli], a ret ; known jump sources: 4a55d (12:655d), 4a562 (12:6562), 4a567 (12:6567), 4a56c (12:656c) Function4a6ab: ; 4a6ab (12:66ab) ld a, $2 call Function1ff8 call WhiteBGMap ld b, $8 call GetSGBLayout callba Function11c1ab pop bc call Functione5f jp Function4a4c4 ; known jump sources: 49f07 (12:5f07), 49f93 (12:5f93) Function4a6c5: ; 4a6c5 (12:66c5) ld a, $5 ld [MusicFade], a ; $c2a7 ld a, e ld [MusicFadeIDLo], a ; $c2a9 ld a, d ld [MusicFadeIDHi], a ; $c2aa ld c, $16 call DelayFrames ret ; known jump sources: 4a292 (12:6292), 4a3b1 (12:63b1), 4a3b9 (12:63b9), 4a3c0 (12:63c0), 4a3c8 (12:63c8), 4a3d0 (12:63d0), 4a3d8 (12:63d8), 4a3e0 (12:63e0), 4a3eb (12:63eb), 4a3f3 (12:63f3), 4a3fb (12:63fb), 4a403 (12:6403), 4a40b (12:640b), 4a416 (12:6416), 4a41e (12:641e), 4a425 (12:6425), 4a42d (12:642d), 4a435 (12:6435), 4a43d (12:643d), 4a445 (12:6445), 4a6e5 (12:66e5) Function4a6d8: ; 4a6d8 (12:66d8) push bc push hl .asm_4a6da ld [hli], a dec c jr nz, .asm_4a6da pop hl ld bc, $14 add hl, bc pop bc dec b jr nz, Function4a6d8 ret SpecialBeastsCheck: ; 0x4a6e8 ; Check if the player owns all three legendary beasts. ; They must exist in either party or PC, and have the player's OT and ID. ; Return the result in ScriptVar. ld a, RAIKOU ld [ScriptVar], a call CheckOwnMonAnywhere jr nc, .notexist ld a, ENTEI ld [ScriptVar], a call CheckOwnMonAnywhere jr nc, .notexist ld a, SUICUNE ld [ScriptVar], a call CheckOwnMonAnywhere jr nc, .notexist ; they exist ld a, 1 ld [ScriptVar], a ret .notexist xor a ld [ScriptVar], a ret SpecialMonCheck: ; 0x4a711 ; Check if the player owns any monsters of the species in ScriptVar. ; Return the result in ScriptVar. call CheckOwnMonAnywhere jr c, .exists ; doesn't exist xor a ld [ScriptVar], a ret .exists ld a, 1 ld [ScriptVar], a ret CheckOwnMonAnywhere: ; 0x4a721 ; Check if the player owns any monsters of the species in ScriptVar. ; It must exist in either party or PC, and have the player's OT and ID. ; If there are no monsters in the party, ; the player must not own any yet. ld a, [PartyCount] and a ret z ld d, a ld e, 0 ld hl, PartyMon1Species ld bc, PartyMon1OT ; Run CheckOwnMon on each Pokémon in the party. .partymon call CheckOwnMon ret c ; found! push bc ld bc, PartyMon2 - PartyMon1 add hl, bc pop bc call UpdateOTPointer dec d jr nz, .partymon ; Run CheckOwnMon on each Pokémon in the PC. ld a, 1 call GetSRAMBank ld a, [BoxCount] and a jr z, .boxes ld d, a ld hl, BoxMon1Species ld bc, BoxMon1OT .openboxmon call CheckOwnMon jr nc, .next ; found! call CloseSRAM ret .next push bc ld bc, BoxMon2 - BoxMon1 add hl, bc pop bc call UpdateOTPointer dec d jr nz, .openboxmon ; Run CheckOwnMon on each monster in the other 13 PC boxes. .boxes call CloseSRAM ld c, 0 .box ; Don't search the current box again. ld a, [wCurBox] and $f cp c jr z, .nextbox ; Load the box. ld hl, Unknown_4a810 ld b, 0 add hl, bc add hl, bc add hl, bc ld a, [hli] call GetSRAMBank ld a, [hli] ld h, [hl] ld l, a ; Number of monsters in the box ld a, [hl] and a jr z, .nextbox push bc push hl ld de, BoxMons - BoxCount add hl, de ld d, h ld e, l pop hl push de ld de, BoxMonOT - BoxCount add hl, de ld b, h ld c, l pop hl ld d, a .boxmon call CheckOwnMon jr nc, .nextboxmon ; found! pop bc call CloseSRAM ret .nextboxmon push bc ld bc, BoxMon2 - BoxMon1 add hl, bc pop bc call UpdateOTPointer dec d jr nz, .boxmon pop bc .nextbox inc c ld a, c cp NUM_BOXES jr c, .box ; not found call CloseSRAM and a ret CheckOwnMon: ; 0x4a7ba ; Check if a Pokémon belongs to the player and is of a specific species. ; inputs: ; hl, pointer to PartyMonNSpecies ; bc, pointer to PartyMonNOT ; ScriptVar should contain the species we're looking for ; outputs: ; sets carry if monster matches species, ID, and OT name. push bc push hl push de ld d, b ld e, c ; check species ld a, [ScriptVar] ; species we're looking for ld b, [hl] ; species we have cp b jr nz, .notfound ; species doesn't match ; check ID number ld bc, PartyMon1ID - PartyMon1Species add hl, bc ; now hl points to ID number ld a, [PlayerID] cp [hl] jr nz, .notfound ; ID doesn't match inc hl ld a, [PlayerID + 1] cp [hl] jr nz, .notfound ; ID doesn't match ; check OT ; This only checks five characters, which is fine for the Japanese version, ; but in the English version the player name is 7 characters, so this is wrong. ld hl, PlayerName rept 4 ld a, [de] cp [hl] jr nz, .notfound cp "@" jr z, .found ; reached end of string inc hl inc de endr ld a, [de] cp [hl] jr z, .found .notfound pop de pop hl pop bc and a ret .found pop de pop hl pop bc scf ret ; 0x4a810 Unknown_4a810: ; 4a810 ; bank, address dbw $02, $a000 dbw $02, $a450 dbw $02, $a8a0 dbw $02, $acf0 dbw $02, $b140 dbw $02, $b590 dbw $02, $b9e0 dbw $03, $a000 dbw $03, $a450 dbw $03, $a8a0 dbw $03, $acf0 dbw $03, $b140 dbw $03, $b590 dbw $03, $b9e0 ; 4a83a UpdateOTPointer: ; 0x4a83a push hl ld hl, PartyMon2OT - PartyMon1OT add hl, bc ld b, h ld c, l pop hl ret ; 0x4a843 Function4a843: ; 4a843 ; Like CheckOwnMonAnywhere, but only check for species. ; OT/ID don't matter. ld a, [PartyCount] and a ret z ld d, a ld e, 0 ld hl, PartyMon1Species ld bc, PartyMon1OT .asm_4a851 call Function4a8dc ret c push bc ld bc, PartyMon2 - PartyMon1 add hl, bc pop bc call Function4a91e dec d jr nz, .asm_4a851 ld a, 1 call GetSRAMBank ld a, [BoxCount] and a jr z, .asm_4a888 ld d, a ld hl, BoxMon1Species ld bc, BoxMon1OT .asm_4a873 call Function4a8dc jr nc, .asm_4a87c call CloseSRAM ret .asm_4a87c push bc ld bc, BoxMon2 - BoxMon1 add hl, bc pop bc call Function4a91e dec d jr nz, .asm_4a873 .asm_4a888 call CloseSRAM ld c, 0 .asm_4a88d ld a, [wCurBox] and $f cp c jr z, .asm_4a8d1 ld hl, Unknown_4a8f4 ld b, 0 add hl, bc add hl, bc add hl, bc ld a, [hli] call GetSRAMBank ld a, [hli] ld h, [hl] ld l, a ld a, [hl] and a jr z, .asm_4a8d1 push bc push hl ld de, BoxMons - BoxCount add hl, de ld d, h ld e, l pop hl push de ld de, BoxMonOT - BoxCount add hl, de ld b, h ld c, l pop hl ld d, a .asm_4a8ba call Function4a8dc jr nc, .asm_4a8c4 pop bc call CloseSRAM ret .asm_4a8c4 push bc ld bc, BoxMon2 - BoxMon1 add hl, bc pop bc call Function4a91e dec d jr nz, .asm_4a8ba pop bc .asm_4a8d1 inc c ld a, c cp NUM_BOXES jr c, .asm_4a88d call CloseSRAM and a ret ; 4a8dc Function4a8dc: ; 4a8dc push bc push hl push de ld d, b ld e, c ld a, [ScriptVar] ld b, [hl] cp b jr nz, .no_match jr .match .no_match pop de pop hl pop bc and a ret .match pop de pop hl pop bc scf ret ; 4a8f4 Unknown_4a8f4: ; 4a8f4 ; bank, address dbw $02, $a000 dbw $02, $a450 dbw $02, $a8a0 dbw $02, $acf0 dbw $02, $b140 dbw $02, $b590 dbw $02, $b9e0 dbw $03, $a000 dbw $03, $a450 dbw $03, $a8a0 dbw $03, $acf0 dbw $03, $b140 dbw $03, $b590 dbw $03, $b9e0 ; 4a91e Function4a91e: ; 4a91e push hl ld hl, PartyMon2OT - PartyMon1OT add hl, bc ld b, h ld c, l pop hl ret ; 4a927 Function4a927: ; 4a927 ld a, [ScriptVar] ld [CurItem], a ld hl, PCItems call CheckItem jr c, .asm_4a948 ld a, [ScriptVar] ld [CurItem], a ld hl, NumItems call CheckItem jr c, .asm_4a948 xor a ld [ScriptVar], a ret .asm_4a948 ld a, 1 ld [ScriptVar], a ret ; 4a94e Function4a94e: ; 4a94e call FadeToMenu ld a, $ff ld hl, DefaultFlypoint ld bc, $0003 call ByteFill xor a ld [$d018], a ld [$d019], a ld b, $14 call GetSGBLayout call Function32f9 call Function4aa22 jr c, .asm_4a985 jr z, .asm_4a9a1 jr .asm_4a97b .asm_4a974 call Function4aa25 jr c, .asm_4a985 jr z, .asm_4a9a1 .asm_4a97b call Function4ac58 ld hl, $d019 res 1, [hl] jr .asm_4a974 .asm_4a985 ld a, [$d018] and a jr nz, .asm_4a990 call Function4aba8 jr c, .asm_4a974 .asm_4a990 call Function2b3c ld hl, DefaultFlypoint ld a, $ff ld bc, $0003 call ByteFill scf jr .asm_4a9af .asm_4a9a1 call Function4a9c3 jr c, .asm_4a9b0 call Function4a9d7 jr c, .asm_4a974 call Function2b3c and a .asm_4a9af ret .asm_4a9b0 ld de, SFX_WRONG call PlaySFX ld hl, UnknownText_0x4a9be call PrintText jr .asm_4a974 ; 4a9be UnknownText_0x4a9be: ; 0x4a9be ; Pick three #MON for battle. text_jump UnknownText_0x1c51d7 db "@" ; 0x4a9c3 Function4a9c3: ; 4a9c3 ld hl, DefaultFlypoint ld a, $ff cp [hl] jr z, .asm_4a9d5 inc hl cp [hl] jr z, .asm_4a9d5 inc hl cp [hl] jr z, .asm_4a9d5 and a ret .asm_4a9d5 scf ret ; 4a9d7 Function4a9d7: ; 4a9d7 ld a, [DefaultFlypoint] ld hl, PartyMon1Nickname call GetNick ld h, d ld l, e ld de, EndFlypoint ld bc, $0006 call CopyBytes ld a, [$d003] ld hl, PartyMon1Nickname call GetNick ld h, d ld l, e ld de, $d00c ld bc, $0006 call CopyBytes ld a, [$d004] ld hl, PartyMon1Nickname call GetNick ld h, d ld l, e ld de, $d012 ld bc, $0006 call CopyBytes ld hl, UnknownText_0x4aa1d call PrintText call YesNoBox ret ; 4aa1d UnknownText_0x4aa1d: ; 0x4aa1d ; , @ and @ . Use these three? text_jump UnknownText_0x1c51f4 db "@" ; 0x4aa22 Function4aa22: ; 4aa22 call WhiteBGMap Function4aa25: ; 4aa25 callba Function5004f callba Function50405 call Function4aad3 Function4aa34: ; 4aa34 ld a, $9 ld [PartyMenuActionText], a callba WritePartyMenuTilemap xor a ld [PartyMenuActionText], a callba PrintPartyMenuText call Function4aab6 call WaitBGMap call Function32f9 call DelayFrame call Function4ab1a jr z, .asm_4aa66 push af call Function4aafb jr c, .asm_4aa67 call Function4ab06 jr c, .asm_4aa67 pop af .asm_4aa66 ret .asm_4aa67 ld hl, $d019 set 1, [hl] pop af ret ; 4aa6e Function4aa6e: ; 4aa6e pop af ld de, SFX_WRONG call PlaySFX call WaitSFX jr Function4aa34 ; 4aa7a Function4aa7a: ; 4aa7a ld hl, DefaultFlypoint ld d, $3 .asm_4aa7f ld e, $6 ld a, [hli] push de push hl cp $ff jr z, .asm_4aab3 ld hl, $c314 inc a ld d, a .asm_4aa8d ld a, [hl] and a jr z, .asm_4aaa5 cp d jr z, .asm_4aa9a jr .asm_4aaa5 ld a, $3 jr .asm_4aa9c .asm_4aa9a ld a, $2 .asm_4aa9c push hl ld c, l ld b, h ld hl, $0002 add hl, bc ld [hl], a pop hl .asm_4aaa5 ld bc, $0010 add hl, bc dec e jr nz, .asm_4aa8d pop hl pop de dec d jr nz, .asm_4aa7f jr .asm_4aab5 .asm_4aab3 pop hl pop de .asm_4aab5 ret ; 4aab6 Function4aab6: ; 4aab6 ld hl, DefaultFlypoint ld d, $3 .asm_4aabb ld a, [hli] cp $ff jr z, .asm_4aad2 push de push hl ld hl, $c4b4 ld bc, $0028 call AddNTimes ld [hl], $ec pop hl pop de dec d jr nz, .asm_4aabb .asm_4aad2 ret ; 4aad3 Function4aad3: ; 4aad3 ld hl, PartyCount ld a, [hli] and a ret z ld c, a xor a ld [hConnectedMapWidth], a .asm_4aadd push bc push hl ld e, 0 callba Function8e83f ld a, [hConnectedMapWidth] inc a ld [hConnectedMapWidth], a pop hl pop bc dec c jr nz, .asm_4aadd call Function4aa7a callba Function8cf69 ret ; 4aafb Function4aafb: ; 4aafb ld a, [CurPartySpecies] cp EGG jr z, .asm_4ab04 and a ret .asm_4ab04 scf ret ; 4ab06 Function4ab06: ; 4ab06 ld a, [CurPartyMon] ld bc, PartyMon2 - PartyMon1 ld hl, PartyMon1HP call AddNTimes ld a, [hli] ld b, a ld a, [hl] or b jr nz, .asm_4ab19 scf .asm_4ab19 ret ; 4ab1a Function4ab1a: ; 4ab1a .asm_4ab1a ld a, $fb ld [$cfa8], a ld a, $26 ld [$cfa7], a ld a, $2 ld [$cfa4], a call Function4adf7 call Function1bc9 call Function4abc3 jr c, .asm_4ab1a push af call Function4ab99 call nc, Function1bee pop af bit 1, a jr nz, .asm_4ab6d ld a, [PartyCount] inc a ld b, a ld a, [$cfa9] ld [$d0d8], a cp b jr z, .asm_4ab7e ld a, [$cfa9] dec a ld [CurPartyMon], a ld c, a ld b, $0 ld hl, PartySpecies add hl, bc ld a, [hl] ld [CurPartySpecies], a ld de, SFX_READ_TEXT_2 call PlaySFX call WaitSFX ld a, $1 and a ret .asm_4ab6d ld a, [$cfa9] ld [$d0d8], a .asm_4ab73 ld de, SFX_READ_TEXT_2 call PlaySFX call WaitSFX scf ret .asm_4ab7e ld a, $1 ld [$d018], a ld a, [$cfaa] cp $2 jr z, .asm_4ab73 ld de, SFX_READ_TEXT_2 call PlaySFX call WaitSFX xor a ld [$d018], a and a ret ; 4ab99 Function4ab99: ; 4ab99 bit 1, a jr z, .asm_4aba6 ld a, [DefaultFlypoint] cp $ff jr z, .asm_4aba6 scf ret .asm_4aba6 and a ret ; 4aba8 Function4aba8: ; 4aba8 ld hl, $d004 ld a, [hl] cp $ff jr nz, .asm_4abbe dec hl ld a, [hl] cp $ff jr nz, .asm_4abbe dec hl ld a, [hl] cp $ff jr nz, .asm_4abbe and a ret .asm_4abbe ld a, $ff ld [hl], a scf ret ; 4abc3 Function4abc3: ; 4abc3 bit 3, a jr z, .asm_4abd5 ld a, [PartyCount] inc a ld [$cfa9], a ld a, $1 ld [$cfaa], a jr .asm_4ac29 .asm_4abd5 bit 6, a jr z, .asm_4abeb ld a, [$cfa9] ld [$cfa9], a and a jr nz, .asm_4ac29 ld a, [PartyCount] inc a ld [$cfa9], a jr .asm_4ac29 .asm_4abeb bit 7, a jr z, .asm_4ac08 ld a, [$cfa9] ld [$cfa9], a ld a, [PartyCount] inc a inc a ld b, a ld a, [$cfa9] cp b jr nz, .asm_4ac29 ld a, $1 ld [$cfa9], a jr .asm_4ac29 .asm_4ac08 bit 4, a jr nz, .asm_4ac10 bit 5, a jr z, .asm_4ac56 .asm_4ac10 ld a, [$cfa9] ld b, a ld a, [PartyCount] inc a cp b jr nz, .asm_4ac29 ld a, [$cfaa] cp $1 jr z, .asm_4ac26 ld a, $1 jr .asm_4ac29 .asm_4ac26 ld [$cfaa], a .asm_4ac29 ld hl, $c4b4 ld bc, $0d01 call ClearBox call Function4aab6 ld a, [PartyCount] ld hl, $c4ba .asm_4ac3b ld bc, $0028 add hl, bc dec a jr nz, .asm_4ac3b ld [hl], $7f ld a, [$cfa9] ld b, a ld a, [PartyCount] inc a cp b jr z, .asm_4ac54 ld a, $1 ld [$cfaa], a .asm_4ac54 scf ret .asm_4ac56 and a ret ; 4ac58 Function4ac58: ; 4ac58 ld bc, $0212 ld hl, $c5cd call ClearBox callba Function8ea4a ld hl, Unknown_4aca2 call LoadMenuDataHeader ld hl, $d019 bit 1, [hl] jr z, .asm_4ac89 ld hl, $c5af ld b, $3 ld c, $7 call TextBox ld hl, $c5c5 ld de, String_4ada7 call PlaceString jr .asm_4ac96 .asm_4ac89 ld hl, $c55f ld b, $7 ld c, $7 call TextBox call Function4ad68 .asm_4ac96 ld a, $1 ld [hBGMapMode], a call Function4acaa call Function1c07 and a ret ; 4aca2 Unknown_4aca2: ; 4aca2 INCBIN "baserom.gbc",$4aca2,$4acaa - $4aca2 Function4acaa: ; 4acaa .asm_4acaa ld a, $a0 ld [$cf91], a ld a, [$d019] bit 1, a jr z, .asm_4acc2 ld a, $2 ld [$cf92], a ld a, $c ld [$cf82], a jr .asm_4accc .asm_4acc2 ld a, $4 ld [$cf92], a ld a, $8 ld [$cf82], a .asm_4accc ld a, $b ld [$cf83], a ld a, $1 ld [$cf88], a call Function1c10 ld hl, $cfa5 set 6, [hl] call Function1bc9 ld de, SFX_READ_TEXT_2 call PlaySFX ld a, [hJoyPressed] bit 0, a jr nz, .asm_4acf4 bit 1, a jr nz, .asm_4acf3 jr .asm_4acaa .asm_4acf3 ret .asm_4acf4 ld a, [$d019] bit 1, a jr nz, .asm_4ad0e ld a, [$cfa9] cp $1 jr z, Function4ad17 cp $2 jp z, Function4ad56 cp $3 jp z, Function4ad60 jr .asm_4acf3 .asm_4ad0e ld a, [$cfa9] cp $1 jr z, Function4ad56 jr .asm_4acf3 Function4ad17: ; 4ad17 call Function4adb2 jr z, .asm_4ad4a ld hl, DefaultFlypoint ld a, $ff cp [hl] jr z, .asm_4ad39 inc hl cp [hl] jr z, .asm_4ad39 inc hl cp [hl] jr z, .asm_4ad39 ld de, SFX_WRONG call WaitPlaySFX ld hl, UnknownText_0x4ad51 call PrintText ret .asm_4ad39 ld a, [CurPartyMon] ld [hl], a call Function4a9c3 ret c ld a, [$d019] set 0, a ld [$d019], a ret .asm_4ad4a ld a, $ff ld [hl], a call Function4adc2 ret UnknownText_0x4ad51: ; 0x4ad51 ; Only three #MON may enter. text_jump UnknownText_0x1c521c db "@" ; 0x4ad56 Function4ad56: ; 4ad56 callba OpenPartyStats call Function3200 ret ; 4ad60 Function4ad60: ; 4ad60 callba Function12fba ret ; 4ad67 Function4ad67: ; 4ad67 ret ; 4ad68 Function4ad68: ; 4ad68 ld hl, $c59d ld de, String_4ad88 call PlaceString call Function4adb2 jr c, .asm_4ad7e ld hl, $c575 ld de, String_4ada0 jr .asm_4ad84 .asm_4ad7e ld hl, $c575 ld de, String_4ad9a .asm_4ad84 call PlaceString ret ; 4ad88 String_4ad88: ; 4ad88 db "つよさをみる" next "つかえるわざ" next "もどる@" ; 4ad9a String_4ad9a: ; 4ad9a db "さんかする@" ; 4ada0 String_4ada0: ; 4ada0 db "さんかしない@" ; 4ada7 String_4ada7: ; 4ada7 db "つよさをみる" next "もどる@" ; BACK ; 4adb2 Function4adb2: ; 4adb2 ld hl, DefaultFlypoint ld a, [CurPartyMon] cp [hl] ret z inc hl cp [hl] ret z inc hl cp [hl] ret z scf ret ; 4adc2 Function4adc2: ; 4adc2 ld a, [DefaultFlypoint] cp $ff jr nz, .asm_4ade5 ld a, [$d003] cp $ff jr nz, .asm_4addd ld a, [$d004] ld [DefaultFlypoint], a ld a, $ff ld [$d004], a jr .asm_4ade5 .asm_4addd ld [DefaultFlypoint], a ld a, $ff ld [$d003], a .asm_4ade5 ld a, [$d003] cp $ff ret nz ld b, a ld a, [$d004] ld [$d003], a ld a, b ld [$d004], a ret ; 4adf7 Function4adf7: ; 4adf7 ld a, [$d019] bit 0, a ret z ld a, [PartyCount] inc a ld [$cfa9], a ld a, $1 ld [$cfaa], a ld a, [$d019] res 0, a ld [$d019], a ret ; 4ae12 Function4ae12: ; 4ae12 call Function4ae1f ld a, $0 jr c, .asm_4ae1b ld a, $1 .asm_4ae1b ld [ScriptVar], a ret ; 4ae1f Function4ae1f: ; 4ae1f ld bc, $0e07 push bc ld hl, YesNoMenuDataHeader call Function1d3c pop bc ld a, b ld [$cf83], a add $5 ld [$cf85], a ld a, c ld [$cf82], a add $4 ld [$cf84], a call Function1c00 call Function1d81 push af ld c, $f call DelayFrames call Function4ae5e pop af jr c, .asm_4ae57 ld a, [$cfa9] cp $2 jr z, .asm_4ae57 and a ret .asm_4ae57 ld a, $2 ld [$cfa9], a scf ret ; 4ae5e Function4ae5e: ; 4ae5e ld a, [hOAMUpdate] push af call Function1c07 call Function1ad2 xor a ld [hOAMUpdate], a call DelayFrame ld a, $1 ld [hOAMUpdate], a call Function321c pop af ld [hOAMUpdate], a ret ; 4ae78 SECTION "bank13", ROMX, BANK[$13] Function4c000:: ; 4c000 ld hl, TileMap ld de, AttrMap ld b, $12 .asm_4c008 push bc ld c, $14 .asm_4c00b ld a, [hl] push hl srl a jr c, .asm_4c021 ld hl, TilesetPalettes add [hl] ld l, a ld a, [$d1e7] adc $0 ld h, a ld a, [hl] and $f jr .asm_4c031 .asm_4c021 ld hl, TilesetPalettes add [hl] ld l, a ld a, [$d1e7] adc $0 ld h, a ld a, [hl] swap a and $f .asm_4c031 pop hl ld [de], a res 7, [hl] inc hl inc de dec c jr nz, .asm_4c00b pop bc dec b jr nz, .asm_4c008 ret ; 4c03f Function4c03f:: ; 4c03f ld hl, BGMapBuffer ld de, BGMapPalBuffer .asm_4c045 ld a, [hl] push hl srl a jr c, .asm_4c05b ld hl, TilesetPalettes add [hl] ld l, a ld a, [$d1e7] adc $0 ld h, a ld a, [hl] and $f jr .asm_4c06b .asm_4c05b ld hl, TilesetPalettes add [hl] ld l, a ld a, [$d1e7] adc $0 ld h, a ld a, [hl] swap a and $f .asm_4c06b pop hl ld [de], a res 7, [hl] inc hl inc de dec c jr nz, .asm_4c045 ret ; 4c075 INCLUDE "tilesets/palette_maps.asm" TileCollisionTable:: ; 4ce1f ; 00 land ; 01 water ; 0f wall ; 11 talkable water ; 1f talkable wall db $00, $00, $00, $00, $00, $00, $00, $0f db $00, $00, $00, $00, $00, $00, $00, $0f db $00, $00, $1f, $00, $00, $1f, $00, $00 db $00, $00, $1f, $00, $00, $1f, $00, $00 db $01, $01, $11, $00, $11, $01, $01, $0f db $01, $01, $11, $00, $11, $01, $01, $0f db $01, $01, $01, $01, $01, $01, $01, $01 db $01, $01, $01, $01, $01, $01, $01, $01 db $00, $00, $00, $00, $00, $00, $00, $00 db $00, $00, $00, $00, $00, $00, $00, $00 db $00, $00, $00, $00, $00, $00, $00, $00 db $00, $00, $00, $00, $00, $00, $00, $00 db $00, $00, $0f, $00, $00, $00, $00, $00 db $00, $00, $0f, $00, $00, $00, $00, $00 db $00, $00, $00, $00, $00, $00, $00, $00 db $00, $00, $00, $00, $00, $00, $00, $00 db $0f, $0f, $0f, $0f, $0f, $00, $00, $00 db $0f, $0f, $0f, $0f, $0f, $00, $00, $00 db $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f db $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f db $00, $00, $00, $00, $00, $00, $00, $00 db $00, $00, $00, $00, $00, $00, $00, $00 db $00, $00, $00, $00, $00, $00, $00, $00 db $00, $00, $00, $00, $00, $00, $00, $00 db $01, $01, $01, $01, $01, $01, $01, $01 db $01, $01, $01, $01, $01, $01, $01, $01 db $00, $00, $00, $00, $00, $00, $00, $00 db $00, $00, $00, $00, $00, $00, $00, $00 db $00, $00, $00, $00, $00, $00, $00, $00 db $00, $00, $00, $00, $00, $00, $00, $00 db $00, $00, $00, $00, $00, $00, $00, $00 db $00, $00, $00, $00, $00, $00, $00, $0f ; 4cf1f Function4cf1f: ; 4cf1f ld a, $0 call Function4cf34 ld a, $1 call Function4cf34 ld a, $2 call Function4cf34 ld a, $3 call Function4cf34 ret ; 4cf34 Function4cf34: ; 4cf34 call GetSRAMBank ld hl, $a000 ld bc, $2000 xor a call ByteFill call CloseSRAM ret ; 4cf45 ; no known jump sources Function4cf45: ; 4cf45 (13:4f45) ld a, [hCGB] ; $ff00+$e6 and a jp z, WaitBGMap ld a, [hBGMapMode] ; $ff00+$d4 push af xor a ld [hBGMapMode], a ; $ff00+$d4 ld a, [$FF00+$de] push af xor a ld [$FF00+$de], a .asm_4cf57 ld a, [rLY] ; $ff00+$44 cp $60 jr c, .asm_4cf57 di ld a, $1 ld [rVBK], a ; $ff00+$4f ld hl, AttrMap ; $cdd9 call Function4cf80 ld a, $0 ld [rVBK], a ; $ff00+$4f ld hl, TileMap ; $c4a0 (aliases: SpritesEnd) call Function4cf80 .asm_4cf72 ld a, [rLY] ; $ff00+$44 cp $60 jr c, .asm_4cf72 ei pop af ld [$FF00+$de], a pop af ld [hBGMapMode], a ; $ff00+$d4 ret ; known jump sources: 4cf65 (13:4f65), 4cf6f (13:4f6f) Function4cf80: ; 4cf80 (13:4f80) ld [hSPBuffer], sp ; $ffd9 ld sp, hl ld a, [$FF00+$d7] ld h, a ld l, $0 ld a, $12 ld [$FF00+$d3], a ld b, $2 ld c, $41 .asm_4cf91 pop de .asm_4cf92 ld a, [$ff00+c] and b jr nz, .asm_4cf92 ld [hl], e inc l ld [hl], d inc l pop de .asm_4cf9b ld a, [$ff00+c] and b jr nz, .asm_4cf9b ld [hl], e inc l ld [hl], d inc l pop de .asm_4cfa4 ld a, [$ff00+c] and b jr nz, .asm_4cfa4 ld [hl], e inc l ld [hl], d inc l pop de .asm_4cfad ld a, [$ff00+c] and b jr nz, .asm_4cfad ld [hl], e inc l ld [hl], d inc l pop de .asm_4cfb6 ld a, [$ff00+c] and b jr nz, .asm_4cfb6 ld [hl], e inc l ld [hl], d inc l pop de .asm_4cfbf ld a, [$ff00+c] and b jr nz, .asm_4cfbf ld [hl], e inc l ld [hl], d inc l pop de .asm_4cfc8 ld a, [$ff00+c] and b jr nz, .asm_4cfc8 ld [hl], e inc l ld [hl], d inc l pop de .asm_4cfd1 ld a, [$ff00+c] and b jr nz, .asm_4cfd1 ld [hl], e inc l ld [hl], d inc l pop de .asm_4cfda ld a, [$ff00+c] and b jr nz, .asm_4cfda ld [hl], e inc l ld [hl], d inc l pop de .asm_4cfe3 ld a, [$ff00+c] and b jr nz, .asm_4cfe3 ld [hl], e inc l ld [hl], d inc l ld de, $c add hl, de ld a, [$FF00+$d3] dec a ld [$FF00+$d3], a jr nz, .asm_4cf91 ld a, [hSPBuffer] ; $ff00+$d9 ld l, a ld a, [$FF00+$da] ld h, a ld sp, hl ret Function4cffe:: ; 4cffe ld a, $1 call GetSRAMBank ld a, [$a008] ld b, a ld a, [$ad0f] ld c, a call CloseSRAM ld a, b cp $63 jr nz, .asm_4d01b ld a, c cp $7f jr nz, .asm_4d01b ld c, $1 ret .asm_4d01b ld c, $0 ret ; 4d01e MapTriggers:: ; 4d01e ; Map triggers trigger_def: MACRO ; db group, map ; dw address map \1 dw \2 ENDM trigger_def POKECENTER_2F, wPokecenter2FTrigger trigger_def TRADE_CENTER, wTradeCenterTrigger trigger_def COLOSSEUM, wColosseumTrigger trigger_def TIME_CAPSULE, wTimeCapsuleTrigger trigger_def POWER_PLANT, wPowerPlantTrigger trigger_def CERULEAN_GYM, wCeruleanGymTrigger trigger_def ROUTE_25, wRoute25Trigger trigger_def TRAINER_HOUSE_B1F, wTrainerHouseB1FTrigger trigger_def VICTORY_ROAD_GATE, wVictoryRoadGateTrigger trigger_def SAFFRON_TRAIN_STATION, wSaffronTrainStationTrigger trigger_def ROUTE_16_GATE, wRoute16GateTrigger trigger_def ROUTE_17_18_GATE, wRoute1718GateTrigger trigger_def INDIGO_PLATEAU_POKECENTER_1F, wIndigoPlateauPokecenter1FTrigger trigger_def WILLS_ROOM, wWillsRoomTrigger trigger_def KOGAS_ROOM, wKogasRoomTrigger trigger_def BRUNOS_ROOM, wBrunosRoomTrigger trigger_def KARENS_ROOM, wKarensRoomTrigger trigger_def LANCES_ROOM, wLancesRoomTrigger trigger_def HALL_OF_FAME, wHallOfFameTrigger trigger_def ROUTE_27, wRoute27Trigger trigger_def NEW_BARK_TOWN, wNewBarkTownTrigger trigger_def ELMS_LAB, wElmsLabTrigger trigger_def KRISS_HOUSE_1F, wKrissHouse1FTrigger trigger_def ROUTE_29, wRoute29Trigger trigger_def CHERRYGROVE_CITY, wCherrygroveCityTrigger trigger_def MR_POKEMONS_HOUSE, wMrPokemonsHouseTrigger trigger_def ROUTE_32, wRoute32Trigger trigger_def ROUTE_35_NATIONAL_PARK_GATE, wRoute35NationalParkGateTrigger trigger_def ROUTE_36, wRoute36Trigger trigger_def ROUTE_36_NATIONAL_PARK_GATE, wRoute36NationalParkGateTrigger trigger_def AZALEA_TOWN, wAzaleaTownTrigger trigger_def GOLDENROD_GYM, wGoldenrodGymTrigger trigger_def GOLDENROD_MAGNET_TRAIN_STATION, wGoldenrodMagnetTrainStationTrigger trigger_def GOLDENROD_POKECENTER_1F, wGoldenrodPokecenter1FTrigger trigger_def OLIVINE_CITY, wOlivineCityTrigger trigger_def ROUTE_34, wRoute34Trigger trigger_def ROUTE_34_ILEX_FOREST_GATE, wRoute34IlexForestGateTrigger trigger_def ECRUTEAK_HOUSE, wEcruteakHouseTrigger trigger_def WISE_TRIOS_ROOM, wWiseTriosRoomTrigger trigger_def ECRUTEAK_POKECENTER_1F, wEcruteakPokecenter1FTrigger trigger_def ECRUTEAK_GYM, wEcruteakGymTrigger trigger_def MAHOGANY_TOWN, wMahoganyTownTrigger trigger_def ROUTE_42, wRoute42Trigger trigger_def CIANWOOD_CITY, wCianwoodCityTrigger trigger_def BATTLE_TOWER_1F, wBattleTower1FTrigger trigger_def BATTLE_TOWER_BATTLE_ROOM, wBattleTowerBattleRoomTrigger trigger_def BATTLE_TOWER_ELEVATOR, wBattleTowerElevatorTrigger trigger_def BATTLE_TOWER_HALLWAY, wBattleTowerHallwayTrigger trigger_def BATTLE_TOWER_OUTSIDE, wBattleTowerOutsideTrigger trigger_def ROUTE_43_GATE, wRoute43GateTrigger trigger_def MOUNT_MOON, wMountMoonTrigger trigger_def SPROUT_TOWER_3F, wSproutTower3FTrigger trigger_def TIN_TOWER_1F, wTinTower1FTrigger trigger_def BURNED_TOWER_1F, wBurnedTower1FTrigger trigger_def BURNED_TOWER_B1F, wBurnedTowerB1FTrigger trigger_def RADIO_TOWER_5F, wRadioTower5FTrigger trigger_def RUINS_OF_ALPH_OUTSIDE, wRuinsOfAlphOutsideTrigger trigger_def RUINS_OF_ALPH_RESEARCH_CENTER, wRuinsOfAlphResearchCenterTrigger trigger_def RUINS_OF_ALPH_HO_OH_CHAMBER, wRuinsOfAlphHoOhChamberTrigger trigger_def RUINS_OF_ALPH_KABUTO_CHAMBER, wRuinsOfAlphKabutoChamberTrigger trigger_def RUINS_OF_ALPH_OMANYTE_CHAMBER, wRuinsOfAlphOmanyteChamberTrigger trigger_def RUINS_OF_ALPH_AERODACTYL_CHAMBER, wRuinsOfAlphAerodactylChamberTrigger trigger_def RUINS_OF_ALPH_INNER_CHAMBER, wRuinsOfAlphInnerChamberTrigger trigger_def MAHOGANY_MART_1F, wMahoganyMart1FTrigger trigger_def TEAM_ROCKET_BASE_B1F, wTeamRocketBaseB1FTrigger trigger_def TEAM_ROCKET_BASE_B2F, wTeamRocketBaseB2FTrigger trigger_def TEAM_ROCKET_BASE_B3F, wTeamRocketBaseB3FTrigger trigger_def UNDERGROUND_PATH_SWITCH_ROOM_ENTRANCES, wUndergroundPathSwitchRoomEntrancesTrigger trigger_def SILVER_CAVE_ROOM_3, wSilverCaveRoom3Trigger trigger_def VICTORY_ROAD, wVictoryRoadTrigger trigger_def DRAGONS_DEN_B1F, wDragonsDenB1FTrigger trigger_def DRAGON_SHRINE, wDragonShrineTrigger trigger_def OLIVINE_PORT, wOlivinePortTrigger trigger_def VERMILION_PORT, wVermilionPortTrigger trigger_def FAST_SHIP_1F, wFastShip1FTrigger trigger_def FAST_SHIP_B1F, wFastShipB1FTrigger trigger_def MOUNT_MOON_SQUARE, wMountMoonSquareTrigger trigger_def MOBILE_TRADE_ROOM_MOBILE, wMobileTradeRoomMobileTrigger trigger_def MOBILE_BATTLE_ROOM, wMobileBattleRoomTrigger db $ff ; 4d15b Function4d15b:: ; 4d15b ld hl, EnemyMoveAnimation ld a, [$d196] and a jr z, .asm_4d168 ld bc, $0030 add hl, bc .asm_4d168 ld a, [$d197] and a jr z, .asm_4d170 inc hl inc hl .asm_4d170 ld de, TileMap ld b, $12 .asm_4d175 ld c, $14 .asm_4d177 ld a, [hli] ld [de], a inc de dec c jr nz, .asm_4d177 ld a, l add $4 ld l, a jr nc, .asm_4d184 inc h .asm_4d184 dec b jr nz, .asm_4d175 ret ; 4d188 Function4d188: ; 4d188 ld a, [hCGB] and a jp z, WaitBGMap ld a, [$c2ce] cp $0 jp z, WaitBGMap ld a, [hBGMapMode] push af xor a ld [hBGMapMode], a ld a, [$ffde] push af xor a ld [$ffde], a .asm_4d1a2 ld a, [rLY] cp $8f jr c, .asm_4d1a2 di ld a, $1 ld [rVBK], a ld hl, AttrMap call Function4d1cb ld a, $0 ld [rVBK], a ld hl, TileMap call Function4d1cb .asm_4d1bd ld a, [rLY] cp $8f jr c, .asm_4d1bd ei pop af ld [$ffde], a pop af ld [hBGMapMode], a ret ; 4d1cb Function4d1cb: ; 4d1cb ld [hSPBuffer], sp ld sp, hl ld a, [$ffd7] ld h, a ld l, $0 ld a, $12 ld [$ffd3], a ld b, $2 ld c, $41 .asm_4d1dc pop de .asm_4d1dd ld a, [$ff00+c] and b jr nz, .asm_4d1dd ld [hl], e inc l ld [hl], d inc l pop de .asm_4d1e6 ld a, [$ff00+c] and b jr nz, .asm_4d1e6 ld [hl], e inc l ld [hl], d inc l pop de .asm_4d1ef ld a, [$ff00+c] and b jr nz, .asm_4d1ef ld [hl], e inc l ld [hl], d inc l pop de .asm_4d1f8 ld a, [$ff00+c] and b jr nz, .asm_4d1f8 ld [hl], e inc l ld [hl], d inc l pop de .asm_4d201 ld a, [$ff00+c] and b jr nz, .asm_4d201 ld [hl], e inc l ld [hl], d inc l pop de .asm_4d20a ld a, [$ff00+c] and b jr nz, .asm_4d20a ld [hl], e inc l ld [hl], d inc l pop de .asm_4d213 ld a, [$ff00+c] and b jr nz, .asm_4d213 ld [hl], e inc l ld [hl], d inc l pop de .asm_4d21c ld a, [$ff00+c] and b jr nz, .asm_4d21c ld [hl], e inc l ld [hl], d inc l pop de .asm_4d225 ld a, [$ff00+c] and b jr nz, .asm_4d225 ld [hl], e inc l ld [hl], d inc l pop de .asm_4d22e ld a, [$ff00+c] and b jr nz, .asm_4d22e ld [hl], e inc l ld [hl], d inc l ld de, $000c add hl, de ld a, [$ffd3] dec a ld [$ffd3], a jr nz, .asm_4d1dc ld a, [hSPBuffer] ld l, a ld a, [$ffda] ld h, a ld sp, hl ret ; 4d249 INCBIN "baserom.gbc",$4d249,$4d319 - $4d249 Function4d319: ; 4d319 ld a, [$cfa9] dec a ld [CurPartyMon], a call LowVolume ld a, $25 call Predef ld a, [CurPartyMon] inc a ld [$cfa9], a call Functionfdb call WhiteBGMap call MaxVolume callba Function28ef8 callba Function4d354 callba Function16d673 callba Function28eff call Function3200 ret ; 4d354 Function4d354: ; 4d354 call WaitBGMap call Function3200 ret ; 4d35b Function4d35b: ; 4d35b ld h, d ld l, e push bc push hl call Function4d37e pop hl pop bc ld de, $0939 add hl, de inc b inc b inc c inc c ld a, $7 .asm_4d36e push bc push hl .asm_4d370 ld [hli], a dec c jr nz, .asm_4d370 pop hl ld de, $0014 add hl, de pop bc dec b jr nz, .asm_4d36e ret ; 4d37e Function4d37e: ; 4d37e push hl ld a, $76 ld [hli], a inc a call Function4d3ab inc a ld [hl], a pop hl ld de, $0014 add hl, de .asm_4d38d push hl ld a, $79 ld [hli], a ld a, $7f call Function4d3ab ld [hl], $7a pop hl ld de, $0014 add hl, de dec b jr nz, .asm_4d38d ld a, $7b ld [hli], a ld a, $7c call Function4d3ab ld [hl], $7d ret ; 4d3ab Function4d3ab: ; 4d3ab ld d, c .asm_4d3ac ld [hli], a dec d jr nz, .asm_4d3ac ret ; 4d3b1 Function4d3b1: ; 4d3b1 callba Function8000 ld b, $8 call GetSGBLayout call Functione51 call Functione5f ld de, MUSIC_MAIN_MENU call PlayMusic ld hl, UnknownText_0x4d408 call PrintText ld hl, MenuDataHeader_0x4d40d call Function1d3c call Function1d81 ret c ld a, [$cfa9] cp $1 ret z call Function4d41e jr c, .asm_4d3f7 ld a, $0 call GetSRAMBank ld a, $80 ld [$ac60], a call CloseSRAM ld hl, UnknownText_0x4d3fe call PrintText ret .asm_4d3f7 ld hl, UnknownText_0x4d403 call PrintText ret ; 4d3fe UnknownText_0x4d3fe: ; 0x4d3fe ; Password OK. Select CONTINUE & reset settings. text_jump UnknownText_0x1c55db db "@" ; 0x4d403 UnknownText_0x4d403: ; 0x4d403 ; Wrong password! text_jump UnknownText_0x1c560b db "@" ; 0x4d408 UnknownText_0x4d408: ; 0x4d408 ; Reset the clock? text_jump UnknownText_0x1c561c db "@" ; 0x4d40d MenuDataHeader_0x4d40d: ; 0x4d40d db $00 ; flags db 07, 14 ; start coords db 11, 19 ; end coords dw MenuData2_0x4d415 db 1 ; default option ; 0x4d415 MenuData2_0x4d415: ; 0x4d415 db $c0 ; flags db 2 ; items db "NO@" db "YES@" ; 0x4d41e Function4d41e: ; 4d41e call Function4d50f push de ld hl, StringBuffer2 ld bc, $0005 xor a call ByteFill ld a, $4 ld [$d08b], a ld hl, UnknownText_0x4d463 call PrintText .asm_4d437 call Function4d468 .asm_4d43a call Functiona57 ld a, [$ffa9] ld b, a and $1 jr nz, .asm_4d453 ld a, b and $f0 jr z, .asm_4d43a call Function4d490 ld c, $3 call DelayFrames jr .asm_4d437 .asm_4d453 call Function4d4e0 pop de ld a, e cp l jr nz, .asm_4d461 ld a, d cp h jr nz, .asm_4d461 and a ret .asm_4d461 scf ret ; 4d463 UnknownText_0x4d463: ; 0x4d463 ; Please enter the password. text_jump UnknownText_0x1c562e db "@" ; 0x4d468 Function4d468: ; 4d468 ld hl, $c5da ld de, StringBuffer2 ld c, $5 .asm_4d470 ld a, [de] add $f6 ld [hli], a inc de dec c jr nz, .asm_4d470 ld hl, $c5ee ld bc, $0005 ld a, $7f call ByteFill ld hl, $c5ee ld a, [$d08b] ld e, a ld d, $0 add hl, de ld [hl], $61 ret ; 4d490 Function4d490: ; 4d490 ld a, b and $20 jr nz, .asm_4d4a5 ld a, b and $10 jr nz, .asm_4d4af ld a, b and $40 jr nz, .asm_4d4ba ld a, b and $80 jr nz, .asm_4d4c8 ret .asm_4d4a5 ld a, [$d08b] and a ret z dec a ld [$d08b], a ret .asm_4d4af ld a, [$d08b] cp $4 ret z inc a ld [$d08b], a ret .asm_4d4ba call Function4d4d5 ld a, [hl] cp $9 jr z, .asm_4d4c5 inc a ld [hl], a ret .asm_4d4c5 ld [hl], $0 ret .asm_4d4c8 call Function4d4d5 ld a, [hl] and a jr z, .asm_4d4d2 dec a ld [hl], a ret .asm_4d4d2 ld [hl], $9 ret ; 4d4d5 Function4d4d5: ; 4d4d5 ld a, [$d08b] ld e, a ld d, $0 ld hl, StringBuffer2 add hl, de ret ; 4d4e0 Function4d4e0: ; 4d4e0 ld hl, 0 ld de, $d08a ld bc, 1 call Function4d501 ld bc, 10 call Function4d501 ld bc, 100 call Function4d501 ld bc, 1000 call Function4d501 ld bc, 10000 Function4d501: ; 4d501 ld a, [de] dec de push hl ld hl, 0 call AddNTimes ld c, l ld b, h pop hl add hl, bc ret ; 4d50f Function4d50f: ; 4d50f ld a, $1 call GetSRAMBank ld de, $0000 ld hl, $a009 ld c, $2 call Function4d533 ld hl, $a00b ld c, $5 call Function4d53e ld hl, $a3dc ld c, $3 call Function4d533 call CloseSRAM ret ; 4d533 Function4d533: ; 4d533 .asm_4d533 ld a, [hli] add e ld e, a ld a, $0 adc d ld d, a dec c jr nz, .asm_4d533 ret ; 4d53e Function4d53e: ; 4d53e .asm_4d53e ld a, [hli] cp "@" ret z add e ld e, a ld a, $0 adc d ld d, a dec c jr nz, .asm_4d53e ret ; 4d54c Function4d54c: ; 4d54c callba Function8000 ld b, $8 call GetSGBLayout call Functione51 call Functione5f ld de, MUSIC_MAIN_MENU call PlayMusic ld hl, UnknownText_0x4d580 call PrintText ld hl, MenuDataHeader_0x4d585 call Function1d3c call Function1d81 ret c ld a, [$cfa9] cp $1 ret z callba Function4cf1f ret ; 4d580 UnknownText_0x4d580: ; 0x4d580 ; Clear all save data? text_jump UnknownText_0x1c564a db "@" ; 0x4d585 MenuDataHeader_0x4d585: ; 0x4d585 db $00 ; flags db 07, 14 ; start coords db 11, 19 ; end coords dw MenuData2_0x4d58d db 1 ; default option ; 0x4d58d MenuData2_0x4d58d: ; 0x4d58d db $c0 ; flags db 2 ; items db "NO@" db "YES@" ; 0x4d596 Tilesets:: INCLUDE "tilesets/tileset_headers.asm" FlagPredef: ; 4d7c1 ; Perform action b on flag c in flag array hl. ; If checking a flag, check flag array d:hl unless d is 0. ; For longer flag arrays, see FlagAction. push hl push bc ; Divide by 8 to get the byte we want. push bc srl c srl c srl c ld b, 0 add hl, bc pop bc ; Which bit we want from the byte ld a, c and 7 ld c, a ; Shift left until we can mask the bit ld a, 1 jr z, .shifted .shift add a dec c jr nz, .shift .shifted ld c, a ; What are we doing to this flag? dec b jr z, .set ; 1 dec b jr z, .check ; 2 .reset ld a, c cpl and [hl] ld [hl], a jr .done .set ld a, [hl] or c ld [hl], a jr .done .check ld a, d cp 0 jr nz, .farcheck ld a, [hl] and c jr .done .farcheck call GetFarByte and c .done pop bc pop hl ld c, a ret ; 4d7fd Function4d7fd: ; 4d7fd ld a, [PlayerLightScreenCount] ld hl, $c72f ld de, VTiles2 push de push af ld a, $2d call Predef pop af ld [CurPartySpecies], a ld [CurSpecies], a call GetBaseData pop de ld a, $3e call Predef ret ; 4d81e Function4d81e: ; 4d81e ld a, [PlayerLightScreenCount] call IsAPokemon ret c callba Function29549 ld a, [PlayerLightScreenCount] ld [CurPartySpecies], a ld a, [$c72f] ld [TempMonDVs], a ld a, [$c730] ld [$d124], a ld b, $1a call GetSGBLayout ld a, $e4 call DmgToCgbBGPals callba Function294c0 ld a, [PlayerLightScreenCount] ld [CurPartySpecies], a ld hl, $c4cf ld d, $0 ld e, $3 ld a, $47 call Predef ret ; 4d860 CheckPokerus: ; 4d860 ; Return carry if a monster in your party has Pokerus ; Get number of monsters to iterate over ld a, [PartyCount] and a jr z, .NoPokerus ld b, a ; Check each monster in the party for Pokerus ld hl, PartyMon1PokerusStatus ld de, PartyMon2 - PartyMon1 .Check ld a, [hl] and $0f ; only the bottom nybble is used jr nz, .HasPokerus ; Next PartyMon add hl, de dec b jr nz, .Check .NoPokerus and a ret .HasPokerus scf ret ; 4d87a Function4d87a: ; 4d87a xor a ld [ScriptVar], a ld [$d265], a ld a, [PartyCount] and a ret z ld d, a ld hl, PartyMon1ID ld bc, PartySpecies .asm_4d88d ld a, [bc] inc bc cp EGG call nz, Function4d939 push bc ld bc, PartyMon2 - PartyMon1 add hl, bc pop bc dec d jr nz, .asm_4d88d ld a, $1 call GetSRAMBank ld a, [BoxCount] and a jr z, .asm_4d8c8 ld d, a ld hl, BoxMon1ID ld bc, BoxSpecies .asm_4d8af ld a, [bc] inc bc cp EGG jr z, .asm_4d8bf call Function4d939 jr nc, .asm_4d8bf ld a, $1 ld [$d265], a .asm_4d8bf push bc ld bc, BoxMon2 - BoxMon1 add hl, bc pop bc dec d jr nz, .asm_4d8af .asm_4d8c8 call CloseSRAM ld c, $0 .asm_4d8cd ld a, [wCurBox] and $f cp c jr z, .asm_4d90b ld hl, Unknown_4d99f ld b, 0 add hl, bc add hl, bc add hl, bc ld a, [hli] call GetSRAMBank ld a, [hli] ld h, [hl] ld l, a ld a, [hl] and a jr z, .asm_4d90b push bc ld b, h ld c, l inc bc ld de, $001c add hl, de ld d, a .asm_4d8f1 ld a, [bc] inc bc cp EGG jr z, .asm_4d901 call Function4d939 jr nc, .asm_4d901 ld a, $1 ld [$d265], a .asm_4d901 push bc ld bc, BoxMon2 - BoxMon1 add hl, bc pop bc dec d jr nz, .asm_4d8f1 pop bc .asm_4d90b inc c ld a, c cp NUM_BOXES jr c, .asm_4d8cd call CloseSRAM ld a, [ScriptVar] and a ret z callba Function1060cd ld a, [$d265] and a push af ld a, [CurPartySpecies] ld [$d265], a call GetPokemonName ld hl, UnknownText_0x4d9c9 pop af jr z, .asm_4d936 ld hl, UnknownText_0x4d9ce .asm_4d936 jp PrintText ; 4d939 Function4d939: ; 4d939 push bc push de push hl ld d, h ld e, l ld hl, Buffer1 ld bc, $8205 call PrintNum ld hl, DefaultFlypoint ld de, $dc9f ld bc, $8205 call PrintNum ld b, $5 ld c, $0 ld hl, EndFlypoint ld de, $d1ee .asm_4d95d ld a, [de] cp [hl] jr nz, .asm_4d967 dec de dec hl inc c dec b jr nz, .asm_4d95d .asm_4d967 pop hl push hl ld de, -6 add hl, de ld a, [hl] pop hl pop de push af ld a, c ld b, $1 cp $5 jr z, .asm_4d984 ld b, $2 cp $3 jr nc, .asm_4d984 ld b, $3 cp $2 jr nz, .asm_4d99b .asm_4d984 inc b ld a, [ScriptVar] and a jr z, .asm_4d98e cp b jr c, .asm_4d99b .asm_4d98e dec b ld a, b ld [ScriptVar], a pop bc ld a, b ld [CurPartySpecies], a pop bc scf ret .asm_4d99b pop bc pop bc and a ret ; 4d99f Unknown_4d99f: ; 4d99f ; bank, address dbw $02, $a000 dbw $02, $a450 dbw $02, $a8a0 dbw $02, $acf0 dbw $02, $b140 dbw $02, $b590 dbw $02, $b9e0 dbw $03, $a000 dbw $03, $a450 dbw $03, $a8a0 dbw $03, $acf0 dbw $03, $b140 dbw $03, $b590 dbw $03, $b9e0 ; 4d9c9 UnknownText_0x4d9c9: ; 0x4d9c9 ; Congratulations! We have a match with the ID number of @ in your party. text_jump UnknownText_0x1c1261 db "@" ; 0x4d9ce UnknownText_0x4d9ce: ; 0x4d9ce ; Congratulations! We have a match with the ID number of @ in your PC BOX. text_jump UnknownText_0x1c12ae db "@" ; 0x4d9d3 Function4d9d3: ; 4d9d3 ld hl, StringBuffer3 ld de, $dc9f ld bc, $8205 call PrintNum ld a, $50 ld [$d09e], a ret ; 4d9e5 Function4d9e5: ; 4d9e5 ld a, [$df9c] and a jp z, Function4db35 ld [CurPartySpecies], a ld [CurSpecies], a call GetBaseData ld hl, PartyCount ld a, [hl] cp $6 jp nc, Function4daa3 inc a ld [hl], a ld c, a ld b, $0 add hl, bc ld a, [$df9c] ld [hli], a ld [CurSpecies], a ld a, $ff ld [hl], a ld hl, PartyMon1Species ld a, [PartyCount] dec a ld bc, $0030 call AddNTimes ld d, h ld e, l ld hl, $df9c ld bc, $0030 call CopyBytes ld a, [PartyCount] dec a ld hl, PartyMon1OT call SkipNames ld d, h ld e, l ld hl, PlayerName call CopyBytes ld a, [CurPartySpecies] ld [$d265], a call GetPokemonName ld hl, StringBuffer1 ld de, $d050 ld bc, $000b call CopyBytes call Function4db3b jr c, .asm_4da66 ld a, [PartyCount] dec a ld [CurPartyMon], a xor a ld [MonType], a ld de, $d050 callab Functione3de .asm_4da66 ld a, [PartyCount] dec a ld hl, PartyMon1Nickname call SkipNames ld d, h ld e, l ld hl, $d050 call CopyBytes ld a, [PartyCount] dec a ld hl, PartyMon1Level call GetPartyLocation ld a, [hl] ld [CurPartyLevel], a call Function4db49 ld a, [PartyCount] dec a ld hl, PartyMon1CaughtLocation call GetPartyLocation ld a, [hl] and $80 ld b, $13 or b ld [hl], a xor a ld [$df9c], a and a ld [ScriptVar], a ret ; 4daa3 Function4daa3: ; 4daa3 ld a, $1 call GetSRAMBank ld hl, BoxCount ld a, [hl] cp 20 call CloseSRAM jr nc, .asm_4db08 xor a ld [CurPartyMon], a ld hl, $df9c ld de, $d018 ld bc, BoxMon2 - BoxMon1 call CopyBytes ld hl, PlayerName ld de, $d00d ld bc, $000b call CopyBytes callab Function51322 ld a, [CurPartySpecies] ld [$d265], a call GetPokemonName call Function4db3b ld hl, StringBuffer1 jr c, .asm_4daf7 ld a, BOXMON ld [MonType], a ld de, $d050 callab Functione3de ld hl, $d050 .asm_4daf7 ld a, $1 call GetSRAMBank ld de, BoxMon1Nickname ld bc, $000b call CopyBytes call CloseSRAM .asm_4db08 ld a, $1 call GetSRAMBank ld a, [BoxMon1Level] ld [CurPartyLevel], a call CloseSRAM call Function4db83 ld a, $1 call GetSRAMBank ld hl, BoxMon1CaughtLocation ld a, [hl] and $80 ld b, $13 or b ld [hl], a call CloseSRAM xor a ld [$df9c], a ld a, $1 ld [ScriptVar], a ret ; 4db35 Function4db35: ; 4db35 ld a, $2 ld [ScriptVar], a ret ; 4db3b Function4db3b: ; 4db3b ld hl, UnknownText_0x4db44 call PrintText jp YesNoBox ; 4db44 UnknownText_0x4db44: ; 0x4db44 ; Give a nickname to the @ you received? text_jump UnknownText_0x1c12fc db "@" ; 0x4db49 Function4db49: ; 4db49 ld a, [PartyCount] dec a ld hl, PartyMon1CaughtLevel call GetPartyLocation Function4db53: ; 4db53 ld a, [TimeOfDay] inc a rrca rrca ld b, a ld a, [CurPartyLevel] or b ld [hli], a ld a, [MapGroup] ld b, a ld a, [MapNumber] ld c, a cp MAP_POKECENTER_2F jr nz, .asm_4db78 ld a, b cp GROUP_POKECENTER_2F jr nz, .asm_4db78 ld a, [BackupMapGroup] ld b, a ld a, [BackupMapNumber] ld c, a .asm_4db78 call GetWorldMapLocation ld b, a ld a, [PlayerGender] rrca or b ld [hl], a ret ; 4db83 Function4db83: ; 4db83 ld a, $1 call GetSRAMBank ld hl, BoxMon1CaughtLevel call Function4db53 call CloseSRAM ret ; 4db92 Function4db92: ; 4db92 push bc ld a, $1 call GetSRAMBank ld hl, BoxMon1CaughtLevel pop bc call Function4dbaf call CloseSRAM ret ; 4dba3 Function4dba3: ; 4dba3 ld a, [PartyCount] dec a ld hl, PartyMon1CaughtLevel push bc call GetPartyLocation pop bc Function4dbaf: ; 4dbaf xor a ld [hli], a ld a, $7e rrc b or b ld [hl], a ret ; 4dbb8 ; no known jump sources Function4dbb8: ; 4dbb8 (13:5bb8) ld a, [CurPartyMon] ; $d109 ld hl, PartyMon1CaughtLevel ; $dcfc call GetPartyLocation ld a, [CurPartyLevel] ; $d143 push af ld a, $1 ld [CurPartyLevel], a ; $d143 call Function4db53 pop af ld [CurPartyLevel], a ; $d143 ret Function4dbd2: ; 4dbd2 ld hl, PartyMon1Level call Function4dc31 ret ; 4dbd9 Function4dbd9: ; 4dbd9 ld hl, PartyMon1Happiness call Function4dc0a ret ; 4dbe0 Function4dbe0: ; 4dbe0 ld hl, PartyMon1Species jp Function4dc56 ; 4dbe6 Function4dbe6: ; 4dbe6 ld hl, PartyMon1Species call Function4dc56 ret z ld a, c ld hl, PartyMon1ID ld bc, PartyMon2 - PartyMon1 call AddNTimes ld a, [PlayerID] cp [hl] jr nz, .asm_4dc08 inc hl ld a, [$d47c] cp [hl] jr nz, .asm_4dc08 ld a, $1 and a ret .asm_4dc08 xor a ret ; 4dc0a Function4dc0a: ; 4dc0a ld c, $0 ld a, [PartyCount] ld d, a .asm_4dc10 ld a, d dec a push hl push bc ld bc, $0030 call AddNTimes pop bc ld a, b cp [hl] pop hl jr z, .asm_4dc22 jr nc, .asm_4dc26 .asm_4dc22 ld a, c or $1 ld c, a .asm_4dc26 sla c dec d jr nz, .asm_4dc10 call Function4dc67 ld a, c and a ret ; 4dc31 Function4dc31: ; 4dc31 ld c, $0 ld a, [PartyCount] ld d, a .asm_4dc37 ld a, d dec a push hl push bc ld bc, $0030 call AddNTimes pop bc ld a, b cp [hl] pop hl jr c, .asm_4dc4b ld a, c or $1 ld c, a .asm_4dc4b sla c dec d jr nz, .asm_4dc37 call Function4dc67 ld a, c and a ret ; 4dc56 Function4dc56: ; 4dc56 ld c, $ff ld hl, PartySpecies .asm_4dc5b ld a, [hli] cp $ff ret z inc c cp b jr nz, .asm_4dc5b ld a, $1 and a ret ; 4dc67 Function4dc67: ; 4dc67 ld e, $fe ld hl, PartySpecies .asm_4dc6c ld a, [hli] cp $ff ret z cp EGG jr nz, .asm_4dc77 ld a, c and e ld c, a .asm_4dc77 rlc e jr .asm_4dc6c ; 4dc7b ; no known jump sources Function4dc7b: ; 4dc7b (13:5c7b) ld a, [InLinkBattle] ; $c2dc cp $4 jr nz, StatsScreenInit ld a, [IsInBattle] ; $d22d (aliases: EnemyMonEnd) and a jr z, StatsScreenInit jr Function4dc8f StatsScreenInit: ; 4dc8a ld hl, StatsScreenMain jr StatsScreenInit_gotaddress Function4dc8f: ; 4dc8f ld hl, Function4dcf7 jr StatsScreenInit_gotaddress StatsScreenInit_gotaddress: ; 4dc94 ld a, [$ffde] push af xor a ld [$ffde], a ; disable overworld tile animations ld a, [$c2c6] ; whether sprite is to be mirrorred push af ld a, [$cf63] ld b, a ld a, [$cf64] ld c, a push bc push hl call WhiteBGMap call ClearTileMap call Function1ad2 callba Functionfb53e pop hl call _hl_ call WhiteBGMap call ClearTileMap pop bc ; restore old values ld a, b ld [$cf63], a ld a, c ld [$cf64], a pop af ld [$c2c6], a pop af ld [$ffde], a ret ; 0x4dcd2 StatsScreenMain: ; 0x4dcd2 xor a ld [$cf63], a ld [$cf64], a ld a, [$cf64] and $fc or $1 ld [$cf64], a .loop ; 4dce3 ld a, [$cf63] and $7f ld hl, StatsScreenPointerTable rst JumpTable call Function4dd3a ; check for keys? ld a, [$cf63] bit 7, a jr z, .loop ret ; 0x4dcf7 Function4dcf7: ; 4dcf7 xor a ld [$cf63], a ld [$cf64], a ld a, [$cf64] and $fc or $1 ld [$cf64], a .asm_4dd08 callba Function100dd2 ld a, [$cf63] and $7f ld hl, StatsScreenPointerTable rst JumpTable call Function4dd3a callba Function100dfd jr c, .asm_4dd29 ld a, [$cf63] bit 7, a jr z, .asm_4dd08 .asm_4dd29 ret ; 4dd2a StatsScreenPointerTable: ; 4dd2a dw Function4dd72 ; regular pokémon dw EggStatsInit ; egg dw Function4dde6 dw Function4ddac dw Function4ddc6 dw Function4dde6 dw Function4ddd6 dw Function4dd6c ; 4dd3a ; known jump sources: 4dcec (13:5cec) Function4dd3a: ; 4dd3a (13:5d3a) ld hl, $cf64 bit 6, [hl] jr nz, .asm_4dd49 bit 5, [hl] jr nz, .asm_4dd56 call DelayFrame ret .asm_4dd49 callba Functiond00b4 jr nc, .asm_4dd56 ld hl, $cf64 res 6, [hl] .asm_4dd56 ld hl, $cf64 res 5, [hl] callba Function10402d ret ; known jump sources: 4dd97 (13:5d97), 4dd9d (13:5d9d), 4ddb3 (13:5db3), 4ddc2 (13:5dc2), 4dddd (13:5ddd), 4deda (13:5eda), 4dee0 (13:5ee0), 4dee6 (13:5ee6) Function4dd62: ; 4dd62 (13:5d62) ld a, [$cf63] and $80 or h ld [$cf63], a ret ; no known jump sources Function4dd6c: ; 4dd6c (13:5d6c) ld hl, $cf63 set 7, [hl] ret ; no known jump sources Function4dd72: ; 4dd72 (13:5d72) ld hl, $cf64 res 6, [hl] call WhiteBGMap call ClearTileMap callba Function10402d call Function4ddf2 ld a, [CurPartySpecies] ; $d108 cp EGG jr z, .asm_4dd9b call Function4deea ld hl, $cf64 set 4, [hl] ld h, $4 call Function4dd62 ret .asm_4dd9b ld h, $1 call Function4dd62 ret EggStatsInit: ; 4dda1 call EggStatsScreen ld a, [$cf63] inc a ld [$cf63], a ret ; 0x4ddac ; no known jump sources Function4ddac: ; 4ddac (13:5dac) call Function4de2c jr nc, .asm_4ddb7 ld h, $0 call Function4dd62 ret .asm_4ddb7 bit 0, a jr nz, .asm_4ddc0 and $c3 jp Function4de54 .asm_4ddc0 ld h, $7 call Function4dd62 ret ; no known jump sources Function4ddc6: ; 4ddc6 (13:5dc6) call Function4dfb6 ld hl, $cf64 res 4, [hl] ld a, [$cf63] inc a ld [$cf63], a ret ; no known jump sources Function4ddd6: ; 4ddd6 (13:5dd6) call Function4de2c jr nc, .asm_4dde1 ld h, $0 call Function4dd62 ret .asm_4dde1 and $f3 jp Function4de54 ; no known jump sources Function4dde6: ; 4dde6 (13:5de6) call Function3c74 ret nc ld a, [$cf63] inc a ld [$cf63], a ret ; known jump sources: 4dd83 (13:5d83) Function4ddf2: ; 4ddf2 (13:5df2) ld a, [MonType] ; $cf5f cp $3 jr nz, .asm_4de10 ld a, [$d018] ld [CurSpecies], a ; $cf60 call GetBaseData ld hl, $d018 ld de, TempMon ; $d10e ld bc, $30 call CopyBytes jr .asm_4de2a .asm_4de10 callba Function5084a ld a, [CurPartySpecies] ; $d108 cp EGG jr z, .asm_4de2a ld a, [MonType] ; $cf5f cp $2 jr c, .asm_4de2a callba Function50890 .asm_4de2a and a ret ; known jump sources: 4ddac (13:5dac), 4ddd6 (13:5dd6) Function4de2c: ; 4de2c (13:5e2c) call GetJoypad ld a, [MonType] ; $cf5f cp $3 jr nz, .asm_4de4e push hl push de push bc callba Functione2f95 pop bc pop de pop hl ld a, [$cf73] and $c0 jr nz, .asm_4de52 ld a, [$cf73] jr .asm_4de50 .asm_4de4e ld a, [hJoyPressed] ; $ff00+$a7 .asm_4de50 and a ret .asm_4de52 scf ret ; known jump sources: 4ddbd (13:5dbd), 4dde3 (13:5de3) Function4de54: ; 4de54 (13:5e54) push af ld a, [$cf64] and $3 ld c, a pop af bit 1, a jp nz, Function4dee4 bit 5, a jr nz, .asm_4dec7 bit 4, a jr nz, .asm_4debd bit 0, a jr nz, .asm_4deb8 bit 6, a jr nz, .asm_4dea0 bit 7, a jr nz, .asm_4de77 jr .asm_4dece .asm_4de77 ld a, [MonType] ; $cf5f cp $2 jr nc, .asm_4dece and a ld a, [PartyCount] ; $dcd7 jr z, .asm_4de87 ld a, [OTPartyCount] ; $d280 .asm_4de87 ld b, a ld a, [CurPartyMon] ; $d109 inc a cp b jr z, .asm_4dece ld [CurPartyMon], a ; $d109 ld b, a ld a, [MonType] ; $cf5f and a jr nz, .asm_4dede ld a, b inc a ld [$d0d8], a jr .asm_4dede .asm_4dea0 ld a, [CurPartyMon] ; $d109 and a jr z, .asm_4dece dec a ld [CurPartyMon], a ; $d109 ld b, a ld a, [MonType] ; $cf5f and a jr nz, .asm_4dede ld a, b inc a ld [$d0d8], a jr .asm_4dede .asm_4deb8 ld a, c cp $3 jr z, Function4dee4 .asm_4debd inc c ld a, $3 cp c jr nc, .asm_4decf ld c, $1 jr .asm_4decf .asm_4dec7 dec c jr nz, .asm_4decf ld c, $3 jr .asm_4decf .asm_4dece ret .asm_4decf ld a, [$cf64] and $fc or c ld [$cf64], a ld h, $4 call Function4dd62 ret .asm_4dede ld h, $0 call Function4dd62 ret ; known jump sources: 4de5e (13:5e5e), 4debb (13:5ebb) Function4dee4: ; 4dee4 (13:5ee4) ld h, $7 call Function4dd62 ret ; known jump sources: 4dd8d (13:5d8d) Function4deea: ; 4deea (13:5eea) call Function4df45 xor a ld [hBGMapMode], a ; $ff00+$d4 ld a, [CurBaseData] ; $d236 (aliases: BaseDexNo) ld [$d265], a ld [CurSpecies], a ; $cf60 ld hl, $c4a8 ld [hl], "№" inc hl ld [hl], "." inc hl ld hl, $c4aa ld bc, $8103 ld de, $d265 call PrintNum ld hl, $c4ae call PrintLevel ld hl, Unknown_4df77 call Function4e528 call Function4e505 ld hl, $c4d0 call PlaceString ld hl, $c4b2 call Function4df66 ld hl, $c4f9 ld a, $f3 ld [hli], a ld a, [CurBaseData] ; $d236 (aliases: BaseDexNo) ld [$d265], a call GetPokemonName call PlaceString call Function4df8f call Function4df9b call Function4dfa6 ret ; known jump sources: 4deea (13:5eea) Function4df45: ; 4df45 (13:5f45) ld hl, TempMonHP ; $d130 ld a, [hli] ld b, a ld c, [hl] ld hl, TempMonMaxHP ; $d132 ld a, [hli] ld d, a ld e, [hl] callba Functionc699 ld hl, $cda1 call SetHPPal ld b, $3 call GetSGBLayout call DelayFrame ret ; known jump sources: 4df26 (13:5f26) Function4df66: ; 4df66 (13:5f66) push hl callba GetGender pop hl ret c ld a, "♂"" jr nz, .asm_4df75 ld a, "♀" .asm_4df75 ld [hl], a ret ; 4df77 (13:5f77) Unknown_4df77: ; 4df77 INCBIN "baserom.gbc",$4df77,$4df8f - $4df77 ; known jump sources: 4df3b (13:5f3b), 4e348 (13:6348) Function4df8f: ; 4df8f (13:5f8f) ld hl, $c52c ld b, $14 ld a, $62 .asm_4df96 ld [hli], a dec b jr nz, .asm_4df96 ret ; known jump sources: 4df3e (13:5f3e) Function4df9b: ; 4df9b (13:5f9b) ld hl, $c524 ld [hl], $71 ld hl, $c52b ld [hl], $ed ret ; known jump sources: 4df41 (13:5f41) Function4dfa6: ; 4dfa6 (13:5fa6) ld bc, TempMonDVs ; $d123 callba CheckShininess ret nc ld hl, $c4b3 ld [hl], $3f ret ; known jump sources: 4ddc6 (13:5dc6) Function4dfb6: ; 4dfb6 (13:5fb6) ld a, [CurBaseData] ; $d236 (aliases: BaseDexNo) ld [$d265], a ld [CurSpecies], a ; $cf60 xor a ld [hBGMapMode], a ; $ff00+$d4 call Function4dfda call Function4e002 call Function4dfed ld hl, $cf64 bit 4, [hl] jr nz, .asm_4dfd6 call Function32f9 ret .asm_4dfd6 call Function4e226 ret ; known jump sources: 4dfc2 (13:5fc2) Function4dfda: ; 4dfda (13:5fda) ld a, [$cf64] and $3 ld c, a call Function4e4cd ld hl, $c540 ld bc, $a14 call ClearBox ret ; known jump sources: 4dfc8 (13:5fc8) Function4dfed: ; 4dfed (13:5fed) ld a, [$cf64] and $3 ld c, a callba Function8c8a call DelayFrame ld hl, $cf64 set 5, [hl] ret ; known jump sources: 4dfc5 (13:5fc5) Function4e002: ; 4e002 (13:6002) ld a, [$cf64] and $3 dec a ld hl, Jumptable_4e00d rst JumpTable ret ; no known jump sources Jumptable_4e00d: ; 4e00d (13:600d) dw Function4e013 dw Function4e147 dw Function4e1ae ; no known jump sources Function4e013: ; 4e013 (13:6013) ld hl, $c554 ld b, $0 ld a, $26 call Predef ld hl, $c55c ld [hl], $41 ld de, String_4e119 ld hl, $c590 call PlaceString ld a, [$d12a] ld b, a and $f jr nz, .asm_4e055 ld a, b and $f0 jr z, .asm_4e03d ld hl, $c548 ld [hl], $e8 .asm_4e03d ld a, [MonType] ; $cf5f cp $2 jr z, .asm_4e060 ld hl, $c5aa push hl ld de, TempMonStatus ; $d12e ld a, $45 call Predef pop hl jr nz, .asm_4e066 jr .asm_4e060 .asm_4e055 ld de, String_4e142 ld hl, $c5a5 call PlaceString jr .asm_4e066 .asm_4e060 ld de, String_4e127 call PlaceString .asm_4e066 ld hl, $c5cd ld a, $2c call Predef ld hl, $c549 ld de, $14 ld b, $a ld a, $31 .asm_4e078 ld [hl], a add hl, de dec b jr nz, .asm_4e078 ld de, String_4e12b ld hl, $c55e call PlaceString ld hl, $c5c9 call Function4e0d3 ld hl, $c575 ld bc, $307 ld de, TempMonExp ; $d116 call PrintNum call Function4e0e7 ld hl, $c5b1 ld bc, $307 ld de, Buffer1 ; $d1ea (aliases: MagikarpLength) call PrintNum ld de, String_4e136 ld hl, $c59a call PlaceString ld de, String_4e13f ld hl, $c5c6 call PlaceString ld hl, $c5eb ld a, [TempMonLevel] ; $d12d ld b, a ld de, $d118 ld a, $17 call Predef ld hl, $c5ea ld [hl], $40 ld hl, $c5f3 ld [hl], $41 ret ; known jump sources: 4e089 (13:6089) Function4e0d3: ; 4e0d3 (13:60d3) ld a, [TempMonLevel] ; $d12d push af cp MAX_LEVEL jr z, .asm_4e0df inc a ld [TempMonLevel], a ; $d12d .asm_4e0df call PrintLevel pop af ld [TempMonLevel], a ; $d12d ret ; known jump sources: 4e098 (13:6098) Function4e0e7: ; 4e0e7 (13:60e7) ld a, [TempMonLevel] ; $d12d cp MAX_LEVEL jr z, .asm_4e111 inc a ld d, a callba Function50e47 ld hl, $d118 ld hl, $d118 ld a, [$FF00+$b6] sub [hl] dec hl ld [$d1ec], a ld a, [$FF00+$b5] sbc [hl] dec hl ld [Buffer2], a ; $d1eb (aliases: MovementType) ld a, [hQuotient] ; $ff00+$b4 (aliases: hMultiplicand) sbc [hl] ld [Buffer1], a ; $d1ea (aliases: MagikarpLength) ret .asm_4e111 ld hl, Buffer1 ; $d1ea (aliases: MagikarpLength) xor a ld [hli], a ld [hli], a ld [hl], a ret ; 4e119 (13:6119) String_4e119: ; 4e119 db "STATUS/" next "TYPE/@" ; 4e127 String_4e127: ; 4e127 db "OK @" ; 4e12b String_4e12b: ; 4e12b db "EXP POINTS@" ; 4e136 String_4e136: ; 4e136 db "LEVEL UP@" ; 4e13f String_4e13f: ; 4e13f db "TO@" ; 4e142 String_4e142: ; 4e142 db "#RUS@" ; 4e147 ; no known jump sources Function4e147: ; 4e147 (13:6147) ld de, String_4e1a0 ld hl, $c540 call PlaceString call Function4e189 ld hl, $c548 call PlaceString ld de, String_4e1a9 ld hl, $c568 call PlaceString ld hl, TempMonMoves ; $d110 (aliases: TempMonMove1) ld de, $d25e ld bc, $4 call CopyBytes ld hl, $c570 ld a, $28 ld [Buffer1], a ; $d1ea (aliases: MagikarpLength) ld a, $20 call Predef ld hl, $c588 ld a, $28 ld [Buffer1], a ; $d1ea (aliases: MagikarpLength) ld a, $23 call Predef ret ; known jump sources: 4e150 (13:6150) Function4e189: ; 4e189 (13:6189) ld de, String_4e1a5 ld a, [TempMonItem] ; $d10f and a ret z ld b, a callba Function28771 ld a, b ld [$d265], a call GetItemName ret ; 4e1a0 (13:61a0) String_4e1a0: ; 4e1a0 db "ITEM@" ; 4e1a5 String_4e1a5: ; 4e1a5 db "---@" ; 4e1a9 String_4e1a9: ; 4e1a9 db "MOVE@" ; 4e1ae ; no known jump sources Function4e1ae: ; 4e1ae (13:61ae) call Function4e1cc ld hl, $c54a ld de, $14 ld b, $a ld a, $31 .asm_4e1bb ld [hl], a add hl, de dec b jr nz, .asm_4e1bb ld hl, $c54b ld bc, $6 ld a, $28 call Predef ret ; known jump sources: 4e1ae (13:61ae) Function4e1cc: ; 4e1cc (13:61cc) ld de, IDNoString ld hl, $c554 call PlaceString ld de, OTString ld hl, $c590 call PlaceString ld hl, $c56a ld bc, $8205 ld de, TempMonID ; $d114 call PrintNum ld hl, Unknown_4e216 call Function4e528 call Function4e505 callba CheckNickErrors ld hl, $c5a6 call PlaceString ld a, [$d12c] and a jr z, .asm_4e215 cp $7f jr z, .asm_4e215 and $80 ld a, "♂" jr z, .asm_4e211 ld a, "♀" .asm_4e211 ld hl, $c5ad ld [hl], a .asm_4e215 ret ; 4e216 (13:6216) Unknown_4e216: ; 4e216 dw PartyMonOT dw OTPartyMonOT dw BoxMonOT dw $d00d ; 4e21e IDNoString: ; 4e21e db $73, "№.@" OTString: ; 4e222 db "OT/@" ; 4e226 ; known jump sources: 4dfd6 (13:5fd6) Function4e226: ; 4e226 (13:6226) ld hl, TempMonDVs ; $d123 ld a, $2d call Predef call Function4e2ad jr c, .asm_4e238 and a jr z, .asm_4e23f jr .asm_4e246 .asm_4e238 call Function4e271 call Function32f9 ret .asm_4e23f call Function4e253 call Function32f9 ret .asm_4e246 call Function32f9 call Function4e253 ld a, [CurPartySpecies] ; $d108 call Function37d5 ret ; known jump sources: 4e23f (13:623f), 4e249 (13:6249) Function4e253: ; 4e253 (13:6253) ld hl, $cf64 set 5, [hl] ld a, [CurPartySpecies] ; $d108 cp UNOWN jr z, .asm_4e266 ld hl, TileMap ; $c4a0 (aliases: SpritesEnd) call Function3786 ret .asm_4e266 xor a ld [$c2c6], a ld hl, TileMap ; $c4a0 (aliases: SpritesEnd) call Function378b ret ; known jump sources: 4e238 (13:6238) Function4e271: ; 4e271 (13:6271) ld a, [CurPartySpecies] ; $d108 cp UNOWN jr z, .asm_4e281 ld a, $1 ld [$c2c6], a call Function4e289 ret .asm_4e281 xor a ld [$c2c6], a call Function4e289 ret ; known jump sources: 4e27d (13:627d), 4e285 (13:6285) Function4e289: ; 4e289 (13:6289) ld a, [CurPartySpecies] ; $d108 call IsAPokemon ret c call Function4e307 ld de, $9000 ld a, $3e call Predef ld hl, TileMap ; $c4a0 (aliases: SpritesEnd) ld d, $0 ld e, $2 ld a, $46 call Predef ld hl, $cf64 set 6, [hl] ret ; known jump sources: 4e22e (13:622e), 4e497 (13:6497) Function4e2ad: ; 4e2ad (13:62ad) ld a, [MonType] ; $cf5f ld hl, Jumptable_4e2b5 rst JumpTable ret ; no known jump sources Jumptable_4e2b5: ; 4e2b5 (13:62b5) dw Function4e2bf dw Function4e2cf dw Function4e2d1 dw Function4e2ed dw Function4e301 ; no known jump sources Function4e2bf: ; 4e2bf (13:62bf) ld a, [CurPartyMon] ; $d109 ld hl, PartyMons ; $dcdf (aliases: PartyMon1, PartyMon1Species) ld bc, $30 call AddNTimes ld b, h ld c, l jr Function4e2f2 ; no known jump sources Function4e2cf: ; 4e2cf (13:62cf) xor a ret ; no known jump sources Function4e2d1: ; 4e2d1 (13:62d1) ld hl, BoxMons ld bc, $30 ld a, [CurPartyMon] ; $d109 call AddNTimes ld b, h ld c, l ld a, $1 call GetSRAMBank call Function4e2f2 push af call CloseSRAM pop af ret ; no known jump sources Function4e2ed: ; 4e2ed (13:62ed) ld bc, TempMonSpecies ; $d10e (aliases: TempMon) jr Function4e2f2 ; known jump sources: 4e2cd (13:62cd), 4e2e4 (13:62e4), 4e2f0 (13:62f0) Function4e2f2: ; 4e2f2 (13:62f2) ld a, [CurPartySpecies] ; $d108 cp EGG jr z, .asm_4e2fe call Function4e53f jr c, Function4e305 .asm_4e2fe xor a scf ret ; no known jump sources Function4e301: ; 4e301 (13:6301) ld a, $1 and a ret Function4e305: ; 4e305 (13:6305) xor a ret ; known jump sources: 4e290 (13:6290), 4e4b1 (13:64b1) Function4e307: ; 4e307 (13:6307) nop push hl push de push bc push af call DelayFrame ld a, [rVBK] ; $ff00+$4f push af ld a, $1 ld [rVBK], a ; $ff00+$4f ld de, GFX_f9204 lb bc, BANK(GFX_f9204), 1 ld hl, $97f0 call Get2bpp pop af ld [rVBK], a ; $ff00+$4f pop af pop bc pop de pop hl ret ; 4e32a (13:632a) Unknown_4e32a: ; 4e32a ; A blank tile? ds 16 ; 4e33a EggStatsScreen: ; 4e33a xor a ld [hBGMapMode], a ld hl, $cda1 call SetHPPal ld b, $3 call GetSGBLayout call Function4df8f ld de, EggString hlcoord 8, 1 ; $c4bc call PlaceString ld de, IDNoString hlcoord 8, 3 ; $c4e4 call PlaceString ld de, OTString hlcoord 8, 5 ; $c50c call PlaceString ld de, FiveQMarkString hlcoord 11, 3 ; $c4e7 call PlaceString ld de, FiveQMarkString hlcoord 11, 5 ; $c50f call PlaceString ld a, [TempMonHappiness] ; egg status ld de, EggSoonString cp $6 jr c, .picked ld de, EggCloseString cp $b jr c, .picked ld de, EggMoreTimeString cp $29 jr c, .picked ld de, EggALotMoreTimeString .picked hlcoord 1, 9 ; $c555 call PlaceString ld hl, $cf64 set 5, [hl] call Function32f9 ; pals call DelayFrame ld hl, TileMap call Function3786 callba Function10402d call Function4e497 ld a, [TempMonHappiness] cp 6 ret nc ld de, SFX_2_BOOPS call PlaySFX ret ; 0x4e3c0 EggString: ; 4e3c0 db "EGG@" FiveQMarkString: ; 4e3c4 db "?????@" EggSoonString: ; 0x4e3ca db "It's making sounds" next "inside. It's going" next "to hatch soon!@" EggCloseString: ; 0x4e3fd db "It moves around" next "inside sometimes." next "It must be close" next "to hatching.@" EggMoreTimeString: ; 0x4e43d db "Wonder what's" next "inside? It needs" next "more time, though.@" EggALotMoreTimeString: ; 0x4e46e db "This EGG needs a" next "lot more time to" next "hatch.@" ; 0x4e497 ; known jump sources: 4e3b0 (13:63b0) Function4e497: ; 4e497 (13:6497) call Function4e2ad ret nc ld a, [TempMonHappiness] ; $d129 ld e, $7 cp $6 jr c, .asm_4e4ab ld e, $8 cp $b jr c, .asm_4e4ab ret .asm_4e4ab push de ld a, $1 ld [$c2c6], a call Function4e307 ld de, $9000 ld a, $3e call Predef pop de ld hl, TileMap ; $c4a0 (aliases: SpritesEnd) ld d, $0 ld a, $46 call Predef ld hl, $cf64 set 6, [hl] ret ; known jump sources: 4dfe0 (13:5fe0) Function4e4cd: ; 4e4cd (13:64cd) ld hl, $c511 ld a, $36 call Function4e4f7 ld hl, $c513 ld a, $36 call Function4e4f7 ld hl, $c515 ld a, $36 call Function4e4f7 ld a, c cp $2 ld a, $3a ld hl, $c511 jr c, Function4e4f7 ld hl, $c513 jr z, Function4e4f7 ld hl, $c515 ; known jump sources: 4e4d2 (13:64d2), 4e4da (13:64da), 4e4e2 (13:64e2), 4e4ed (13:64ed), 4e4f2 (13:64f2) Function4e4f7: ; 4e4f7 (13:64f7) push bc ld [hli], a inc a ld [hld], a ld bc, $14 add hl, bc inc a ld [hli], a inc a ld [hl], a pop bc ret ; known jump sources: 4df1a (13:5f1a), 4e1f0 (13:61f0) Function4e505: ; 4e505 (13:6505) ld de, StringBuffer1 ; $d073 ld bc, $b jr .asm_4e50d .asm_4e50d ld a, [MonType] ; $cf5f cp BOXMON jr nz, .asm_4e522 ld a, $1 call GetSRAMBank push de call CopyBytes pop de call CloseSRAM ret .asm_4e522 push de call CopyBytes pop de ret ; known jump sources: 4df17 (13:5f17), 4e1ed (13:61ed) Function4e528: ; 4e528 (13:6528) ld a, [MonType] ; $cf5f add a ld c, a ld b, 0 add hl, bc ld a, [hli] ld h, [hl] ld l, a ld a, [MonType] ; $cf5f cp $3 ret z ld a, [CurPartyMon] ; $d109 jp SkipNames Function4e53f: ; 4e53f ld hl, PartyMon1HP - PartyMon1 add hl, bc ld a, [hli] or [hl] jr z, .asm_4e552 ld hl, PartyMon1Status - PartyMon1 add hl, bc ld a, [hl] and (1 << FRZ) | SLP jr nz, .asm_4e552 and a ret .asm_4e552 scf ret ; 4e554 Function4e554:: ; 4e554 ld a, [BattleType] dec a ld c, a ld hl, Jumptable_4e564 ld b, 0 add hl, bc add hl, bc ld a, [hli] ld h, [hl] ld l, a jp [hl] ; 4e564 ; no known jump sources Jumptable_4e564: ; 4e564 (13:6564) dw Function4e56a dw Function4e56a dw Function4e56a ; no known jump sources Function4e56a: ; 4e56a (13:656a) ld hl, PlayerName ; $d47d ld de, MomsName ; $d488 ld bc, $b call CopyBytes ld hl, String_4e5da ld de, PlayerName ; $d47d ld bc, $b call CopyBytes call Function4e5b7 xor a ld [hJoyDown], a ; $ff00+$a8 ld [hJoyPressed], a ; $ff00+$a7 ld a, [Options] ; $cfcc push af and $f8 add $3 ld [Options], a ; $cfcc ld hl, AutoInput_4e5df ld a, BANK(AutoInput_4e5df) call StartAutoInput callab StartBattle call StopAutoInput pop af ld [Options], a ; $cfcc ld hl, MomsName ; $d488 ld de, PlayerName ; $d47d ld bc, $b call CopyBytes ret ; known jump sources: 4e582 (13:6582) Function4e5b7: ; 4e5b7 (13:65b7) ld hl, OTPartyMon1Species ; $d288 (aliases: OTPartyMon1) ld [hl], $1 inc hl ld [hl], $12 inc hl ld [hl], $1 inc hl ld [hl], $ff ld hl, $d292 ld [hl], $0 inc hl ld [hl], $ff ld hl, $d2a6 ld a, $1 ld [hli], a ld a, $5 ld [hli], a ld [hli], a ld [hl], $ff ret ; 4e5da (13:65da) String_4e5da: ; 4e5da db "DUDE@" ; 4e5df AutoInput_4e5df: ; 4e5df db NO_INPUT, $ff ; end ; 4e5e1 EvolutionAnimation: ; 4e5e1 push hl push de push bc ld a, [CurSpecies] push af ld a, [rOBP0] push af ld a, [BaseDexNo] push af call _EvolutionAnimation pop af ld [BaseDexNo], a pop af ld [rOBP0], a pop af ld [CurSpecies], a pop bc pop de pop hl ld a, [$d1ed] and a ret z scf ret ; 4e607 _EvolutionAnimation: ; 4e607 ld a, $e4 ld [rOBP0], a ld de, MUSIC_NONE call PlayMusic callba Function8cf53 ld de, EvolutionGFX ld hl, VTiles0 lb bc, BANK(EvolutionGFX), 8 call Request2bpp xor a ld [Danger], a call WaitBGMap xor a ld [hBGMapMode], a ld a, [Buffer1] ld [PlayerHPPal], a ld c, $0 call Function4e703 ld a, [Buffer1] ld [CurPartySpecies], a ld [CurSpecies], a call Function4e708 ld de, VTiles2 ld hl, $9310 ld bc, $0031 call Request2bpp ld a, $31 ld [$d1ec], a call Function4e755 ld a, [Buffer2] ld [CurPartySpecies], a ld [CurSpecies], a call Function4e711 ld a, [Buffer1] ld [CurPartySpecies], a ld [CurSpecies], a ld a, $1 ld [hBGMapMode], a call Function4e794 jr c, .asm_4e67c ld a, [Buffer1] call Function37ce .asm_4e67c ld de, MUSIC_EVOLUTION call PlayMusic ld c, 80 call DelayFrames ld c, $1 call Function4e703 call Function4e726 jr c, .asm_4e6df ld a, $cf ld [$d1ec], a call Function4e755 xor a ld [$d1ed], a ld a, [Buffer2] ld [PlayerHPPal], a ld c, $0 call Function4e703 call Function4e7a6 callba Function8cf53 call Function4e794 jr c, .asm_4e6de ld a, [$c2c6] push af ld a, $1 ld [$c2c6], a ld a, [CurPartySpecies] push af ld a, [PlayerHPPal] ld [CurPartySpecies], a ld hl, $c4cf ld d, $0 ld e, $4 ld a, $47 call Predef pop af ld [CurPartySpecies], a pop af ld [$c2c6], a ret .asm_4e6de ret .asm_4e6df ld a, $1 ld [$d1ed], a ld a, [Buffer1] ld [PlayerHPPal], a ld c, $0 call Function4e703 call Function4e7a6 callba Function8cf53 call Function4e794 ret c ld a, [PlayerHPPal] call Function37ce ret ; 4e703 Function4e703: ; 4e703 ld b, $b jp GetSGBLayout ; 4e708 Function4e708: ; 4e708 call GetBaseData ld hl, $c4cf jp Function3786 ; 4e711 Function4e711: ; 4e711 call GetBaseData ld a, $1 ld [$c2c6], a ld de, VTiles2 ld a, $3e call Predef xor a ld [$c2c6], a ret ; 4e726 Function4e726: ; 4e726 call ClearJoypad ld bc, $010e .asm_4e72c push bc call Function4e779 pop bc jr c, .asm_4e73f push bc call Function4e741 pop bc inc b dec c dec c jr nz, .asm_4e72c and a ret .asm_4e73f scf ret ; 4e741 Function4e741: ; 4e741 .asm_4e741 ld a, $cf ld [$d1ec], a call Function4e755 ld a, $31 ld [$d1ec], a call Function4e755 dec b jr nz, .asm_4e741 ret ; 4e755 Function4e755: ; 4e755 push bc xor a ld [hBGMapMode], a ld hl, $c4cf ld bc, $0707 ld de, $000d .asm_4e762 push bc .asm_4e763 ld a, [$d1ec] add [hl] ld [hli], a dec c jr nz, .asm_4e763 pop bc add hl, de dec b jr nz, .asm_4e762 ld a, $1 ld [hBGMapMode], a call WaitBGMap pop bc ret ; 4e779 Function4e779: ; 4e779 .asm_4e779 call DelayFrame push bc call Functiona57 ld a, [hJoyDown] pop bc and $2 jr nz, .asm_4e78c .asm_4e787 dec c jr nz, .asm_4e779 and a ret .asm_4e78c ld a, [$d1e9] and a jr nz, .asm_4e787 scf ret ; 4e794 Function4e794: ; 4e794 ld a, [CurPartyMon] ld hl, PartyMon1Species call GetPartyLocation ld b, h ld c, l callba Function4e53f ret ; 4e7a6 Function4e7a6: ; 4e7a6 ld a, [$d1ed] and a ret nz ld de, SFX_EVOLVED call PlaySFX ld hl, $cf63 ld a, [hl] push af ld [hl], $0 .asm_4e7b8 call Function4e7cf jr nc, .asm_4e7c2 call Function4e80c jr .asm_4e7b8 .asm_4e7c2 ld c, $20 .asm_4e7c4 call Function4e80c dec c jr nz, .asm_4e7c4 pop af ld [$cf63], a ret ; 4e7cf Function4e7cf: ; 4e7cf ld hl, $cf63 ld a, [hl] cp $20 ret nc ld d, a inc [hl] and $1 jr nz, .asm_4e7e6 ld e, $0 call Function4e7e8 ld e, $10 call Function4e7e8 .asm_4e7e6 scf ret ; 4e7e8 Function4e7e8: ; 4e7e8 push de ld de, $4858 ld a, $13 call Function3b2a ld hl, $000b add hl, bc ld a, [$cf63] and $e sla a pop de add e ld [hl], a ld hl, $0003 add hl, bc ld [hl], $0 ld hl, $000c add hl, bc ld [hl], $10 ret ; 4e80c Function4e80c: ; 4e80c push bc callab Function8cf69 ld a, [$ff9b] and $e srl a inc a inc a and $7 ld b, a ld hl, $c403 ld c, $28 .asm_4e823 ld a, [hl] or b ld [hli], a inc hl inc hl inc hl dec c jr nz, .asm_4e823 pop bc call DelayFrame ret ; 4e831 EvolutionGFX: INCBIN "gfx/evo/bubble_large.2bpp" INCBIN "gfx/evo/bubble.2bpp" Function4e881: ; 4e881 call WhiteBGMap call ClearTileMap call ClearSprites call DisableLCD call Functione51 call Functione58 ld hl, VBGMap0 ld bc, $400 ld a, $7f call ByteFill ld hl, AttrMap ld bc, $0168 xor a call ByteFill xor a ld [hSCY], a ld [hSCX], a call EnableLCD ld hl, UnknownText_0x4e8bd call PrintText call Function3200 call Function32f9 ret ; 4e8bd UnknownText_0x4e8bd: ; 0x4e8bd ; SAVING RECORD… DON'T TURN OFF! text_jump UnknownText_0x1bd39e db "@" ; 0x4e8c2 Function4e8c2: ; 4e8c2 call WhiteBGMap call ClearTileMap call ClearSprites call DisableLCD call Functione51 call Functione58 ld hl, VBGMap0 ld bc, $400 ld a, $7f call ByteFill ld hl, AttrMap ld bc, $0168 xor a call ByteFill ld hl, $d000 ld c, $40 .asm_4e8ee ld a, $ff ld [hli], a ld a, $7f ld [hli], a dec c jr nz, .asm_4e8ee xor a ld [hSCY], a ld [hSCX], a call EnableLCD call Function3200 call Function32f9 ret ; 4e906 Function4e906: ; 4e906 ld a, [rSVBK] push af ld a, $6 ld [rSVBK], a ld hl, $d000 ld bc, $400 ld a, $7f call ByteFill ld hl, VBGMap0 ld de, $d000 ld b, $0 ld c, $40 call Request2bpp pop af ld [rSVBK], a ret ; 4e929 Function4e929: ; 4e929 ld h, b ld l, c call Function4e930 ld c, a ret ; 4e930 Function4e930: ; 4e930 ld a, [hli] xor [hl] ld c, a jr z, .asm_4e941 srl c srl c .asm_4e939 srl c ld a, c cp MaleTrainersEnd - MaleTrainers - 1 jr nc, .asm_4e939 inc c .asm_4e941 ld a, [de] cp $1 ld hl, MaleTrainers jr nz, .asm_4e958 ld hl, FemaleTrainers ld a, c and a jr z, .asm_4e958 .asm_4e950 srl c ld a, c cp FemaleTrainersEnd - FemaleTrainers - 1 jr nc, .asm_4e950 inc c .asm_4e958 ld b, $0 add hl, bc ld a, [hl] ret ; 4e95d MaleTrainers: ; 4e95d db BURGLAR db YOUNGSTER db SCHOOLBOY db BIRD_KEEPER db POKEMANIAC db GENTLEMAN db BUG_CATCHER db FISHER db SWIMMERM db SAILOR db SUPER_NERD db GUITARIST db HIKER db FIREBREATHER db BLACKBELT_T db PSYCHIC_T db CAMPER db COOLTRAINERM db BOARDER db JUGGLER db POKEFANM db OFFICER db SAGE db BIKER db SCIENTIST MaleTrainersEnd: ; 4e976 FemaleTrainers: ; 4e976 db MEDIUM db LASS db BEAUTY db SKIER db TEACHER db SWIMMERF db PICNICKER db KIMONO_GIRL db POKEFANF db COOLTRAINERF FemaleTrainersEnd: ; 4e980 Function4e980: ; 4e980 ld a, [rSVBK] push af ld a, $5 ld [rSVBK], a call Function4e998 ld a, rSCX & $ff ld [hLCDStatCustom], a call Function4e9ab xor a ld [hLCDStatCustom], a pop af ld [rSVBK], a ret ; 4e998 Function4e998: ; 4e998 call Function4e9e5 ld a, $90 ld [hSCX], a ld a, $e4 call DmgToCgbBGPals ld de, $e4e4 call DmgToCgbObjPals ret ; 4e9ab Function4e9ab: ; 4e9ab ld d, $90 ld e, $72 ld a, $48 inc a .asm_4e9b2 push af .asm_4e9b3 ld a, [rLY] cp $60 jr c, .asm_4e9b3 ld a, d ld [hSCX], a call Function4e9f1 inc e inc e dec d dec d pop af push af cp $1 jr z, .asm_4e9ce push de call Function4e9d6 pop de .asm_4e9ce call DelayFrame pop af dec a jr nz, .asm_4e9b2 ret ; 4e9d6 Function4e9d6: ; 4e9d6 ld hl, $c401 ld c, $12 ld de, $0004 .asm_4e9de dec [hl] dec [hl] add hl, de dec c jr nz, .asm_4e9de ret ; 4e9e5 Function4e9e5: ; 4e9e5 ld hl, LYOverrides ld a, $90 ld bc, $0090 call ByteFill ret ; 4e9f1 Function4e9f1: ; 4e9f1 ld hl, LYOverrides ld a, d ld c, $3e .asm_4e9f7 ld [hli], a dec c jr nz, .asm_4e9f7 ld a, e ld c, $22 .asm_4e9fe ld [hli], a dec c jr nz, .asm_4e9fe xor a ld c, $30 .asm_4ea05 ld [hli], a dec c jr nz, .asm_4ea05 ret ; 4ea0a Function4ea0a: ; 4ea0a ld a, c push af call SpeechTextBox call MobileTextBorder pop af dec a ld bc, $000c ld hl, $dc1a call AddNTimes ld de, $cd53 ld bc, $000c ld a, $5 call FarCopyWRAM ld a, [rSVBK] push af ld a, $1 ld [rSVBK], a ld bc, $cd53 ld de, $c5b9 callba Function11c0c6 pop af ld [rSVBK], a ld c, $b4 call DelayFrames ret ; 4ea44 CheckBattleScene: ; 4ea44 ; Return carry if battle scene is turned off. ld a, 0 ld hl, InLinkBattle call GetFarWRAMByte cp 4 jr z, .mobile ld a, [Options] bit BATTLE_SCENE, a jr nz, .off and a ret .mobile ld a, [$cd2f] and a jr nz, .asm_4ea72 ld a, $4 call GetSRAMBank ld a, [$a60c] ld c, a call CloseSRAM ld a, c bit 0, c jr z, .off and a ret .asm_4ea72 ld a, $5 ld hl, $dc00 call GetFarWRAMByte bit 0, a jr z, .off and a ret .off scf ret ; 4ea82 INCLUDE "misc/gbc_only.asm" INCLUDE "event/poke_seer.asm" SECTION "bank14", ROMX, BANK[$14] Function50000: ; 50000 call Function2ed3 xor a ld [PartyMenuActionText], a call WhiteBGMap call Function5003f call WaitBGMap call Function32f9 call DelayFrame call PartyMenuSelect call Function2b74 ret ; 5001d Function5001d: ; 5001d ld a, b ld [PartyMenuActionText], a call Function2ed3 call WhiteBGMap call Function5003f call WaitBGMap ld b, $a call GetSGBLayout call Function32f9 call DelayFrame call PartyMenuSelect call Function2b74 ret ; 5003f Function5003f: ; 5003f call Function5004f call Function50405 call Function503e0 call WritePartyMenuTilemap call PrintPartyMenuText ret ; 5004f Function5004f: ; 5004f call Functione58 callab Function8ad1 callab Function8e814 ret ; 5005f WritePartyMenuTilemap: ; 0x5005f ld hl, Options ld a, [hl] push af set 4, [hl] ; Disable text delay xor a ld [hBGMapMode], a ld hl, TileMap ld bc, $0168 ld a, " " call ByteFill ; blank the tilemap call Function50396 ; This reads from a pointer table??? .asm_50077 ld a, [hli] cp $ff jr z, .asm_50084 ; 0x5007a $8 push hl ld hl, Jumptable_50089 rst JumpTable pop hl jr .asm_50077 ; 0x50082 $f3 .asm_50084 pop af ld [Options], a ret ; 0x50089 Jumptable_50089: ; 50089 dw Function5009b dw Function500cf dw Function50138 dw Function50176 dw Function501b2 dw Function501e0 dw Function5022f dw Function502b1 dw Function50307 ; 5009b Function5009b: ; 5009b ld hl, $c4b7 ld a, [PartyCount] and a jr z, .asm_500bf ld c, a ld b, $0 .asm_500a7 push bc push hl push hl ld hl, PartyMon1Nickname ld a, b call GetNick pop hl call PlaceString pop hl ld de, $0028 add hl, de pop bc inc b dec c jr nz, .asm_500a7 .asm_500bf dec hl dec hl ld de, String_500c8 call PlaceString ret ; 500c8 String_500c8: ; 500c8 db "CANCEL@" ; 500cf Function500cf: ; 500cf xor a ld [$cda9], a ld a, [PartyCount] and a ret z ld c, a ld b, $0 ld hl, $c4d3 .asm_500de push bc push hl call Function50389 jr z, .asm_50103 push hl call Function50117 pop hl ld d, $6 ld b, $0 call DrawHPBar ld hl, $cd9b ld a, [$cda9] ld c, a ld b, $0 add hl, bc call SetHPPal ld b, $fc call GetSGBLayout .asm_50103 ld hl, $cda9 inc [hl] pop hl ld de, $0028 add hl, de pop bc inc b dec c jr nz, .asm_500de ld b, $a call GetSGBLayout ret ; 50117 Function50117: ; 50117 ld a, b ld bc, $0030 ld hl, PartyMon1HP call AddNTimes ld a, [hli] or [hl] jr nz, .asm_50129 xor a ld e, a ld c, a ret .asm_50129 dec hl ld a, [hli] ld b, a ld a, [hli] ld c, a ld a, [hli] ld d, a ld a, [hli] ld e, a ld a, $4 call Predef ret ; 50138 Function50138: ; 50138 ld a, [PartyCount] and a ret z ld c, a ld b, $0 ld hl, $c4c1 .asm_50143 push bc push hl call Function50389 jr z, .asm_5016b push hl ld a, b ld bc, $0030 ld hl, PartyMon1HP call AddNTimes ld e, l ld d, h pop hl push de ld bc, $0203 call PrintNum pop de ld a, $f3 ld [hli], a inc de inc de ld bc, $0203 call PrintNum .asm_5016b pop hl ld de, $0028 add hl, de pop bc inc b dec c jr nz, .asm_50143 ret ; 50176 Function50176: ; 50176 ld a, [PartyCount] and a ret z ld c, a ld b, $0 ld hl, $c4d0 .asm_50181 push bc push hl call Function50389 jr z, .asm_501a7 push hl ld a, b ld bc, $0030 ld hl, PartyMon1Level call AddNTimes ld e, l ld d, h pop hl ld a, [de] cp $64 jr nc, .asm_501a1 ld a, $6e ld [hli], a ld bc, $4102 .asm_501a1 ld bc, $4103 call PrintNum .asm_501a7 pop hl ld de, $0028 add hl, de pop bc inc b dec c jr nz, .asm_50181 ret ; 501b2 Function501b2: ; 501b2 ld a, [PartyCount] and a ret z ld c, a ld b, $0 ld hl, $c4cd .asm_501bd push bc push hl call Function50389 jr z, .asm_501d5 push hl ld a, b ld bc, $0030 ld hl, PartyMon1Status call AddNTimes ld e, l ld d, h pop hl call Function50d0a .asm_501d5 pop hl ld de, $0028 add hl, de pop bc inc b dec c jr nz, .asm_501bd ret ; 501e0 Function501e0: ; 501e0 ld a, [PartyCount] and a ret z ld c, a ld b, $0 ld hl, $c4d4 .asm_501eb push bc push hl call Function50389 jr z, .asm_5020a push hl ld hl, PartySpecies ld e, b ld d, $0 add hl, de ld a, [hl] ld [CurPartySpecies], a ld a, $e call Predef pop hl call Function50215 call PlaceString .asm_5020a pop hl ld de, $0028 add hl, de pop bc inc b dec c jr nz, .asm_501eb ret ; 50215 Function50215: ; 50215 ld a, c and a jr nz, .asm_5021d ld de, String_50226 ret .asm_5021d ld de, String_50221 ret ; 50221 String_50221: ; 50221 db "ABLE@" ; 50226 String_50226: ; 50226 db "NOT ABLE@" ; 5022f Function5022f: ; 5022f ld a, [PartyCount] and a ret z ld c, a ld b, 0 ld hl, $c4d4 .asm_5023a push bc push hl call Function50389 jr z, .asm_5025d push hl ld a, b ld bc, $0030 ld hl, PartyMon1Species call AddNTimes ld a, [hl] dec a ld e, a ld d, 0 ld hl, EvosAttacksPointers add hl, de add hl, de call Function50268 pop hl call PlaceString .asm_5025d pop hl ld de, $0028 add hl, de pop bc inc b dec c jr nz, .asm_5023a ret ; 50268 Function50268: ; 50268 ld de, StringBuffer1 ld a, BANK(EvosAttacksPointers) ld bc, 2 call FarCopyBytes ld hl, StringBuffer1 ld a, [hli] ld h, [hl] ld l, a ld de, StringBuffer1 ld a, BANK(EvosAttacks) ld bc, $a call FarCopyBytes ld hl, StringBuffer1 .asm_50287 ld a, [hli] and a jr z, .asm_5029f inc hl inc hl cp EVOLVE_ITEM jr nz, .asm_50287 dec hl dec hl ld a, [CurItem] cp [hl] inc hl inc hl jr nz, .asm_50287 ld de, String_502a3 ret .asm_5029f ld de, String_502a8 ret ; 502a3 String_502a3: ; 502a3 db "ABLE@" ; 502a8 String_502a8: ; 502a8 db "NOT ABLE@" ; 502b1 Function502b1: ; 502b1 ld a, [PartyCount] and a ret z ld c, a ld b, 0 ld hl, $c4d4 .asm_502bc push bc push hl call Function50389 jr z, .asm_502e3 ld [CurPartySpecies], a push hl ld a, b ld [CurPartyMon], a xor a ld [MonType], a call GetGender ld de, String_502fe jr c, .asm_502df ld de, String_502ee jr nz, .asm_502df ld de, String_502f5 .asm_502df pop hl call PlaceString .asm_502e3 pop hl ld de, $0028 add hl, de pop bc inc b dec c jr nz, .asm_502bc ret ; 502ee String_502ee: ; 502ee db "♂…MALE@" ; 502f5 String_502f5: ; 502f5 db "♀…FEMALE@" ; 502fe String_502fe: ; 502fe db "…UNKNOWN@" ; 50307 Function50307: ; 50307 ld a, [PartyCount] and a ret z ld c, a ld b, 0 ld hl, $c4c0 .asm_50312 push bc push hl ld de, String_50372 call PlaceString pop hl ld de, $0028 add hl, de pop bc inc b dec c jr nz, .asm_50312 ld a, l ld e, $b sub e ld l, a ld a, h sbc $0 ld h, a ld de, String_50379 call PlaceString ld b, $3 ld c, $0 ld hl, DefaultFlypoint ld a, [hl] .asm_5033b push hl push bc ld hl, $c4c0 .asm_50340 and a jr z, .asm_5034a ld de, $0028 add hl, de dec a jr .asm_50340 .asm_5034a ld de, String_5036b push hl call PlaceString pop hl pop bc push bc push hl ld a, c ld hl, Strings_50383 call GetNthString ld d, h ld e, l pop hl call PlaceString pop bc pop hl inc hl ld a, [hl] inc c dec b ret z jr .asm_5033b ; 5036b String_5036b: ; 5036b db " ばんめ @" ; Place ; 50372 String_50372: ; 50372 db "さんかしない@" ; Cancel ; 50379 String_50379: ; 50379 db "けってい やめる@" ; Quit ; 50383 Strings_50383: ; 50383 db "1@", "2@", "3@" ; 1st, 2nd, 3rd ; 50389 Function50389: ; 50389 ld a, PartySpecies % $100 add b ld e, a ld a, PartySpecies / $100 adc 0 ld d, a ld a, [de] cp EGG ret ; 50396 Function50396: ; 50396 ld a, [PartyMenuActionText] and $f0 jr nz, .asm_503ae ld a, [PartyMenuActionText] and $f ld e, a ld d, 0 ld hl, Unknown_503b2 add hl, de add hl, de ld a, [hli] ld h, [hl] ld l, a ret .asm_503ae ld hl, Unknown_503c6 ret ; 503b2 Unknown_503b2: ; 503b2 dw Unknown_503c6 dw Unknown_503c6 dw Unknown_503c6 dw Unknown_503cc dw Unknown_503c6 dw Unknown_503d1 dw Unknown_503d6 dw Unknown_503d6 dw Unknown_503c6 dw Unknown_503db ; 503c6 Unknown_503c6: db 0, 1, 2, 3, 4, $ff Unknown_503cc: db 0, 5, 3, 4, $ff Unknown_503d1: db 0, 6, 3, 4, $ff Unknown_503d6: db 0, 7, 3, 4, $ff Unknown_503db: db 0, 8, 3, 4, $ff ; 503e0 Function503e0: ; 503e0 ld hl, PartyCount ld a, [hli] and a ret z ld c, a xor a ld [hConnectedMapWidth], a .asm_503ea push bc push hl ld hl, Function8e83f ld a, BANK(Function8e83f) ld e, $0 rst FarCall ld a, [hConnectedMapWidth] inc a ld [hConnectedMapWidth], a pop hl pop bc dec c jr nz, .asm_503ea callab Function8cf69 ret ; 50405 Function50405: ; 50405 xor a ld [$d0e3], a ld de, Unknown_5044f call Function1bb1 ld a, [PartyCount] inc a ld [$cfa3], a dec a ld b, a ld a, [$d0d8] and a jr z, .asm_50422 inc b cp b jr c, .asm_50424 .asm_50422 ld a, $1 .asm_50424 ld [$cfa9], a ld a, $3 ld [$cfa8], a ret ; 5042d Function5042d: ; 0x5042d ld de, Unknown_5044f call Function1bb1 ld a, [PartyCount] ; $dcd7 ld [$cfa3], a ld b, a ld a, [$d0d8] and a jr z, .asm_50444 inc b cp b jr c, .asm_50446 .asm_50444 ld a, $1 .asm_50446 ld [$cfa9], a ld a, $3 ld [$cfa8], a ret ; 5044f (14:444f) Unknown_5044f: ; 5044f ; cursor y ; cursor x ; list length ; ? ; bit 6: animate sprites bit 5: wrap around ; ? ; distance between items (hi: y, lo: x) ; allowed buttons (mask) db $01, $00, $00, $01, $60, $00, $20, $00 ; 50457 PartyMenuSelect: ; 0x50457 ; sets carry if exitted menu. call Function1bc9 call Function1bee ld a, [PartyCount] inc a ld b, a ld a, [$cfa9] ; menu selection? cp b jr z, .exitmenu ; CANCEL ld [$d0d8], a ld a, [$ffa9] ld b, a bit 1, b jr nz, .exitmenu ; B button? ld a, [$cfa9] dec a ld [CurPartyMon], a ld c, a ld b, $0 ld hl, PartySpecies add hl, bc ld a, [hl] ld [CurPartySpecies], a ld de, SFX_READ_TEXT_2 call PlaySFX call WaitSFX and a ret .exitmenu ld de, SFX_READ_TEXT_2 call PlaySFX call WaitSFX scf ret ; 0x5049a PrintPartyMenuText: ; 5049a ld hl, $c5b8 ld bc, $0212 call TextBox ld a, [PartyCount] and a jr nz, .haspokemon ld de, YouHaveNoPKMNString jr .gotstring .haspokemon ; 504ae ld a, [PartyMenuActionText] and $f ; drop high nibble ld hl, PartyMenuStrings ld e, a ld d, $0 add hl, de add hl, de ld a, [hli] ld d, [hl] ld e, a .gotstring ; 504be ld a, [Options] push af set 4, a ; disable text delay ld [Options], a ld hl, $c5e1 ; Coord call PlaceString pop af ld [Options], a ret ; 0x504d2 PartyMenuStrings: ; 0x504d2 dw ChooseAMonString dw UseOnWhichPKMNString dw WhichPKMNString dw TeachWhichPKMNString dw MoveToWhereString dw UseOnWhichPKMNString dw ChooseAMonString ; Probably used to be ChooseAFemalePKMNString dw ChooseAMonString ; Probably used to be ChooseAMalePKMNString dw ToWhichPKMNString ChooseAMonString: ; 0x504e4 db "Choose a #MON.@" UseOnWhichPKMNString: ; 0x504f3 db "Use on which ", $e1, $e2, "?@" WhichPKMNString: ; 0x50504 db "Which ", $e1, $e2, "?@" TeachWhichPKMNString: ; 0x5050e db "Teach which ", $e1, $e2, "?@" MoveToWhereString: ; 0x5051e db "Move to where?@" ChooseAFemalePKMNString: ; 0x5052d ; UNUSED db "Choose a ♀", $e1, $e2, ".@" ChooseAMalePKMNString: ; 0x5053b ; UNUSED db "Choose a ♂", $e1, $e2, ".@" ToWhichPKMNString: ; 0x50549 db "To which ", $e1, $e2, "?@" YouHaveNoPKMNString: ; 0x50556 db "You have no ", $e1, $e2, "!@" Function50566: ; 50566 ld a, [CurPartyMon] ld hl, PartyMon1Nickname call GetNick ld a, [PartyMenuActionText] and $f ld hl, Unknown_5057b call Function505c1 ret ; 5057b Unknown_5057b: ; 5057b dw UnknownText_0x50594 dw UnknownText_0x5059e dw UnknownText_0x505a3 dw UnknownText_0x505a8 dw UnknownText_0x50599 dw UnknownText_0x5058f dw UnknownText_0x505ad dw UnknownText_0x505b2 dw UnknownText_0x505b7 dw UnknownText_0x505bc ; 5058f UnknownText_0x5058f: ; 0x5058f ; recovered @ HP! text_jump UnknownText_0x1bc0a2 db "@" ; 0x50594 UnknownText_0x50594: ; 0x50594 ; 's cured of poison. text_jump UnknownText_0x1bc0bb db "@" ; 0x50599 UnknownText_0x50599: ; 0x50599 ; 's rid of paralysis. text_jump UnknownText_0x1bc0d2 db "@" ; 0x5059e UnknownText_0x5059e: ; 0x5059e ; 's burn was healed. text_jump UnknownText_0x1bc0ea db "@" ; 0x505a3 UnknownText_0x505a3: ; 0x505a3 ; was defrosted. text_jump UnknownText_0x1bc101 db "@" ; 0x505a8 UnknownText_0x505a8: ; 0x505a8 ; woke up. text_jump UnknownText_0x1bc115 db "@" ; 0x505ad UnknownText_0x505ad: ; 0x505ad ; 's health returned. text_jump UnknownText_0x1bc123 db "@" ; 0x505b2 UnknownText_0x505b2: ; 0x505b2 ; is revitalized. text_jump UnknownText_0x1bc13a db "@" ; 0x505b7 UnknownText_0x505b7: ; 0x505b7 ; grew to level @ !@ @ text_jump UnknownText_0x1bc14f db "@" ; 0x505bc UnknownText_0x505bc: ; 0x505bc ; came to its senses. text_jump UnknownText_0x1bc16e db "@" ; 0x505c1 Function505c1: ; 505c1 ld e, a ld d, 0 add hl, de add hl, de ld a, [hli] ld h, [hl] ld l, a ld a, [Options] push af set 4, a ld [Options], a call PrintText pop af ld [Options], a ret ; 505da Function505da:: ; 505da ld a, [PartyCount] and a jr z, .asm_5062c xor a ld c, 7 ld hl, EngineBuffer1 .asm_505e6 ld [hli], a dec c jr nz, .asm_505e6 xor a ld [CurPartyMon], a .asm_505ee call Function5062e jr nc, .asm_50605 ld a, [CurPartyMon] ld e, a ld d, 0 ld hl, $d03f add hl, de ld [hl], c ld a, [EngineBuffer1] or c ld [EngineBuffer1], a .asm_50605 ld a, [PartyCount] ld hl, CurPartyMon inc [hl] cp [hl] jr nz, .asm_505ee ld a, [EngineBuffer1] and $2 jr nz, .asm_50622 ld a, [EngineBuffer1] and $1 jr z, .asm_5062c call Function50658 xor a ret .asm_50622 ld a, BANK(UnknownScript_0x50669) ld hl, UnknownScript_0x50669 call CallScript scf ret .asm_5062c xor a ret ; 5062e Function5062e: ; 5062e ld a, $20 call GetPartyParamLocation ld a, [hl] and $8 ret z ld a, $22 call GetPartyParamLocation ld a, [hli] ld b, a ld c, [hl] or c ret z dec bc ld [hl], c dec hl ld [hl], b ld a, b or c jr nz, .asm_50654 ld a, $20 call GetPartyParamLocation ld [hl], $0 ld c, $2 scf ret .asm_50654 ld c, $1 scf ret ; 50658 Function50658: ; 50658 ld de, SFX_POISON call PlaySFX ld b, $2 ld a, $2e call Predef call DelayFrame ret ; 50669 UnknownScript_0x50669: ; 50669 3callasm Function50658 loadfont 3callasm Function5067b iffalse UnknownScript_0x50677 loadmovesprites end ; 50677 UnknownScript_0x50677: ; 50677 3jump UnknownScript_0x124c8 ; 5067b Function5067b: ; 5067b xor a ld [CurPartyMon], a ld de, $d03f .asm_50682 push de ld a, [de] and 2 jr z, .asm_5069c ld c, 7 callba ChangeHappiness callba GetPartyNick ld hl, PoisonFaintText call PrintText .asm_5069c pop de inc de ld hl, CurPartyMon inc [hl] ld a, [PartyCount] cp [hl] jr nz, .asm_50682 ld a, $14 call Predef ld a, d ld [ScriptVar], a ret ; 506b2 PoisonFaintText: ; 506b2 text_jump UnknownText_0x1c0acc db "@" ; 506b7 PoisonWhiteOutText: ; 506b7 text_jump UnknownText_0x1c0ada db "@" ; 506bc Function506bc: ; 506bc ld hl, UnknownScript_0x506c8 call Function31cd ld a, $1 ld [$d0ec], a ret ; 506c8 UnknownScript_0x506c8: ; 0x506c8 reloadmappart special $0035 3callasm GetPartyNick 2writetext UnknownText_0x50726 closetext 3callasm Function506ef iffalse UnknownScript_0x506e9 checkflag $0011 iftrue UnknownScript_0x506e5 battlecheck startbattle returnafterbattle end ; 0x506e5 UnknownScript_0x506e5: ; 0x506e5 3jump UnknownScript_0x135eb ; 0x506e9 UnknownScript_0x506e9: ; 0x506e9 2writetext UnknownText_0x5072b closetext loadmovesprites end ; 0x506ef Function506ef: ; 506ef callba Function97cfd jr nc, .asm_5071e ld hl, StatusFlags2 bit 2, [hl] jr nz, .asm_50712 callba Function2a111 ld a, b and a jr z, .asm_5071e callba Function2a14f jr nz, .asm_5071e jr .asm_50718 .asm_50712 callba Function97d31 .asm_50718 ld a, $1 ld [ScriptVar], a ret .asm_5071e xor a ld [ScriptVar], a ld [BattleType], a ret ; 50726 UnknownText_0x50726: ; 0x50726 ; used SWEET SCENT! text_jump UnknownText_0x1c0b03 db "@" ; 0x5072b UnknownText_0x5072b: ; 0x5072b ; Looks like there's nothing here… text_jump UnknownText_0x1c0b1a db "@" ; 0x50730 _Squirtbottle: ; 50730 ld hl, UnknownScript_0x5073c call Function31cd ld a, $1 ld [$d0ec], a ret ; 5073c UnknownScript_0x5073c: ; 0x5073c reloadmappart special $0035 3callasm Function50753 iffalse UnknownScript_0x5074b 3jump WateredWeirdTreeScript ; 0x5074b UnknownScript_0x5074b: ; 0x5074b jumptext UnknownText_0x5074e ; 0x5074e UnknownText_0x5074e: ; 0x5074e ; sprinkled water. But nothing happened… text_jump UnknownText_0x1c0b3b db "@" ; 0x50753 Function50753: ; 50753 ld a, [MapGroup] cp GROUP_ROUTE_36 jr nz, .asm_50774 ld a, [MapNumber] cp MAP_ROUTE_36 jr nz, .asm_50774 callba Functioncf0d jr c, .asm_50774 ld a, d cp 23 jr nz, .asm_50774 ld a, $1 ld [ScriptVar], a ret .asm_50774 xor a ld [ScriptVar], a ret ; 50779 _CardKey: ; 50779 ld a, [MapGroup] cp GROUP_RADIO_TOWER_3F jr nz, .asm_507a9 ld a, [MapNumber] cp MAP_RADIO_TOWER_3F jr nz, .asm_507a9 ld a, [PlayerDirection] and $c cp UP << 2 jr nz, .asm_507a9 call GetFacingTileCoord ld a, d cp 18 jr nz, .asm_507a9 ld a, e cp 6 jr nz, .asm_507a9 ld hl, UnknownScript_0x507af call Function31cd ld a, $1 ld [$d0ec], a ret .asm_507a9 ld a, $0 ld [$d0ec], a ret ; 507af UnknownScript_0x507af: ; 0x507af loadmovesprites 3jump MapRadioTower3FSignpost2Script ; 0x507b4 _BasementKey: ; 507b4 ld a, [MapGroup] cp GROUP_WAREHOUSE_ENTRANCE jr nz, .asm_507db ld a, [MapNumber] cp MAP_WAREHOUSE_ENTRANCE jr nz, .asm_507db call GetFacingTileCoord ld a, d cp 22 jr nz, .asm_507db ld a, e cp 10 jr nz, .asm_507db ld hl, UnknownScript_0x507e1 call Function31cd ld a, $1 ld [$d0ec], a ret .asm_507db ld a, $0 ld [$d0ec], a ret ; 507e1 UnknownScript_0x507e1: ; 0x507e1 loadmovesprites 3jump MapWarehouseEntranceSignpost0Script ; 0x507e6 _SacredAsh: ; 507e6 ld a, $0 ld [$d0ec], a call CheckAnyFaintedMon ret nc ld hl, UnknownScript_0x50821 call Function31cd ld a, $1 ld [$d0ec], a ret ; 507fb CheckAnyFaintedMon: ; 507fb ld de, PartyMon2 - PartyMon1 ld bc, PartySpecies ld hl, PartyMon1HP ld a, [PartyCount] and a ret z .loop push af push hl ld a, [bc] inc bc cp EGG jr z, .next ld a, [hli] or [hl] jr z, .asm_5081d .next pop hl add hl, de pop af dec a jr nz, .loop xor a ret .asm_5081d pop hl pop af scf ret ; 50821 UnknownScript_0x50821: ; 0x50821 special $001b reloadmappart playsound SFX_WARP_TO special $002e special $0031 special $002e special $0031 special $002e special $0031 waitbutton 2writetext UnknownText_0x50845 playsound SFX_CAUGHT_MON waitbutton closetext loadmovesprites end ; 0x50845 UnknownText_0x50845: ; 0x50845 ; 's #MON were all healed! text_jump UnknownText_0x1c0b65 db "@" ; 0x5084a Function5084a: ; 5084a ld a, [CurPartyMon] ld e, a call Function508d5 ld a, [CurPartySpecies] ld [CurSpecies], a call GetBaseData ld a, [MonType] ld hl, PartyMon1Species ld bc, PartyMon2 - PartyMon1 and a jr z, .asm_5087b ld hl, OTPartyMon1Species ld bc, OTPartyMon2 - OTPartyMon1 cp $1 jr z, .asm_5087b ld bc, $0020 callab Functione5bb jr .asm_5088a .asm_5087b ld a, [CurPartyMon] call AddNTimes ld de, TempMonSpecies ld bc, $0030 call CopyBytes .asm_5088a ret ; 5088b Function5088b: ; 5088b ld bc, $d018 jr Function50893 ; 50890 Function50890: ; 50890 ld bc, TempMon ; fallthrough ; 50893 Function50893: ; 50893 ld hl, TempMonLevel - TempMon add hl, bc ld a, [hl] ld [CurPartyLevel], a ld hl, TempMonMaxHP - TempMon add hl, bc ld d, h ld e, l ld hl, TempMonExp + 2 - TempMon add hl, bc push bc ld b, $1 ld a, $c call Predef pop bc ld hl, TempMonHP - TempMon add hl, bc ld d, h ld e, l ld a, [CurPartySpecies] cp EGG jr nz, .asm_508c1 xor a ld [de], a inc de ld [de], a jr .asm_508cd .asm_508c1 push bc ld hl, TempMonMaxHP - TempMon add hl, bc ld bc, 2 call CopyBytes pop bc .asm_508cd ld hl, TempMonStatus - TempMon add hl, bc xor a ld [hli], a ld [hl], a ret ; 508d5 Function508d5: ; 508d5 ld a, [MonType] and a ; PARTYMON jr z, .asm_508e7 cp OTPARTYMON jr z, .asm_508ec cp BOXMON jr z, .asm_508f1 cp $3 jr z, .asm_50900 ; WILDMON .asm_508e7 ld hl, PartySpecies jr .asm_50905 .asm_508ec ld hl, OTPartySpecies jr .asm_50905 .asm_508f1 ld a, 1 ; BANK(BoxSpecies) call GetSRAMBank ld hl, BoxSpecies call .asm_50905 call CloseSRAM ret .asm_50900 ld a, [BreedMon1Species] jr .asm_50909 .asm_50905 ld d, 0 add hl, de ld a, [hl] .asm_50909 ld [CurPartySpecies], a ret ; 5090d INCLUDE "text/types.asm" Function50a28: ; 50a28 ld hl, Strings50a42 ld a, [TrainerClass] dec a ld c, a ld b, 0 add hl, bc add hl, bc ld a, [hli] ld h, [hl] ld l, a ld de, StringBuffer1 .copy ld a, [hli] ld [de], a inc de cp "@" jr nz, .copy ret ; 50a42 Strings50a42: ; 50a42 ; Untranslated trainer class names from Red. dw .Youngster dw .BugCatcher dw .Lass dw OTName dw .JrTrainerM dw .JrTrainerF dw .Pokemaniac dw .SuperNerd dw OTName dw OTName dw .Burglar dw .Engineer dw .Jack dw OTName dw .Swimmer dw OTName dw OTName dw .Beauty dw OTName dw .Rocker dw .Juggler dw OTName dw OTName dw .Blackbelt dw OTName dw .ProfOak dw .Chief dw .Scientist dw OTName dw .Rocket dw .CooltrainerM dw .CooltrainerF dw OTName dw OTName dw OTName dw OTName dw OTName dw OTName dw OTName dw OTName dw OTName dw OTName dw OTName dw OTName dw OTName dw OTName dw OTName .Youngster db "たんパン@" .BugCatcher db "むしとり@" .Lass db "ミニスカ@" .JrTrainerM db "ボーイ@" .JrTrainerF db "ガール@" .Pokemaniac db "マニア@" .SuperNerd db "りかけい@" .Burglar db "どろぼう@" .Engineer db "ォヤジ@" .Jack db "ジャック@" .Swimmer db "かいパン@" .Beauty db "おねえさん@" .Rocker db "グループ@" .Juggler db "ジャグラー@" .Blackbelt db "からて@" .ProfOak db "ォーキド@" .Chief db "チーフ@" .Scientist db "けんきゅういん@" .Rocket db "だんいん@" .CooltrainerM db "エりート♂@" .CooltrainerF db "エりート♀@" ; 50b0a DrawPlayerHP: ; 50b0a ld a, $1 jr DrawHP DrawEnemyHP: ; 50b0e ld a, $2 DrawHP: ; 50b10 ld [$d10a], a push hl push bc ld a, [MonType] cp BOXMON jr z, .asm_50b30 ld a, [TempMonHP] ld b, a ld a, [TempMonHP + 1] ld c, a ; Any HP? or b jr nz, .asm_50b30 xor a ld c, a ld e, a ld a, 6 ld d, a jp .asm_50b4a .asm_50b30 ld a, [TempMonMaxHP] ld d, a ld a, [TempMonMaxHP + 1] ld e, a ld a, [MonType] cp BOXMON jr nz, .asm_50b41 ld b, d ld c, e .asm_50b41 ld a, $4 call Predef ld a, 6 ld d, a ld c, a .asm_50b4a ld a, c pop bc ld c, a pop hl push de push hl push hl call DrawHPBar pop hl ; Print HP ld bc, $0015 ; move (1,1) add hl, bc ld de, TempMonHP ld a, [MonType] cp BOXMON jr nz, .asm_50b66 ld de, TempMonMaxHP .asm_50b66 ld bc, $0203 call PrintNum ld a, "/" ld [hli], a ; Print max HP ld de, TempMonMaxHP ld bc, $0203 call PrintNum pop hl pop de ret ; 50b7b Function50b7b: ; 50b7b ; Print a monster's stats on level up. push bc push hl ld de, String_50bb5 call PlaceString pop hl pop bc add hl, bc ld bc, $0014 add hl, bc ld de, TempMonAtk ld bc, $0203 call Function50bab ld de, TempMonDef call Function50bab ld de, TempMonSpclAtk call Function50bab ld de, TempMonSpclDef call Function50bab ld de, TempMonSpd jp PrintNum ; 50bab Function50bab: ; 50bab push hl call PrintNum pop hl ld de, $0028 add hl, de ret ; 50bb5 String_50bb5: ; 50bb5 db "ATTACK" next "DEFENSE" next "SPCL.ATK" next "SPCL.DEF" next "SPEED" next "@" ; 50bdd GetGender: ; 50bdd ; Return the gender of a given monster in a. ; 1: male ; 0: female ; c: genderless ; This is determined by comparing the Attack and Speed DVs ; with the species' gender ratio. ; Figure out what type of monster struct we're looking at. ; 0: PartyMon ld hl, PartyMon1DVs ld bc, PartyMon2 - PartyMon1 ld a, [MonType] and a jr z, .PartyMon ; 1: OTPartyMon ld hl, OTPartyMon1DVs dec a jr z, .PartyMon ; 2: BoxMon ld hl, BoxMon1DVs ld bc, BoxMon2 - BoxMon1 dec a jr z, .BoxMon ; 3: Unknown ld hl, TempMonDVs dec a jr z, .DVs ; else: WildMon ld hl, EnemyMonDVs jr .DVs ; Get our place in the party/box. .PartyMon .BoxMon ld a, [CurPartyMon] call AddNTimes .DVs ; BoxMon data is read directly from SRAM. ld a, [MonType] cp BOXMON ld a, 1 call z, GetSRAMBank ; Attack DV ld a, [hli] and $f0 ld b, a ; Speed DV ld a, [hl] and $f0 swap a ; Put our DVs together. or b ld b, a ; Close SRAM if we were dealing with a BoxMon. ld a, [MonType] cp BOXMON call z, CloseSRAM ; We need the gender ratio to do anything with this. push bc ld a, [CurPartySpecies] dec a ld hl, BaseData + BaseGender - CurBaseData ld bc, BaseData1 - BaseData call AddNTimes pop bc ld a, BANK(BaseData) call GetFarByte ; The higher the ratio, the more likely the monster is to be female. cp $ff jr z, .Genderless and a jr z, .Male cp $fe jr z, .Female ; Values below the ratio are male, and vice versa. cp b jr c, .Male .Female xor a ret .Male ld a, 1 and a ret .Genderless scf ret ; 50c50 Function50c50: ; 50c50 ld a, [$d0eb] inc a ld c, a ld a, $4 sub c ld b, a push hl ld a, [Buffer1] ld e, a ld d, $0 ld a, $3e call Function50cc9 ld a, b and a jr z, .asm_50c6f ld c, a ld a, $e3 call Function50cc9 .asm_50c6f pop hl inc hl inc hl inc hl ld d, h ld e, l ld hl, TempMonMove1 ld b, $0 .asm_50c7a ld a, [hli] and a jr z, .asm_50cc8 push bc push hl push de ld hl, $cfa9 ld a, [hl] push af ld [hl], b push hl callab Functionf8ec pop hl pop af ld [hl], a pop de pop hl push hl ld bc, $0014 add hl, bc ld a, [hl] and $3f ld [$d077], a ld h, d ld l, e push hl ld de, $d077 ld bc, $0102 call PrintNum ld a, $f3 ld [hli], a ld de, $d265 ld bc, $0102 call PrintNum pop hl ld a, [Buffer1] ld e, a ld d, $0 add hl, de ld d, h ld e, l pop hl pop bc inc b ld a, b cp $4 jr nz, .asm_50c7a .asm_50cc8 ret ; 50cc9 Function50cc9: ; 50cc9 .asm_50cc9 ld [hli], a ld [hld], a add hl, de dec c jr nz, .asm_50cc9 ret ; 50cd0 Function50cd0: ; 50cd0 .asm_50cd0 ld [hl], $32 inc hl ld [hl], $3e dec hl add hl, de dec c jr nz, .asm_50cd0 ret ; 50cdb Function50cdb: ; 50cdb push hl push hl ld hl, PartyMon1Nickname ld a, [CurPartyMon] call GetNick pop hl call PlaceString call Function5084a pop hl ld a, [CurPartySpecies] cp EGG jr z, .asm_50d09 push hl ld bc, $fff4 add hl, bc ld b, $0 call DrawEnemyHP pop hl ld bc, $0005 add hl, bc push de call PrintLevel pop de .asm_50d09 ret ; 50d0a Function50d0a: ; 50d0a push de inc de inc de ld a, [de] ld b, a inc de ld a, [de] or b pop de jr nz, Function50d2e push de ld de, FntString call Function50d25 pop de ld a, $1 and a ret ; 50d22 FntString: ; 50d22 db "FNT@" ; 50d25 Function50d25: ; 50d25 ld a, [de] inc de ld [hli], a ld a, [de] inc de ld [hli], a ld a, [de] ld [hl], a ret ; 50d2e Function50d2e: ; 50d2e push de ld a, [de] ld de, PsnString bit PSN, a jr nz, .asm_50d53 ld de, BrnString bit BRN, a jr nz, .asm_50d53 ld de, FrzString bit FRZ, a jr nz, .asm_50d53 ld de, ParString bit PAR, a jr nz, .asm_50d53 ld de, SlpString and SLP jr z, .asm_50d59 .asm_50d53 call Function50d25 ld a, $1 and a .asm_50d59 pop de ret ; 50d5b SlpString: db "SLP@" PsnString: db "PSN@" BrnString: db "BRN@" FrzString: db "FRZ@" ParString: db "PAR@" ; 50d6f Function50d6f: ; 50d6f ld de, $d25e ld b, $0 .asm_50d74 ld a, [de] inc de and a jr z, .asm_50da7 push de push hl push hl ld [CurSpecies], a ld a, $2 ld [$cf61], a call GetName ld de, StringBuffer1 pop hl push bc call PlaceString pop bc ld a, b ld [$d0eb], a inc b pop hl push bc ld a, [Buffer1] ld c, a ld b, $0 add hl, bc pop bc pop de ld a, b cp $4 jr z, .asm_50db8 jr .asm_50d74 .asm_50da7 ld a, b .asm_50da8 push af ld [hl], $e3 ld a, [Buffer1] ld c, a ld b, $0 add hl, bc pop af inc a cp $4 jr nz, .asm_50da8 .asm_50db8 ret ; 50db9 Function50db9: ; 50db9 ld a, [$d263] cp $1 jr nz, .asm_50dca ld hl, OTPartyCount ld de, OTPartyMon1OT ld a, $6 jr .asm_50dfc .asm_50dca cp $4 jr nz, .asm_50dd8 ld hl, PartyCount ld de, PartyMon1OT ld a, $5 jr .asm_50dfc .asm_50dd8 cp $5 jr nz, .asm_50de6 ld hl, CurMart ld de, PokemonNames ld a, $1 jr .asm_50dfc .asm_50de6 cp $2 jr nz, .asm_50df4 ld hl, NumItems ld de, Function50000 ld a, $4 jr .asm_50dfc .asm_50df4 ld hl, CurMart ld de, Function50000 ld a, $4 .asm_50dfc ld [$cf61], a ld a, l ld [$d100], a ld a, h ld [$d101], a ld a, e ld [$d102], a ld a, d ld [$d103], a ld bc, $67c1 ld a, c ld [$d104], a ld a, b ld [$d105], a ret ; 50e1b Function50e1b: ; 50e1b ld a, [TempMonSpecies] ld [CurSpecies], a call GetBaseData ld d, 1 .asm_50e26 inc d ld a, d cp MAX_LEVEL + 1 jr z, .asm_50e45 call Function50e47 push hl ld hl, $d118 ld a, [$ffb6] ld c, a ld a, [hld] sub c ld a, [$ffb5] ld c, a ld a, [hld] sbc c ld a, [hMultiplicand] ld c, a ld a, [hl] sbc c pop hl jr nc, .asm_50e26 .asm_50e45 dec d ret ; 50e47 Function50e47: ; 50e47 ld a, [BaseGrowthRate] add a add a ld c, a ld b, 0 ld hl, GrowthRates add hl, bc call Function50eed ld a, d ld [hMultiplier], a call Multiply ld a, [hl] and $f0 swap a ld [hMultiplier], a call Multiply ld a, [hli] and $f ld [hMultiplier], a ld b, $4 call Divide ld a, [hMultiplicand] push af ld a, [$ffb5] push af ld a, [$ffb6] push af call Function50eed ld a, [hl] and $7f ld [hMultiplier], a call Multiply ld a, [hMultiplicand] push af ld a, [$ffb5] push af ld a, [$ffb6] push af ld a, [hli] push af xor a ld [hMultiplicand], a ld [$ffb5], a ld a, d ld [$ffb6], a ld a, [hli] ld [hMultiplier], a call Multiply ld b, [hl] ld a, [$ffb6] sub b ld [$ffb6], a ld b, $0 ld a, [$ffb5] sbc b ld [$ffb5], a ld a, [hMultiplicand] sbc b ld [hMultiplicand], a pop af and $80 jr nz, .asm_50ec8 pop bc ld a, [$ffb6] add b ld [$ffb6], a pop bc ld a, [$ffb5] adc b ld [$ffb5], a pop bc ld a, [hMultiplicand] adc b ld [hMultiplicand], a jr .asm_50eda .asm_50ec8 pop bc ld a, [$ffb6] sub b ld [$ffb6], a pop bc ld a, [$ffb5] sbc b ld [$ffb5], a pop bc ld a, [hMultiplicand] sbc b ld [hMultiplicand], a .asm_50eda pop bc ld a, [$ffb6] add b ld [$ffb6], a pop bc ld a, [$ffb5] adc b ld [$ffb5], a pop bc ld a, [hMultiplicand] adc b ld [hMultiplicand], a ret ; 50eed Function50eed: ; 50eed xor a ld [hMultiplicand], a ld [$ffb5], a ld a, d ld [$ffb6], a ld [hMultiplier], a jp Multiply ; 50efa GrowthRates: ; 50efa growth_rate: MACRO ; [1]/[2]*n^3 + [3]*n^2 + [4]*n - [5] dn \1, \2 IF \3 & $80 ; signed db ((\3 ^ $ff) + 1) | $80 ELSE db \3 ENDC db \4, \5 ENDM growth_rate 1, 1, 0, 0, 0 ; Medium Fast growth_rate 3, 4, 10, 0, 30 growth_rate 3, 4, 20, 0, 70 growth_rate 6, 5, -15, 100, 140 ; Medium Slow growth_rate 4, 5, 0, 0, 0 ; Fast growth_rate 5, 4, 0, 0, 0 ; Slow ; 50f12 Function50f12: ld a, [$d0e3] dec a ld [$d1ec], a ld b, a ld a, [$cfa9] dec a ld [Buffer2], a ; $d1eb (aliases: MovementType) cp b jr z, .asm_50f33 call Function50f62 ld a, [$d1ec] call Function50f34 ld a, [Buffer2] ; $d1eb (aliases: MovementType) call Function50f34 .asm_50f33 ret ; known jump sources: 50f2a (14:4f2a), 50f30 (14:4f30) Function50f34: ; 50f34 (14:4f34) push af ld hl, $c4b4 ld bc, $28 call AddNTimes ld bc, $28 ld a, $7f call ByteFill pop af ld hl, Sprites ; $c400 ld bc, $10 call AddNTimes ld de, $4 ld c, $4 .asm_50f55 ld [hl], $a0 add hl, de dec c jr nz, .asm_50f55 ld de, SFX_SWITCH_POKEMON call WaitPlaySFX ret ; known jump sources: 50f24 (14:4f24) Function50f62: ; 50f62 (14:4f62) push hl push de push bc ld bc, PartySpecies ; $dcd8 ld a, [Buffer2] ; $d1eb (aliases: MovementType) ld l, a ld h, $0 add hl, bc ld d, h ld e, l ld a, [$d1ec] ld l, a ld h, $0 add hl, bc ld a, [hl] push af ld a, [de] ld [hl], a pop af ld [de], a ld a, [Buffer2] ; $d1eb (aliases: MovementType) ld hl, PartyMons ; $dcdf (aliases: PartyMon1, PartyMon1Species) ld bc, $30 call AddNTimes push hl ld de, DefaultFlypoint ; $d002 ld bc, $30 call CopyBytes ld a, [$d1ec] ld hl, PartyMons ; $dcdf (aliases: PartyMon1, PartyMon1Species) ld bc, $30 call AddNTimes pop de push hl ld bc, $30 call CopyBytes pop de ld hl, DefaultFlypoint ; $d002 ld bc, $30 call CopyBytes ld a, [Buffer2] ; $d1eb (aliases: MovementType) ld hl, PartyMonOT ; $ddff (aliases: PartyMon1OT) call SkipNames push hl call Function51036 ld a, [$d1ec] ld hl, PartyMonOT ; $ddff (aliases: PartyMon1OT) call SkipNames pop de push hl call Function51039 pop de ld hl, DefaultFlypoint ; $d002 call Function51039 ld hl, PartyMonNicknames ; $de41 (aliases: PartyMon1Nickname) ld a, [Buffer2] ; $d1eb (aliases: MovementType) call SkipNames push hl call Function51036 ld hl, PartyMonNicknames ; $de41 (aliases: PartyMon1Nickname) ld a, [$d1ec] call SkipNames pop de push hl call Function51039 pop de ld hl, DefaultFlypoint ; $d002 call Function51039 ld hl, $a600 ld a, [Buffer2] ; $d1eb (aliases: MovementType) ld bc, $2f call AddNTimes push hl ld de, DefaultFlypoint ; $d002 ld bc, $2f ld a, $0 call GetSRAMBank call CopyBytes ld hl, $a600 ld a, [$d1ec] ld bc, $2f call AddNTimes pop de push hl ld bc, $2f call CopyBytes pop de ld hl, DefaultFlypoint ; $d002 ld bc, $2f call CopyBytes call CloseSRAM pop bc pop de pop hl ret ; known jump sources: 50fbc (14:4fbc), 50fde (14:4fde) Function51036: ; 51036 (14:5036) ld de, DefaultFlypoint ; $d002 ; known jump sources: 50fca (14:4fca), 50fd1 (14:4fd1), 50fec (14:4fec), 50ff3 (14:4ff3) Function51039: ; 51039 (14:5039) ld bc, $b call CopyBytes ret GetUnownLetter: ; 51040 ; Return Unown letter in UnownLetter based on DVs at hl ; Take the middle 2 bits of each DV and place them in order: ; AtkDefDV | SpdSpcDV ; .ww..xx. .yy..zz. ; atk ld a, [hl] and %01100000 sla a ld b, a ; def ld a, [hli] and %00000110 swap a srl a or b ld b, a ; spd ld a, [hl] and %01100000 swap a sla a or b ld b, a ; spc ld a, [hl] and %00000110 srl a or b ; Divide by 10 to get 0-25 ld [hDividend + 3], a xor a ld [hDividend], a ld [hDividend + 1], a ld [hDividend + 2], a ld a, 10 ld [hDivisor], a ld b, $4 call Divide ; Increment to get 1-26 ld a, [hQuotient + 2] inc a ld [UnownLetter], a ret ; 51077 Function51077: ; 51077 ld a, [CurPartySpecies] ld [CurSpecies], a call IsAPokemon ret c ld a, [rSVBK] push af call Function510a5 pop af ld [rSVBK], a ret ; 5108b Function5108b: ; 5108b ld a, [CurPartySpecies] ld [CurSpecies], a call IsAPokemon ret c ld a, [rSVBK] push af xor a ld [hBGMapMode], a call Function510a5 call Function51103 pop af ld [rSVBK], a ret ; 510a5 Function510a5: ; 510a5 push de call GetBaseData ld a, [BasePicSize] and $f ld b, a push bc call Function510d7 ld a, $6 ld [rSVBK], a ld a, b ld de, $d800 call FarDecompress pop bc ld hl, Unkn1Pals ld de, $d800 call Function512ab pop hl push hl ld de, Unkn1Pals ld c, 7 * 7 ld a, [hROMBank] ld b, a call Get2bpp pop hl ret ; 510d7 Function510d7: ; 510d7 GLOBAL PicPointers, UnownPicPointers ld a, [CurPartySpecies] cp UNOWN jr z, .asm_510e5 ld a, [CurPartySpecies] ld d, BANK(PicPointers) jr .asm_510ea .asm_510e5 ld a, [UnownLetter] ld d, BANK(UnownPicPointers) .asm_510ea ld hl, Function50000 dec a ld bc, $0006 call AddNTimes ld a, d call GetFarByte call Function511c5 push af inc hl ld a, d call GetFarHalfword pop bc ret ; 51103 Function51103: ; 51103 ld a, $1 ld [rVBK], a push hl ld de, Unkn1Pals ld c, $31 ld a, [hROMBank] ld b, a call Get2bpp pop hl ld de, $0310 add hl, de push hl ld a, $1 ld hl, BasePicSize call GetFarWRAMByte pop hl and $f ld de, $d990 ld c, 5 * 5 cp 5 jr z, .asm_5113b ld de, $da40 ld c, 6 * 6 cp 6 jr z, .asm_5113b ld de, $db10 ld c, 7 * 7 .asm_5113b push hl push bc call Function5114f pop bc pop hl ld de, Unkn1Pals ld a, [hROMBank] ld b, a call Get2bpp xor a ld [rVBK], a ret ; 5114f Function5114f: ; 5114f ld hl, Unkn1Pals swap c ld a, c and $f ld b, a ld a, c and $f0 ld c, a push bc call Function512f2 pop bc .asm_51161 push bc ld c, $0 call Function512f2 pop bc dec b jr nz, .asm_51161 ret ; 5116c Function5116c: ; 5116c ld a, [CurPartySpecies] call IsAPokemon ret c ld a, [CurPartySpecies] ld b, a ld a, [UnownLetter] ld c, a ld a, [rSVBK] push af ld a, $6 ld [rSVBK], a push de ; These are assumed to be at the same ; address in their respective banks. GLOBAL PicPointers, UnownPicPointers ld hl, PicPointers ; UnownPicPointers ld a, b ld d, BANK(PicPointers) cp UNOWN jr nz, .asm_51190 ld a, c ld d, BANK(UnownPicPointers) .asm_51190 dec a ld bc, $0006 call AddNTimes ld bc, $0003 add hl, bc ld a, d call GetFarByte call Function511c5 push af inc hl ld a, d call GetFarHalfword ld de, Unkn1Pals pop af call FarDecompress ld hl, Unkn1Pals ld c, $24 call Function5127c pop hl ld de, Unkn1Pals ld a, [hROMBank] ld b, a call Get2bpp pop af ld [rSVBK], a ret ; 511c5 Function511c5: ; 511c5 push hl push bc sub $12 ld c, a ld b, 0 ld hl, Unknown_511d4 add hl, bc ld a, [hl] pop bc pop hl ret ; 511d4 Unknown_511d4: ; 511d4 INCBIN "baserom.gbc",$511d4,$5120d - $511d4 Function5120d: ; 5120d ld a, [TrainerClass] and a ret z cp NUM_TRAINER_CLASSES ret nc call WaitBGMap xor a ld [hBGMapMode], a ld hl, Function50000 ld a, [TrainerClass] dec a ld bc, $0003 call AddNTimes ld a, [rSVBK] push af ld a, $6 ld [rSVBK], a push de ld a, $4a call GetFarByte call Function511c5 push af inc hl ld a, $4a call GetFarHalfword pop af ld de, $d000 call FarDecompress pop hl ld de, $d000 ld c, $31 ld a, [hROMBank] ld b, a call Get2bpp pop af ld [rSVBK], a call WaitBGMap ld a, $1 ld [hBGMapMode], a ret ; 5125d DecompressPredef: ; 5125d ; Decompress lz data from b:hl to scratch space at 6:d000, then copy it to address de. ld a, [rSVBK] push af ld a, 6 ld [rSVBK], a push de push bc ld a, b ld de, $d000 call FarDecompress pop bc ld de, $d000 pop hl ld a, [hROMBank] ld b, a call Get2bpp pop af ld [rSVBK], a ret ; 5127c Function5127c: ; 5127c push de push bc ld a, [$c2c6] and a jr z, .asm_512a8 ld a, c cp $31 ld de, $0310 jr z, .asm_51296 cp $24 ld de, $0240 jr z, .asm_51296 ld de, $0190 .asm_51296 ld a, [hl] ld b, $0 ld c, $8 .asm_5129b rra rl b dec c jr nz, .asm_5129b ld a, b ld [hli], a dec de ld a, e or d jr nz, .asm_51296 .asm_512a8 pop bc pop de ret ; 512ab Function512ab: ; 512ab ld a, b cp $6 jr z, .asm_512bd cp $5 jr z, .asm_512d2 .asm_512b4 ld c, $70 call Function512f2 dec b jr nz, .asm_512b4 ret .asm_512bd ld c, $70 xor a call Function512ed .asm_512c3 ld c, $10 xor a call Function512ed ld c, $60 call Function512f2 dec b jr nz, .asm_512c3 ret .asm_512d2 ld c, $70 xor a call Function512ed .asm_512d8 ld c, $20 xor a call Function512ed ld c, $50 call Function512f2 dec b jr nz, .asm_512d8 ld c, $70 xor a call Function512ed ret ; 512ed Function512ed: ; 512ed .asm_512ed ld [hli], a dec c jr nz, .asm_512ed ret ; 512f2 Function512f2: ; 512f2 ld a, [$c2c6] and a jr nz, .asm_512ff .asm_512f8 ld a, [de] inc de ld [hli], a dec c jr nz, .asm_512f8 ret .asm_512ff push bc .asm_51300 ld a, [de] inc de ld b, a xor a rr b rla rr b rla rr b rla rr b rla rr b rla rr b rla rr b rla rr b rla ld [hli], a dec c jr nz, .asm_51300 pop bc ret ; 51322 Function51322: ; 51322 ld a, $1 call GetSRAMBank ld hl, BoxCount call Function513cb ld a, [BoxCount] dec a ld [$d265], a ld hl, BoxMon1Nickname ld bc, $000b ld de, DefaultFlypoint call Function513e0 ld a, [BoxCount] dec a ld [$d265], a ld hl, BoxMon1OT ld bc, $000b ld de, $d00d call Function513e0 ld a, [BoxCount] dec a ld [$d265], a ld hl, BoxMon1Species ld bc, $0020 ld de, $d018 call Function513e0 ld hl, $d01a ld de, TempMonMove1 ld bc, $0004 call CopyBytes ld hl, $d02f ld de, TempMonPP ld bc, $0004 call CopyBytes ld a, [CurPartyMon] ld b, a callba Functiondcb6 jp CloseSRAM ; 5138b Function5138b: ; 5138b ld hl, PartyCount call Function513cb ld a, [PartyCount] dec a ld [$d265], a ld hl, PartyMon1Nickname ld bc, $000b ld de, DefaultFlypoint call Function513e0 ld a, [PartyCount] dec a ld [$d265], a ld hl, PartyMon1OT ld bc, $000b ld de, $d00d call Function513e0 ld a, [PartyCount] dec a ld [$d265], a ld hl, PartyMon1Species ld bc, $0030 ld de, $d018 call Function513e0 ret ; 513cb Function513cb: ; 513cb inc [hl] inc hl ld a, [CurPartyMon] ld c, a ld b, $0 add hl, bc ld a, [CurPartySpecies] ld c, a .asm_513d8 ld a, [hl] ld [hl], c inc hl inc c ld c, a jr nz, .asm_513d8 ret ; 513e0 Function513e0: ; 513e0 push de push hl push bc ld a, [$d265] dec a call AddNTimes push hl add hl, bc ld d, h ld e, l pop hl .asm_513ef push bc ld a, [$d265] ld b, a ld a, [CurPartyMon] cp b pop bc jr z, .asm_51415 push hl push de push bc call CopyBytes pop bc pop de pop hl push hl ld a, l sub c ld l, a ld a, h sbc b ld h, a pop de ld a, [$d265] dec a ld [$d265], a jr .asm_513ef .asm_51415 pop bc pop hl ld a, [CurPartyMon] call AddNTimes ld d, h ld e, l pop hl call CopyBytes ret ; 51424 BaseData:: INCLUDE "stats/base_stats.asm" PokemonNames:: INCLUDE "stats/pokemon_names.asm" INCBIN "baserom.gbc",$53d84,$53e2e - $53d84 SECTION "bank19", ROMX, BANK[$19] INCLUDE "text/phone/extra.asm" SECTION "bank20", ROMX, BANK[$20] DoPlayerMovement:: ; 80000 call GetMovementInput ld a, $3e ; standing ld [MovementAnimation], a xor a ld [$d041], a call GetPlayerMovement ld c, a ld a, [MovementAnimation] ld [$c2de], a ret ; 80017 GetMovementInput: ; 80017 ld a, [hJoyDown] ld [CurInput], a ; Standing downhill instead moves down. ld hl, BikeFlags bit 2, [hl] ; downhill ret z ld c, a and $f0 ret nz ld a, c or D_DOWN ld [CurInput], a ret ; 8002d GetPlayerMovement: ; 8002d ld a, [PlayerState] cp PLAYER_NORMAL jr z, .Normal cp PLAYER_SURF jr z, .Surf cp PLAYER_SURF_PIKA jr z, .Surf cp PLAYER_BIKE jr z, .Normal cp PLAYER_SLIP jr z, .Board .Normal call CheckForcedMovementInput call GetMovementAction call CheckTileMovement ret c call CheckTurning ret c call TryStep ret c call TryJumpLedge ret c call CheckEdgeWarp ret c jr .NotMoving .Surf call CheckForcedMovementInput call GetMovementAction call CheckTileMovement ret c call CheckTurning ret c call TrySurfStep ret c jr .NotMoving .Board call CheckForcedMovementInput call GetMovementAction call CheckTileMovement ret c call CheckTurning ret c call TryStep ret c call TryJumpLedge ret c call CheckEdgeWarp ret c ld a, [WalkingDirection] cp STANDING jr z, .HitWall call PlayBump .HitWall call StandInPlace xor a ret .NotMoving ld a, [WalkingDirection] cp STANDING jr z, .Standing ; Walking into an edge warp won't bump. ld a, [$d041] and a jr nz, .CantMove call PlayBump .CantMove call WalkInPlace xor a ret .Standing call StandInPlace xor a ret ; 800b7 CheckTileMovement: ; 800b7 ; Tiles such as waterfalls and warps move the player ; in a given direction, overriding input. ld a, [StandingTile] ld c, a call CheckWhirlpoolTile jr c, .asm_800c4 ld a, 3 scf ret .asm_800c4 and $f0 cp $30 ; moving water jr z, .water cp $40 ; moving land 1 jr z, .land1 cp $50 ; moving land 2 jr z, .land2 cp $70 ; warps jr z, .warps jr .asm_8013c .water ld a, c and 3 ld c, a ld b, 0 ld hl, .water_table add hl, bc ld a, [hl] ld [WalkingDirection], a jr .asm_8013e .water_table db RIGHT db LEFT db UP db DOWN .land1 ld a, c and 7 ld c, a ld b, 0 ld hl, .land1_table add hl, bc ld a, [hl] cp STANDING jr z, .asm_8013c ld [WalkingDirection], a jr .asm_8013e .land1_table db STANDING db RIGHT db LEFT db UP db DOWN db STANDING db STANDING db STANDING .land2 ld a, c and 7 ld c, a ld b, 0 ld hl, .land2_table add hl, bc ld a, [hl] cp STANDING jr z, .asm_8013c ld [WalkingDirection], a jr .asm_8013e .land2_table db RIGHT db LEFT db UP db DOWN db STANDING db STANDING db STANDING db STANDING .warps ld a, c cp $71 ; door jr z, .down cp $79 jr z, .down cp $7a ; stairs jr z, .down cp $7b ; cave jr nz, .asm_8013c .down ld a, DOWN ld [WalkingDirection], a jr .asm_8013e .asm_8013c xor a ret .asm_8013e ld a, STEP_WALK call DoStep ld a, 5 scf ret ; 80147 CheckTurning: ; 80147 ; If the player is turning, change direction first. This also lets ; the player change facing without moving by tapping a direction. ld a, [$d04e] cp 0 jr nz, .asm_80169 ld a, [WalkingDirection] cp STANDING jr z, .asm_80169 ld e, a ld a, [PlayerDirection] rrca rrca and 3 cp e jr z, .asm_80169 ld a, STEP_TURN call DoStep ld a, 2 scf ret .asm_80169 xor a ret ; 8016b TryStep: ; 8016b ; Surfing actually calls TrySurfStep directly instead of passing through here. ld a, [PlayerState] cp PLAYER_SURF jr z, TrySurfStep cp PLAYER_SURF_PIKA jr z, TrySurfStep call CheckLandPermissions jr c, .asm_801be call Function80341 and a jr z, .asm_801be cp 2 jr z, .asm_801be ld a, [StandingTile] call CheckIceTile jr nc, .ice ; Downhill riding is slower when not moving down. call CheckRiding jr nz, .asm_801ae ld hl, BikeFlags bit 2, [hl] ; downhill jr z, .fast ld a, [WalkingDirection] cp DOWN jr z, .fast ld a, STEP_WALK call DoStep scf ret .fast ld a, STEP_BIKE call DoStep scf ret .asm_801ae ld a, STEP_WALK call DoStep scf ret .ice ld a, STEP_ICE call DoStep scf ret ; unused? xor a ret .asm_801be xor a ret ; 801c0 TrySurfStep: ; 801c0 call CheckWaterPermissions ld [MartPointer], a jr c, .asm_801f1 call Function80341 ld [$d03f], a and a jr z, .asm_801f1 cp 2 jr z, .asm_801f1 ld a, [MartPointer] and a jr nz, .ExitWater ld a, STEP_WALK call DoStep scf ret .ExitWater call WaterToLandSprite call Function3cdf ; PlayMapMusic ld a, STEP_WALK call DoStep ld a, 6 scf ret .asm_801f1 xor a ret ; 801f3 TryJumpLedge: ; 801f3 ld a, [StandingTile] ld e, a and $f0 cp $a0 ; ledge jr nz, .DontJump ld a, e and 7 ld e, a ld d, 0 ld hl, .data_8021e add hl, de ld a, [FacingDirection] and [hl] jr z, .DontJump ld de, SFX_JUMP_OVER_LEDGE call PlaySFX ld a, STEP_LEDGE call DoStep ld a, 7 scf ret .DontJump xor a ret .data_8021e db FACE_RIGHT db FACE_LEFT db FACE_UP db FACE_DOWN db FACE_RIGHT | FACE_DOWN db FACE_DOWN | FACE_LEFT db FACE_UP | FACE_RIGHT db FACE_UP | FACE_LEFT ; 80226 CheckEdgeWarp: ; 80226 ; Bug: Since no case is made for STANDING here, it will check ; [.edgewarps + $ff]. This resolves to $3e at $8035a. ; This causes $d041 to be nonzero when standing on tile $3e, ; making bumps silent. ld a, [WalkingDirection] ld e, a ld d, 0 ld hl, .EdgeWarps add hl, de ld a, [StandingTile] cp [hl] jr nz, .asm_80259 ld a, 1 ld [$d041], a ld a, [WalkingDirection] cp STANDING jr z, .asm_80259 ld e, a ld a, [PlayerDirection] rrca rrca and 3 cp e jr nz, .asm_80259 call Function224a ; CheckFallPit? jr nc, .asm_80259 call StandInPlace scf ld a, 1 ret .asm_80259 xor a ret .EdgeWarps db $70, $78, $76, $7e ; 8025f DoStep: ; 8025f ld e, a ld d, 0 ld hl, .Steps add hl, de add hl, de ld a, [hli] ld h, [hl] ld l, a ld a, [WalkingDirection] ld e, a cp STANDING jp z, StandInPlace add hl, de ld a, [hl] ld [MovementAnimation], a ld hl, .WalkInPlace add hl, de ld a, [hl] ld [$d04e], a ld a, 4 ret .Steps dw .Slow dw .Walk dw .Bike dw .Ledge dw .Ice dw .Turn dw .BackwardsLedge dw .WalkInPlace .Slow db $08, $09, $0a, $0b .Walk db $0c, $0d, $0e, $0f .Bike db $10, $11, $12, $13 .Ledge db $30, $31, $32, $33 .Ice db $1c, $1d, $1e, $1f .BackwardsLedge db $31, $30, $33, $32 .Turn db $04, $05, $06, $07 .WalkInPlace db $80, $81, $82, $83 ; 802b3 StandInPlace: ; 802b3 ld a, 0 ld [$d04e], a ld a, $3e ; standing ld [MovementAnimation], a xor a ret ; 802bf WalkInPlace: ; 802bf ld a, 0 ld [$d04e], a ld a, $50 ; walking ld [MovementAnimation], a xor a ret ; 802cb CheckForcedMovementInput: ; 802cb ; When sliding on ice, input is forced to remain in the same direction. call Function80404 ret nc ld a, [$d04e] cp 0 ret z and 3 ld e, a ld d, 0 ld hl, .data_802e8 add hl, de ld a, [CurInput] and A_BUTTON | B_BUTTON | SELECT | START or [hl] ld [CurInput], a ret .data_802e8 db D_DOWN, D_UP, D_LEFT, D_RIGHT ; 802ec GetMovementAction: ; 802ec ; Poll player input and update movement info. ld hl, .table ld de, .table2 - .table1 ld a, [CurInput] bit 7, a jr nz, .down bit 6, a jr nz, .up bit 5, a jr nz, .left bit 4, a jr nz, .right ; Standing jr .update .down add hl, de .up add hl, de .left add hl, de .right add hl, de .update ld a, [hli] ld [WalkingDirection], a ld a, [hli] ld [FacingDirection], a ld a, [hli] ld [WalkingX], a ld a, [hli] ld [WalkingY], a ld a, [hli] ld h, [hl] ld l, a ld a, [hl] ld [WalkingTile], a ret .table ; struct: ; walk direction ; facing ; x movement ; y movement ; tile collision pointer .table1 db STANDING, FACE_CURRENT, 0, 0 dw StandingTile .table2 db RIGHT, FACE_RIGHT, 1, 0 dw TileRight db LEFT, FACE_LEFT, -1, 0 dw TileLeft db UP, FACE_UP, 0, -1 dw TileUp db DOWN, FACE_DOWN, 0, 1 dw TileDown ; 80341 Function80341: ; 80341 ld a, 0 ld [hConnectionStripLength], a ld a, [MapX] ld d, a ld a, [WalkingX] add d ld d, a ld a, [MapY] ld e, a ld a, [WalkingY] add e ld e, a ld bc, $d4d6 callba Function7041 jr nc, .asm_80369 call Function8036f jr c, .asm_8036c xor a ret .asm_80369 ld a, 1 ret .asm_8036c ld a, 2 ret ; 8036f Function8036f: ; 8036f ld hl, BikeFlags bit 0, [hl] jr z, .asm_8039c ld hl, $0007 add hl, bc ld a, [hl] cp $ff jr nz, .asm_8039c ld hl, $0006 add hl, bc bit 6, [hl] jr z, .asm_8039c ld hl, $0005 add hl, bc set 2, [hl] ld a, [WalkingDirection] ld d, a ld hl, $0020 add hl, bc ld a, [hl] and $fc or d ld [hl], a scf ret .asm_8039c xor a ret ; 8039e CheckLandPermissions: ; 8039e ; Return 0 if walking onto land and tile permissions allow it. ; Otherwise, return carry. ld a, [TilePermissions] ld d, a ld a, [FacingDirection] and d jr nz, .NotWalkable ld a, [WalkingTile] call CheckWalkable jr c, .NotWalkable xor a ret .NotWalkable scf ret ; 803b4 CheckWaterPermissions: ; 803b4 ; Return 0 if moving in water, or 1 if moving onto land. ; Otherwise, return carry. ld a, [TilePermissions] ld d, a ld a, [FacingDirection] and d jr nz, .NotSurfable ld a, [WalkingTile] call CheckSurfable jr c, .NotSurfable and a ret .NotSurfable scf ret ; 803ca CheckRiding: ; 803ca ld a, [PlayerState] cp PLAYER_BIKE ret z cp PLAYER_SLIP ret ; 803d3 CheckWalkable: ; 803d3 ; Return 0 if tile a is land. Otherwise, return carry. call GetTileCollision and a ; land ret z scf ret ; 803da CheckSurfable: ; 803da ; Return 0 if tile a is water, or 1 if land. ; Otherwise, return carry. call GetTileCollision cp 1 jr z, .Water ; Can walk back onto land from water. and a jr z, .Land jr .Neither .Water xor a ret .Land ld a, 1 and a ret .Neither scf ret ; 803ee PlayBump: ; 803ee call CheckSFX ret c ld de, SFX_BUMP call PlaySFX ret ; 803f9 WaterToLandSprite: ; 803f9 push bc ld a, PLAYER_NORMAL ld [PlayerState], a call Functione4a ; UpdateSprites pop bc ret ; 80404 Function80404:: ; 80404 ld a, [$d04e] cp 0 jr z, .asm_80420 cp $f0 jr z, .asm_80420 ld a, [StandingTile] call CheckIceTile jr nc, .asm_8041e ld a, [PlayerState] cp PLAYER_SLIP jr nz, .asm_80420 .asm_8041e scf ret .asm_80420 and a ret ; 80422 Function80422:: ; 80422 ld hl, $c2de ld a, $3e ; standing cp [hl] ret z ld [hl], a ld a, 0 ld [$d04e], a ret ; 80430 EngineFlagAction:: ; 80430 ; Do action b on engine flag de ; ; b = 0: reset flag ; = 1: set flag ; > 1: check flag, result in c ; ; Setting/resetting does not return a result. ; 16-bit flag ids are considered invalid, but it's nice ; to know that the infrastructure is there. ld a, d cp 0 jr z, .ceiling jr c, .read ; cp 0 can't set carry! jr .invalid ; There are only $a2 engine flags, so ; anything beyond that is invalid too. .ceiling ld a, e cp $a2 jr c, .read ; Invalid flags are treated as flag $00. .invalid xor a ld e, a ld d, a ; Get this flag's location. .read ld hl, EngineFlags ; location add hl, de add hl, de ; bit add hl, de ; location ld e, [hl] inc hl ld d, [hl] inc hl ; bit ld c, [hl] ; What are we doing with this flag? ld a, b cp 1 jr c, .reset ; b = 0 jr z, .set ; b = 1 ; Return the given flag in c. .check ld a, [de] and c ld c, a ret ; Set the given flag. .set ld a, [de] or c ld [de], a ret ; Reset the given flag. .reset ld a, c cpl ; AND all bits except the one in question ld c, a ld a, [de] and c ld [de], a ret ; 80462 EngineFlags: ; 80462 INCLUDE "engine/engine_flags.asm" ; 80648 ; no known jump sources Function80648:: ; 80648 (20:4648) ld a, c cp $1b jr c, .asm_8064e xor a .asm_8064e ld c, a ld b, $0 ld hl, $4671 add hl, bc add hl, bc add hl, bc ld e, [hl] inc hl ld d, [hl] inc hl ld b, [hl] ld a, b and $80 jr nz, .asm_80668 ld a, b and $40 ret nz ld a, [de] jr Function8066c .asm_80668 call _de_ ret ; known jump sources: 80666 (20:4666), 806ec (20:46ec), 806f6 (20:46f6), 806fc (20:46fc) Function8066c: ; 8066c (20:466c) ld de, StringBuffer2 ; $d086 ld [de], a ret ; 80671 (20:4671) INCBIN "baserom.gbc",$80671,$806e1 - $80671 ld hl, JohtoBadges ; $d857 ld b, $2 call CountSetBits ld a, [$d265] jp Function8066c ld a, [PlayerDirection] ; $d4de and $c rrca rrca jp Function8066c call GetWeekday jp Function8066c ; 806ff (20:46ff) INCBIN "baserom.gbc",$806ff,$80730 - $806ff BattleText:: INCLUDE "text/battle.asm" INCBIN "baserom.gbc",$818ac,$81fe3 - $818ac DebugColorTestGFX: INCBIN "gfx/debug/color_test.2bpp" INCBIN "baserom.gbc",$82153,$823c8 - $82153 SECTION "bank21", ROMX, BANK[$21] Function84000: ; 84000 ld hl, OverworldMap ld bc, $040c xor a call Function842ab xor a ld [rSB], a ld [rSC], a ld [$c2d5], a ld hl, $c2d4 set 0, [hl] ld a, [GBPrinter] ld [$cbfb], a xor a ld [$cf63], a ret ; 84022 Function84022: ; 84022 ld a, [$cf63] ld e, a ld d, 0 ld hl, Jumptable_84031 add hl, de add hl, de ld a, [hli] ld h, [hl] ld l, a jp [hl] ; 84031 ; no known jump sources Jumptable_84031: ; 84031 (21:4031) dw Function84077 dw Function84143 dw Function84120 dw Function84099 dw Function84180 dw Function8412e dw Function840c5 dw Function84180 dw Function84120 dw Function840de dw Function84180 dw Function84120 dw Function841a1 dw Function84063 dw Function8406d dw Function84120 dw Function84103 dw Function84071 dw Function841b0 dw Function841b3 ; known jump sources: 8406d (21:406d), 8408d (21:408d), 840b9 (21:40b9), 840d7 (21:40d7), 840f7 (21:40f7), 84119 (21:4119), 8412a (21:412a), 8416e (21:416e), 84193 (21:4193), 841ac (21:41ac), 841b0 (21:41b0) Function84059: ; 84059 (21:4059) ld hl, $cf63 inc [hl] ret ; known jump sources: 8413c (21:413c), 8413f (21:413f), 84197 (21:4197) Function8405e: ; 8405e (21:405e) ld hl, $cf63 dec [hl] ret ; no known jump sources Function84063: ; 84063 (21:4063) xor a ld [$ca89], a ld hl, $cf63 set 7, [hl] ret ; no known jump sources Function8406d: ; 8406d (21:406d) call Function84059 ret ; no known jump sources Function84071: ; 84071 (21:4071) ld a, $1 ld [$cf63], a ret ; no known jump sources Function84077: ; 84077 (21:4077) call Function841fb ld hl, $42b7 call Function841e2 xor a ld [$ca8e], a ld [$ca8f], a ld a, [$cf65] ld [$ca81], a call Function84059 call Function841c3 ld a, $1 ld [$cbf8], a ret ; no known jump sources Function84099: ; 84099 (21:4099) call Function841fb ld hl, $ca81 ld a, [hl] and a jr z, Function840c5 ld hl, $42c3 call Function841e2 call Function84260 ld a, $80 ld [$ca8e], a ld a, $2 ld [$ca8f], a call Function84219 call Function84059 call Function841c3 ld a, $2 ld [$cbf8], a ret ; known jump sources: 840a1 (21:40a1) Function840c5: ; 840c5 (21:40c5) ld a, $6 ld [$cf63], a ld hl, $42c9 call Function841e2 xor a ld [$ca8e], a ld [$ca8f], a call Function84059 call Function841c3 ret ; no known jump sources Function840de: ; 840de (21:40de) call Function841fb ld hl, $42bd call Function841e2 call Function84249 ld a, $4 ld [$ca8e], a ld a, $0 ld [$ca8f], a call Function84219 call Function84059 call Function841c3 ld a, $3 ld [$cbf8], a ret ; no known jump sources Function84103: ; 84103 (21:4103) call Function841fb ld hl, $42b7 call Function841e2 xor a ld [$ca8e], a ld [$ca8f], a ld a, [$cf65] ld [$ca81], a call Function84059 call Function841c3 ret ; no known jump sources Function84120: ; 84120 (21:4120) ld hl, $ca8b inc [hl] ld a, [hl] cp $6 ret c xor a ld [hl], a call Function84059 ret ; no known jump sources Function8412e: ; 8412e (21:412e) ld hl, $ca8b inc [hl] ld a, [hl] cp $6 ret c xor a ld [hl], a ld hl, $ca81 dec [hl] call Function8405e call Function8405e ret ; no known jump sources Function84143: ; 84143 (21:4143) ld a, [$c2d5] and a ret nz ld a, [$ca88] cp $ff jr nz, .asm_84156 ld a, [$ca89] cp $ff jr z, .asm_84172 .asm_84156 ld a, [$ca88] cp $81 jr nz, .asm_84172 ld a, [$ca89] cp $0 jr nz, .asm_84172 ld hl, $c2d4 set 1, [hl] ld a, $5 ld [$ca8a], a call Function84059 ret .asm_84172 ld a, $ff ld [$ca88], a ld [$ca89], a ld a, $e ld [$cf63], a ret ; no known jump sources Function84180: ; 84180 (21:4180) ld a, [$c2d5] and a ret nz ld a, [$ca89] and $f0 jr nz, .asm_8419b ld a, [$ca89] and $1 jr nz, .asm_84197 call Function84059 ret .asm_84197 call Function8405e ret .asm_8419b ld a, $12 ld [$cf63], a ret ; no known jump sources Function841a1: ; 841a1 (21:41a1) ld a, [$c2d5] and a ret nz ld a, [$ca89] and $f3 ret nz call Function84059 ret ; no known jump sources Function841b0: ; 841b0 (21:41b0) call Function84059 ; no known jump sources Function841b3: ; 841b3 (21:41b3) ld a, [$c2d5] and a ret nz ld a, [$ca89] and $f0 ret nz xor a ld [$cf63], a ret ; known jump sources: 84090 (21:4090), 840bc (21:40bc), 840da (21:40da), 840fa (21:40fa), 8411c (21:411c), 841c7 (21:41c7) Function841c3: ; 841c3 (21:41c3) ld a, [$c2d5] and a jr nz, Function841c3 xor a ld [$ca8c], a ld [$ca8d], a ld a, $1 ld [$c2d5], a ld a, $88 ld [rSB], a ; $ff00+$1 ld a, $1 ld [rSC], a ; $ff00+$2 ld a, $81 ld [rSC], a ; $ff00+$2 ret ; known jump sources: 8407d (21:407d), 840a6 (21:40a6), 840cd (21:40cd), 840e4 (21:40e4), 84109 (21:4109) Function841e2: ; 841e2 (21:41e2) ld a, [hli] ld [$ca82], a ld a, [hli] ld [$ca83], a ld a, [hli] ld [$ca84], a ld a, [hli] ld [$ca85], a ld a, [hli] ld [$ca86], a ld a, [hl] ld [$ca87], a ret ; known jump sources: 84077 (21:4077), 84099 (21:4099), 840de (21:40de), 84103 (21:4103) Function841fb: ; 841fb (21:41fb) xor a ld hl, $ca82 ld [hli], a ld [hli], a ld [hli], a ld [hl], a ld hl, $ca86 ld [hli], a ld [hl], a xor a ld [$ca8e], a ld [$ca8f], a ld hl, OverworldMap ; $c800 ld bc, $280 call Function842ab ret ; known jump sources: 840b6 (21:40b6), 840f4 (21:40f4) Function84219: ; 84219 (21:4219) ld hl, $0 ld bc, $4 ld de, $ca82 call Function8423c ld a, [$ca8e] ld c, a ld a, [$ca8f] ld b, a ld de, OverworldMap ; $c800 call Function8423c ld a, l ld [$ca86], a ld a, h ld [$ca87], a ret ; known jump sources: 84222 (21:4222), 84230 (21:4230), 84246 (21:4246) Function8423c: ; 8423c (21:423c) ld a, [de] inc de add l jr nc, .asm_84242 inc h .asm_84242 ld l, a dec bc ld a, c or b jr nz, Function8423c ret ; known jump sources: 840e7 (21:40e7) Function84249: ; 84249 (21:4249) ld a, $1 ld [OverworldMap], a ; $c800 ld a, [$cbfa] ld [$c801], a ld a, $e4 ld [$c802], a ld a, [$cbfb] ld [$c803], a ret ; known jump sources: 840a9 (21:40a9) Function84260: ; 84260 (21:4260) ld a, [$ca81] xor $ff ld d, a ld a, [$cf65] inc a add d ld hl, $ca90 ld de, $28 .asm_84271 and a jr z, .asm_84278 add hl, de dec a jr .asm_84271 .asm_84278 ld e, l ld d, h ld hl, OverworldMap ; $c800 ld c, $28 .asm_8427f ld a, [de] inc de push bc push de push hl swap a ld d, a and $f0 ld e, a ld a, d and $f ld d, a and $8 ld a, d jr nz, .asm_84297 or $90 jr .asm_84299 .asm_84297 or $80 .asm_84299 ld d, a ld bc, $2101 call Request2bpp pop hl ld de, $10 add hl, de pop de pop bc dec c jr nz, .asm_8427f ret Function842ab: ; 842ab push de ld e, a .asm_842ad ld [hl], e inc hl dec bc ld a, c or b jr nz, .asm_842ad ld a, e pop de ret ; 842b7 INCBIN "baserom.gbc",$842b7,$842db - $842b7 Function842db:: ; 842db ld a, [$c2d5] add a ld e, a ld d, 0 ld hl, Jumptable_842ea add hl, de ld a, [hli] ld h, [hl] ld l, a jp [hl] ; 842ea ; no known jump sources Jumptable_842ea: ; 842ea (21:42ea) dw Function8432f dw Function84330 dw Function84339 dw Function84343 dw Function8434d dw Function84357 dw Function84361 dw Function8438b dw Function84395 dw Function8439f dw Function843a8 dw Function843b6 dw Function84330 dw Function843c0 dw Function843c9 dw Function843c9 dw Function843c9 dw Function843c0 dw Function843c9 dw Function8439f dw Function843a8 dw Function843e6 dw Function84330 dw Function843d2 dw Function843c9 dw Function843c9 dw Function843c9 dw Function843d2 dw Function843c9 dw Function8439f dw Function843a8 dw Function843b6 ; known jump sources: 84335 (21:4335), 8433f (21:433f), 84349 (21:4349), 84353 (21:4353), 8435d (21:435d), 84388 (21:4388), 84391 (21:4391), 8439b (21:439b), 843a4 (21:43a4), 843b2 (21:43b2), 843c5 (21:43c5), 843ce (21:43ce), 843d7 (21:43d7) Function8432a: ; 8432a (21:432a) ld hl, $c2d5 inc [hl] ret ; no known jump sources Function8432f: ; 8432f (21:432f) ret ; no known jump sources Function84330: ; 84330 (21:4330) ld a, $33 call Function843db call Function8432a ret ; no known jump sources Function84339: ; 84339 (21:4339) ld a, [$ca82] call Function843db call Function8432a ret ; no known jump sources Function84343: ; 84343 (21:4343) ld a, [$ca83] call Function843db call Function8432a ret ; no known jump sources Function8434d: ; 8434d (21:434d) ld a, [$ca84] call Function843db call Function8432a ret ; no known jump sources Function84357: ; 84357 (21:4357) ld a, [$ca85] call Function843db call Function8432a ret ; no known jump sources Function84361: ; 84361 (21:4361) ld hl, $ca8e ld a, [hli] ld d, [hl] ld e, a or d jr z, .asm_84388 dec de ld [hl], d dec hl ld [hl], e ld a, [$ca8c] ld e, a ld a, [$ca8d] ld d, a ld hl, OverworldMap ; $c800 add hl, de inc de ld a, e ld [$ca8c], a ld a, d ld [$ca8d], a ld a, [hl] call Function843db ret .asm_84388 call Function8432a ; no known jump sources Function8438b: ; 8438b (21:438b) ld a, [$ca86] call Function843db call Function8432a ret ; no known jump sources Function84395: ; 84395 (21:4395) ld a, [$ca87] call Function843db call Function8432a ret ; no known jump sources Function8439f: ; 8439f (21:439f) ld a, $0 call Function843db call Function8432a ret ; no known jump sources Function843a8: ; 843a8 (21:43a8) ld a, [rSB] ; $ff00+$1 ld [$ca88], a ld a, $0 call Function843db call Function8432a ret ; no known jump sources Function843b6: ; 843b6 (21:43b6) ld a, [rSB] ; $ff00+$1 ld [$ca89], a xor a ld [$c2d5], a ret ; no known jump sources Function843c0: ; 843c0 (21:43c0) ld a, $f call Function843db call Function8432a ret ; no known jump sources Function843c9: ; 843c9 (21:43c9) ld a, $0 call Function843db call Function8432a ret ; no known jump sources Function843d2: ; 843d2 (21:43d2) ld a, $8 call Function843db call Function8432a ret ; known jump sources: 84332 (21:4332), 8433c (21:433c), 84346 (21:4346), 84350 (21:4350), 8435a (21:435a), 84384 (21:4384), 8438e (21:438e), 84398 (21:4398), 843a1 (21:43a1), 843af (21:43af), 843c2 (21:43c2), 843cb (21:43cb), 843d4 (21:43d4) Function843db: ; 843db (21:43db) ld [rSB], a ; $ff00+$1 ld a, $1 ld [rSC], a ; $ff00+$2 ld a, $81 ld [rSC], a ; $ff00+$2 ret ; no known jump sources Function843e6: ; 843e6 (21:43e6) ld a, [rSB] ; $ff00+$1 ld [$ca89], a xor a ld [$c2d5], a ret Function843f0: ; 843f0 .asm_843f0 call Functiona57 call Function846f6 jr c, .asm_8440f ld a, [$cf63] bit 7, a jr nz, .asm_8440d call Function84022 call Function84757 call Function84785 call DelayFrame jr .asm_843f0 .asm_8440d and a ret .asm_8440f scf ret ; 84411 Function84411: ; 84411 xor a ld [$c2d4], a ld [$c2d5], a ret ; 84419 Function84419: ; 84419 push af call Function84000 pop af ld [$cbfa], a call Function84728 ret ; 84425 Function84425: ; 84425 call Function222a call Function84753 ret ; 8442c Function8442c: ; 8442c ld a, [$cf65] push af ld hl, VTiles1 ld de, Function84000 ld bc, $3680 call Request1bpp xor a ld [$ffac], a call Function8474c ld a, [rIE] push af xor a ld [rIF], a ld a, $9 ld [rIE], a call Function84000 ld a, $10 ld [$cbfa], a callba Function1dc1b0 call ClearTileMap ld a, $e4 call DmgToCgbBGPals call DelayFrame ld hl, $ff9e ld a, [hl] push af ld [hl], $4 ld a, $8 ld [$cf65], a call Function84742 call Function843f0 jr c, .asm_8449d call Function84411 ld c, $c call DelayFrames xor a ld [hBGMapMode], a call Function84000 ld a, $3 ld [$cbfa], a callba Function1dc213 call Function84742 ld a, $4 ld [$cf65], a call Function843f0 .asm_8449d pop af ld [$ff9e], a call Function84411 xor a ld [rIF], a pop af ld [rIE], a call Function84425 ld c, $8 .asm_844ae call LowVolume call DelayFrame dec c jr nz, .asm_844ae pop af ld [$cf65], a ret ; 844bc ; no known jump sources Function844bc: ; 844bc (21:44bc) ld a, [$cf65] push af ld a, $9 ld [$cf65], a ld a, e ld [$d004], a ld a, d ld [StartFlypoint], a ; $d005 ld a, b ld [EndFlypoint], a ; $d006 ld a, c ld [MovementBuffer], a ; $d007 xor a ld [$FF00+$ac], a ld [$d003], a call Function8474c ld a, [rIE] ; $ff00+$ff push af xor a ld [rIF], a ; $ff00+$f ld a, $9 ld [rIE], a ; $ff00+$ff ld hl, $ff9e ld a, [hl] push af ld [hl], $4 xor a ld [hBGMapMode], a ; $ff00+$d4 call Function84817 ld a, $10 call Function84419 call Function84559 jr c, .asm_84545 call Function84411 ld c, $c call DelayFrames xor a ld [hBGMapMode], a ; $ff00+$d4 call Function8486f ld a, $0 call Function84419 call Function84559 jr c, .asm_84545 call Function84411 ld c, $c call DelayFrames xor a ld [hBGMapMode], a ; $ff00+$d4 call Function84893 ld a, $0 call Function84419 call Function84559 jr c, .asm_84545 call Function84411 ld c, $c call DelayFrames xor a ld [hBGMapMode], a ; $ff00+$d4 call Function848b7 ld a, $3 call Function84419 call Function84559 .asm_84545 pop af ld [$FF00+$9e], a call Function84411 xor a ld [rIF], a ; $ff00+$f pop af ld [rIE], a ; $ff00+$ff call Function84425 pop af ld [$cf65], a ret ; known jump sources: 844fa (21:44fa), 84512 (21:4512), 8452a (21:452a), 84542 (21:4542) Function84559: ; 84559 (21:4559) call Function84742 call Function843f0 ret Function84560: ; 84560 ld a, [$cf65] push af xor a ld [$ffac], a call Function8474c ld a, [rIE] push af xor a ld [rIF], a ld a, $9 ld [rIE], a ld hl, $ff9e ld a, [hl] push af ld [hl], $4 xor a ld [hBGMapMode], a call Function309d callba Function16dac ld a, $0 call Function84419 call Function30b4 call Function84742 ld a, $9 ld [$cf65], a .asm_84597 call Functiona57 call Function846f6 jr c, .asm_845c0 ld a, [$cf63] bit 7, a jr nz, .asm_845c0 call Function84022 ld a, [$cf63] cp $2 jr nc, .asm_845b5 ld a, $3 ld [$ca81], a .asm_845b5 call Function84757 call Function84785 call DelayFrame jr .asm_84597 .asm_845c0 pop af ld [$ff9e], a call Function84411 call Function30b4 xor a ld [rIF], a pop af ld [rIE], a pop af ld [$cf65], a ret ; 845d4 Function845d4: ; 845d4 call Function845db call Function84425 ret ; 845db Function845db: ; 845db ld a, [$cf65] push af xor a ld [$ffac], a call Function8474c ld a, [rIE] push af xor a ld [rIF], a ld a, $9 ld [rIE], a xor a ld [hBGMapMode], a ld a, $13 call Function84419 ld hl, $ff9e ld a, [hl] push af ld [hl], $4 ld a, $9 ld [$cf65], a call Function843f0 pop af ld [$ff9e], a call Function84411 call Function84735 xor a ld [rIF], a pop af ld [rIE], a pop af ld [$cf65], a ret ; 8461a Function8461a: ; 8461a ld a, [$cf65] push af xor a ld [$ffac], a call Function8474c ld a, [rIE] push af xor a ld [rIF], a ld a, $9 ld [rIE], a xor a ld [hBGMapMode], a callba Function1dc381 ld a, $10 call Function84419 ld hl, $ff9e ld a, [hl] push af ld [hl], $4 ld a, $8 ld [$cf65], a call Function84742 call Function843f0 jr c, .asm_84671 call Function84411 ld c, $c call DelayFrames xor a ld [hBGMapMode], a callba Function1dc47b ld a, $3 call Function84419 ld a, $9 ld [$cf65], a call Function84742 call Function843f0 .asm_84671 pop af ld [$ff9e], a call Function84411 call Function84735 xor a ld [rIF], a pop af ld [rIE], a call Function84425 pop af ld [$cf65], a ret ; 84688 Function84688: ; 84688 ld a, [$cf65] push af callba Function1dd709 xor a ld [$ffac], a call Function8474c ld a, [rIE] push af xor a ld [rIF], a ld a, $9 ld [rIE], a ld hl, $ff9e ld a, [hl] push af ld [hl], $4 ld a, $10 call Function84419 call Function84742 ld a, $9 ld [$cf65], a call Function843f0 jr c, .asm_846e2 call Function84411 ld c, $c call DelayFrames call Function309d xor a ld [hBGMapMode], a callba Function1dd7ae ld a, $3 call Function84419 call Function30b4 call Function84742 ld a, $9 ld [$cf65], a call Function843f0 .asm_846e2 pop af ld [$ff9e], a call Function84411 xor a ld [rIF], a pop af ld [rIE], a call Function84425 pop af ld [$cf65], a ret ; 846f6 Function846f6: ; 846f6 ld a, [hJoyDown] and $2 jr nz, .asm_846fe and a ret .asm_846fe ld a, [$ca80] cp $c jr nz, .asm_84722 .asm_84705 ld a, [$c2d5] and a jr nz, .asm_84705 ld a, $16 ld [$c2d5], a ld a, $88 ld [rSB], a ld a, $1 ld [rSC], a ld a, $81 ld [rSC], a .asm_8471c ld a, [$c2d5] and a jr nz, .asm_8471c .asm_84722 ld a, $1 ld [$ffac], a scf ret ; 84728 Function84728: ; 84728 ld hl, TileMap ld de, $ca90 ld bc, $0168 call CopyBytes ret ; 84735 Function84735: ; 84735 ld hl, $ca90 ld de, TileMap ld bc, $0168 call CopyBytes ret ; 84742 Function84742: ; 84742 xor a ld [hJoyReleased], a ld [hJoyPressed], a ld [hJoyDown], a ld [$ffa9], a ret ; 8474c Function8474c: ; 8474c ld de, MUSIC_PRINTER call PlayMusic2 ret ; 84753 Function84753: ; 84753 call Function3d47 ret ; 84757 Function84757: ; 84757 ld a, [$ca88] cp $ff jr nz, .asm_84765 ld a, [$ca89] cp $ff jr z, .asm_8477f .asm_84765 ld a, [$ca89] and $e0 ret z bit 7, a jr nz, .asm_8477b bit 6, a jr nz, .asm_84777 ld a, $6 jr .asm_84781 .asm_84777 ld a, $7 jr .asm_84781 .asm_8477b ld a, $4 jr .asm_84781 .asm_8477f ld a, $5 .asm_84781 ld [$cbf8], a ret ; 84785 Function84785: ; 84785 ld a, [$cbf8] and a ret z push af xor a ld [hBGMapMode], a ld hl, $c504 ld bc, $0a12 call TextBox pop af ld e, a ld d, $0 ld hl, $4807 add hl, de add hl, de ld e, [hl] inc hl ld d, [hl] ld hl, $c52d ld a, $77 call Function13d4 ld hl, $c5ce ld de, $47f5 call PlaceString ld a, $1 ld [hBGMapMode], a xor a ld [$cbf8], a ret ; 847bd INCBIN "baserom.gbc",$847bd,$84817 - $847bd ; known jump sources: 844f2 (21:44f2) Function84817: ; 84817 (21:4817) xor a ld [DefaultFlypoint], a ; $d002 ld hl, TileMap ; $c4a0 (aliases: SpritesEnd) ld bc, $168 ld a, $7f call ByteFill call Function84a0e ld hl, TileMap ; $c4a0 (aliases: SpritesEnd) ld bc, $b4 ld a, $7f call ByteFill call Function849e9 call Function849d7 ld hl, $c4e0 ld de, $4865 call PlaceString ld a, [MovementBuffer] ; $d007 ld bc, $9 ld hl, Box1Name ; $db75 call AddNTimes ld d, h ld e, l ld hl, $c50a call PlaceString ld a, $1 call Function849c6 ld hl, $c556 ld c, $3 call Function848e7 ret ; 84865 (21:4865) INCBIN "baserom.gbc",$84865,$8486f - $84865 ; known jump sources: 8450a (21:450a) Function8486f: ; 8486f (21:486f) ld hl, TileMap ; $c4a0 (aliases: SpritesEnd) ld bc, $168 ld a, $7f call ByteFill call Function84a0e call Function849e9 ld a, [$d003] and a ret nz ld a, $4 call Function849c6 ld hl, $c4a2 ld c, $6 call Function848e7 ret ; known jump sources: 84522 (21:4522) Function84893: ; 84893 (21:4893) ld hl, TileMap ; $c4a0 (aliases: SpritesEnd) ld bc, $168 ld a, $7f call ByteFill call Function84a0e call Function849e9 ld a, [$d003] and a ret nz ld a, $a call Function849c6 ld hl, $c4a2 ld c, $6 call Function848e7 ret ; known jump sources: 8453a (21:453a) Function848b7: ; 848b7 (21:48b7) ld hl, TileMap ; $c4a0 (aliases: SpritesEnd) ld bc, $168 ld a, $7f call ByteFill call Function84a0e ld hl, $c5cd ld bc, $212 call ClearBox call Function849e9 call Function849fc ld a, [$d003] and a ret nz ld a, $10 call Function849c6 ld hl, $c4a2 ld c, $5 call Function848e7 ret ; known jump sources: 84861 (21:4861), 8488f (21:488f), 848b3 (21:48b3), 848e3 (21:48e3) Function848e7: ; 848e7 (21:48e7) ld a, [EndFlypoint] ; $d006 call GetSRAMBank ; known jump sources: 8497e (21:497e) Function848ed: ; 848ed (21:48ed) ld a, c and a jp z, Function84986 dec c ld a, [de] cp $ff jp z, Function84981 ld [$d265], a ld [CurPartySpecies], a ; $d108 push bc push hl push de push hl ld bc, $10 ld a, $7f call ByteFill pop hl push hl call GetBasePokemonName pop hl push hl call PlaceString ld a, [CurPartySpecies] ; $d108 cp $fd pop hl jr z, .asm_84972 ld bc, $b add hl, bc call Function8498a ld bc, $9 add hl, bc ld a, $f3 ld [hli], a push hl ld bc, $e ld a, $7f call ByteFill pop hl push hl ld a, [$d004] ld l, a ld a, [StartFlypoint] ; $d005 ld h, a ld bc, $372 add hl, bc ld bc, $b ld a, [DefaultFlypoint] ; $d002 call AddNTimes ld e, l ld d, h pop hl push hl call PlaceString pop hl ld bc, $b add hl, bc push hl ld a, [$d004] ld l, a ld a, [StartFlypoint] ; $d005 ld h, a ld bc, $35 add hl, bc ld bc, $20 ld a, [DefaultFlypoint] ; $d002 call AddNTimes ld a, [hl] pop hl call Function383d .asm_84972 ld hl, DefaultFlypoint ; $d002 inc [hl] pop de pop hl ld bc, $3c add hl, bc pop bc inc de jp Function848ed ; known jump sources: 848f6 (21:48f6) Function84981: ; 84981 (21:4981) ld a, $1 ld [$d003], a ; known jump sources: 848ef (21:48ef) Function84986: ; 84986 (21:4986) call CloseSRAM ret ; known jump sources: 84921 (21:4921) Function8498a: ; 8498a (21:498a) push hl ld a, [$d004] ld l, a ld a, [StartFlypoint] ; $d005 ld h, a ld bc, $2b add hl, bc ld bc, $20 ld a, [DefaultFlypoint] ; $d002 call AddNTimes ld de, TempMonDVs ; $d123 ld a, [hli] ld [de], a inc de ld a, [hli] ld [de], a ld a, [DefaultFlypoint] ; $d002 ld [CurPartyMon], a ; $d109 ld a, $3 ld [MonType], a ; $cf5f callba GetGender ld a, $7f jr c, .asm_849c3 ld a, $ef jr nz, .asm_849c3 ld a, $f5 .asm_849c3 pop hl ld [hli], a ret ; known jump sources: 84859 (21:4859), 84887 (21:4887), 848ab (21:48ab), 848db (21:48db) Function849c6: ; 849c6 (21:49c6) push hl ld e, a ld d, $0 ld a, [$d004] ld l, a ld a, [StartFlypoint] ; $d005 ld h, a add hl, de ld e, l ld d, h pop hl ret ; known jump sources: 84837 (21:4837) Function849d7: ; 849d7 (21:49d7) ld hl, TileMap ; $c4a0 (aliases: SpritesEnd) ld a, $79 ld [hli], a ld a, $7a ld c, $12 .asm_849e1 ld [hli], a dec c jr nz, .asm_849e1 ld a, $7b ld [hl], a ret ; known jump sources: 84834 (21:4834), 8487d (21:487d), 848a1 (21:48a1), 848ce (21:48ce) Function849e9: ; 849e9 (21:49e9) ld hl, TileMap ; $c4a0 (aliases: SpritesEnd) ld de, $13 ld c, $12 .asm_849f1 ld a, $7c ld [hl], a add hl, de ld a, $7c ld [hli], a dec c jr nz, .asm_849f1 ret ; known jump sources: 848d1 (21:48d1) Function849fc: ; 849fc (21:49fc) ld hl, $c5f4 ld a, $7d ld [hli], a ld a, $7a ld c, $12 .asm_84a06 ld [hli], a dec c jr nz, .asm_84a06 ld a, $7e ld [hl], a ret ; known jump sources: 84826 (21:4826), 8487a (21:487a), 8489e (21:489e), 848c2 (21:48c2) Function84a0e: ; 84a0e (21:4a0e) ld hl, $c4a2 ld c, $6 .asm_84a13 push bc push hl ld de, String84a25 call PlaceString pop hl ld bc, $3c add hl, bc pop bc dec c jr nz, .asm_84a13 ret ; 84a25 (21:4a25) String84a25: ; 84a25 db " ------@" ; 84a2e INCLUDE "battle/anim_gfx.asm" HallOfFame:: ; 0x8640e call Function8648e ld a, [StatusFlags] push af ld a, $1 ld [$c2cd], a call Function2ed3 ld a, $1 ld [$d4b5], a ; Enable the Pokégear map to cycle through all of Kanto ld hl, StatusFlags set 6, [hl] callba Function14da0 ld hl, $d95e ld a, [hl] cp $c8 jr nc, .asm_86436 ; 0x86433 $1 inc [hl] .asm_86436 callba Function14b85 call Function8653f callba Function14b5f xor a ld [$c2cd], a call Function864c3 pop af ld b, a callba Function109847 ret ; 0x86455 Function86455:: ; 86455 ld a, $0 ld [MusicFadeIDLo], a ld a, $0 ld [MusicFadeIDHi], a ld a, $a ld [MusicFade], a callba Function8c084 xor a ld [VramState], a ld [$ffde], a callba Function4e8c2 ld c, $8 call DelayFrames call Function2ed3 ld a, $2 ld [$d4b5], a ld a, [StatusFlags] ld b, a callba Function109847 ret ; 8648e Function8648e: ; 8648e ld a, $0 ld [MusicFadeIDLo], a ld a, $0 ld [MusicFadeIDHi], a ld a, $a ld [MusicFade], a callba Function8c084 xor a ld [VramState], a ld [$ffde], a callba Function4e881 ld c, $64 jp DelayFrames ; 864b4 Function864b4: ; 864b4 push de ld de, $0000 call PlayMusic call DelayFrame pop de call PlayMusic ret ; 864c3 Function864c3: ; 864c3 xor a ld [$cf63], a call Function8671c jr c, .asm_864fb ld de, $0014 call Function864b4 xor a ld [$cf64], a .asm_864d6 ld a, [$cf64] cp $6 jr nc, .asm_864fb ld hl, EnemyMoveEffect ld bc, $0010 call AddNTimes ld a, [hl] cp $ff jr z, .asm_864fb push hl call Function865b5 pop hl call Function8650c jr c, .asm_864fb ld hl, $cf64 inc [hl] jr .asm_864d6 .asm_864fb call Function86810 ld a, $4 ld [MusicFade], a call Function4b6 ld c, $8 call DelayFrames ret ; 8650c Function8650c: ; 8650c call Function86748 ld de, $652c ld hl, $c4c9 call PlaceString call WaitBGMap ld de, $c50a ld c, $6 ld a, $49 call Predef ld c, $3c call DelayFrames and a ret ; 8652c INCBIN "baserom.gbc",$8652c,$8653f - $8652c Function8653f: ; 8653f ld hl, OverworldMap ld bc, $0062 xor a call ByteFill ld a, [$d95e] ld de, OverworldMap ld [de], a inc de ld hl, PartySpecies ld c, 0 .asm_86556 ld a, [hli] cp $ff jr z, .asm_865b1 cp EGG jr nz, .asm_86562 inc c jr .asm_86556 .asm_86562 push hl push de push bc ld a, c ld hl, PartyMon1Species ld bc, $0030 call AddNTimes ld c, l ld b, h ld hl, $0000 add hl, bc ld a, [hl] ld [de], a inc de ld hl, $0006 add hl, bc ld a, [hli] ld [de], a inc de ld a, [hl] ld [de], a inc de ld hl, $0015 add hl, bc ld a, [hli] ld [de], a inc de ld a, [hl] ld [de], a inc de ld hl, $001f add hl, bc ld a, [hl] ld [de], a inc de pop bc push bc ld a, c ld hl, PartyMon1Nickname ld bc, $000b call AddNTimes ld bc, $000a call CopyBytes pop bc inc c pop de ld hl, $0010 add hl, de ld e, l ld d, h pop hl jr .asm_86556 .asm_865b1 ld a, $ff ld [de], a ret ; 865b5 Function865b5: ; 865b5 push hl call WhiteBGMap callba Function4e906 pop hl ld a, [hli] ld [TempMonSpecies], a ld [CurPartySpecies], a inc hl inc hl ld a, [hli] ld [TempMonDVs], a ld a, [hli] ld [$d124], a ld hl, TempMonDVs ld a, $2d call Predef ld hl, TileMap ld bc, $0168 ld a, $7f call ByteFill ld de, $9310 ld a, $3d call Predef ld a, $31 ld [$ffad], a ld hl, $c51e ld bc, $0606 ld a, $13 call Predef ld a, $d0 ld [hSCY], a ld a, $90 ld [hSCX], a call WaitBGMap xor a ld [hBGMapMode], a ld b, $1a call GetSGBLayout call Function32f9 call Function86635 xor a ld [$c2c6], a ld hl, TileMap ld bc, $0168 ld a, $7f call ByteFill ld hl, $c50a call Function378b call WaitBGMap xor a ld [hBGMapMode], a ld [hSCY], a call Function86643 ret ; 86635 Function86635: ; 86635 .asm_86635 ld a, [hSCX] cp $70 ret z add $4 ld [hSCX], a call DelayFrame jr .asm_86635 ; 86643 Function86643: ; 86643 .asm_86643 ld a, [hSCX] and a ret z dec a dec a ld [hSCX], a call DelayFrame jr .asm_86643 ; 86650 Function86650: ; 86650 call Functione58 xor a ld [$cf63], a .asm_86657 call Function8671c ret c call Function86665 ret c ld hl, $cf63 inc [hl] jr .asm_86657 ; 86665 Function86665: ; 86665 xor a ld [$cf64], a .asm_86669 call Function86692 jr c, .asm_86690 .asm_8666e call Functiona57 ld hl, $ffa9 ld a, [hl] and $2 jr nz, .asm_8668e ld a, [hl] and $1 jr nz, .asm_86688 ld a, [hl] and $8 jr nz, .asm_86690 call DelayFrame jr .asm_8666e .asm_86688 ld hl, $cf64 inc [hl] jr .asm_86669 .asm_8668e scf ret .asm_86690 and a ret ; 86692 Function86692: ; 86692 ld a, [$cf64] cp $6 jr nc, .asm_866a7 ld hl, EnemyMoveEffect ld bc, $0010 call AddNTimes ld a, [hl] cp $ff jr nz, .asm_866a9 .asm_866a7 scf ret .asm_866a9 push hl call WhiteBGMap pop hl call Function86748 ld a, [EnemyMoveAnimation] cp $c9 jr c, .asm_866c6 ld de, $66fc ld hl, $c4c9 call PlaceString ld hl, $c4d5 jr .asm_866de .asm_866c6 ld de, $670c ld hl, $c4c9 call PlaceString ld hl, $c4ca ld de, EnemyMoveAnimation ld bc, $0103 call PrintNum ld hl, $c4d3 .asm_866de ld de, $66fb call PlaceString call WaitBGMap ld b, $1a call GetSGBLayout call Function32f9 ld de, $c50a ld c, $6 ld a, $49 call Predef and a ret ; 866fb INCBIN "baserom.gbc", $866fb, $8671c - $866fb Function8671c: ; 8671c ld a, [$cf63] cp $1e jr nc, .asm_86746 ld hl, $b2c0 ld bc, $0062 call AddNTimes ld a, $1 call GetSRAMBank ld a, [hl] and a jr z, .asm_86743 ld de, EnemyMoveAnimation ld bc, $0062 call CopyBytes call CloseSRAM and a ret .asm_86743 call CloseSRAM .asm_86746 scf ret ; 86748 Function86748: ; 86748 xor a ld [hBGMapMode], a ld a, [hli] ld [TempMonSpecies], a ld a, [hli] ld [TempMonID], a ld a, [hli] ld [$d115], a ld a, [hli] ld [TempMonDVs], a ld a, [hli] ld [$d124], a ld a, [hli] ld [TempMonLevel], a ld de, StringBuffer2 ld bc, $000a call CopyBytes ld a, $50 ld [$d090], a ld hl, TileMap ld bc, $0168 ld a, $7f call ByteFill ld hl, TileMap ld bc, $0312 call TextBox ld hl, $c590 ld bc, $0412 call TextBox ld a, [TempMonSpecies] ld [CurPartySpecies], a ld [$d265], a ld hl, TempMonDVs ld a, $2d call Predef xor a ld [$c2c6], a ld hl, $c50a call Function378b ld a, [CurPartySpecies] cp EGG jr z, .asm_867f8 ld hl, $c5a5 ld a, $74 ld [hli], a ld [hl], $f2 ld hl, $c5a7 ld de, $d265 ld bc, $8103 call PrintNum call GetBasePokemonName ld hl, $c5ab call PlaceString ld a, $3 ld [MonType], a callba GetGender ld a, $7f jr c, .asm_867e2 ld a, $ef jr nz, .asm_867e2 ld a, $f5 .asm_867e2 ld hl, $c5b6 ld [hli], a ld hl, $c5c0 ld a, $f3 ld [hli], a ld de, StringBuffer2 call PlaceString ld hl, $c5e1 call PrintLevel .asm_867f8 ld hl, $c5e7 ld a, $73 ld [hli], a ld a, $74 ld [hli], a ld [hl], $f3 ld hl, $c5ea ld de, TempMonID ld bc, $8205 call PrintNum ret ; 86810 Function86810: ; 86810 call WhiteBGMap ld hl, $9630 ld de, $40d0 ld bc, $3e01 call Request2bpp ld hl, TileMap ld bc, $0168 ld a, $7f call ByteFill callba GetPlayerBackpic ld a, $31 ld [$ffad], a hlcoord 6, 6 ld bc, $0606 ld a, $13 call Predef ld a, $d0 ld [hSCY], a ld a, $90 ld [hSCX], a call WaitBGMap xor a ld [hBGMapMode], a ld [CurPartySpecies], a ld b, $1a call GetSGBLayout call Function32f9 call Function86635 xor a ld [$c2c6], a ld hl, TileMap ld bc, $0168 ld a, $7f call ByteFill callba Function88840 xor a ld [$ffad], a hlcoord 12, 5 ld bc, $0707 ld a, $13 call Predef ld a, $c0 ld [hSCX], a call WaitBGMap xor a ld [hBGMapMode], a ld [hSCY], a call Function86643 xor a ld [hBGMapMode], a hlcoord 0, 2 ld bc, $0809 call TextBox hlcoord 0, 12 ld bc, $0412 call TextBox hlcoord 2, 4 ld de, PlayerName call PlaceString hlcoord 1, 6 ld a, $73 ld [hli], a ld a, $74 ld [hli], a ld [hl], $f3 hlcoord 4, 6 ld de, PlayerID ld bc, $8205 call PrintNum hlcoord 1, 8 ld de, .PlayTime call PlaceString hlcoord 3, 9 ld de, GameTimeHours ld bc, $0203 call PrintNum ld [hl], $63 inc hl ld de, GameTimeMinutes ld bc, $8102 call PrintNum call WaitBGMap callba Function26601 ret ; 868ed .PlayTime db "PLAY TIME@" ; 868f7 SECTION "bank22", ROMX, BANK[$22] Function88000: ; 88000 ld hl, $4007 call PrintText ret ; 88007 INCBIN "baserom.gbc",$88007,$8800c - $88007 Function8800c: ; 8800c ld hl, $4013 call PrintText ret ; 88013 INCBIN "baserom.gbc",$88013,$88018 - $88013 Function88018: ; 88018 call Function1d6e ld c, $1 xor a ld [$d0e4], a ld [$dca4], a .asm_88024 push bc call Function88000 pop bc ld a, c ld [MenuSelection], a call Function88055 ld a, c ld [ScriptVar], a and a jr z, .asm_88051 ld [CurItem], a ld a, [$cfa9] ld c, a push bc call Function8800c call Function880c2 pop bc jr nc, .asm_88024 ld a, [$d10c] ld [$dca4], a call Function88161 .asm_88051 call Function1d7d ret ; 88055 Function88055: ; 88055 callba Function24c64 jr c, .asm_88083 ld hl, $4086 call Function1d3c ld a, [MenuSelection] ld [$cf88], a xor a ld [hBGMapMode], a call Function352f call Function1ad2 call Function350c ld a, [$cf73] cp $2 jr z, .asm_88083 ld a, [MenuSelection] cp $ff jr nz, .asm_88084 .asm_88083 xor a .asm_88084 ld c, a ret ; 88086 INCBIN "baserom.gbc",$88086,$880c2 - $88086 Function880c2: ; 880c2 ld a, [CurItem] ld [MenuSelection], a call Function88139 jr z, .asm_88109 ld a, [$d10c] ld [$d10d], a ld a, $1 ld [$d10c], a ld hl, $410d call LoadMenuDataHeader .asm_880de xor a ld [hBGMapMode], a call Function1cbb call Function1ad2 call Function88116 call Function88126 call Function321c callba Function27a28 jr nc, .asm_880de push bc call PlayClickSFX pop bc ld a, b cp $ff jr z, .asm_88109 ld a, [$d10c] ld [$d10c], a scf .asm_88109 call Function1c17 ret ; 8810d INCBIN "baserom.gbc",$8810d,$88116 - $8810d Function88116: ; 88116 call Function1cfd ld de, $0015 add hl, de ld d, h ld e, l callba Function24ab4 ret ; 88126 Function88126: ; 88126 call Function1cfd ld de, $0032 add hl, de ld [hl], $f1 inc hl ld de, $d10c ld bc, $8102 jp PrintNum ; 88139 Function88139: ; 88139 push bc ld hl, NumItems ld a, [CurItem] ld c, a ld b, $0 .asm_88143 inc hl ld a, [hli] cp $ff jr z, .asm_88153 cp c jr nz, .asm_88143 ld a, [hl] add b ld b, a jr nc, .asm_88143 ld b, $ff .asm_88153 ld a, b sub $63 jr c, .asm_8815a ld b, $63 .asm_8815a ld a, b ld [$d10c], a and a pop bc ret ; 88161 Function88161: ; 88161 push de push bc ld hl, NumItems ld a, [CurItem] ld c, a ld e, $0 xor a ld [$d107], a ld a, $ff ld [DefaultFlypoint], a .asm_88175 ld a, [$d107] inc a ld [$d107], a inc hl ld a, [hli] cp $ff jr z, .asm_88198 cp c jr nz, .asm_88175 ld d, $0 push hl ld hl, DefaultFlypoint add hl, de inc e ld a, [$d107] dec a ld [hli], a ld a, $ff ld [hl], a pop hl jr .asm_88175 .asm_88198 ld a, e and a jr z, .asm_881fa dec a jr z, .asm_881d0 ld hl, DefaultFlypoint .asm_881a2 ld a, [hl] ld c, a push hl .asm_881a5 inc hl ld a, [hl] cp $ff jr z, .asm_881c9 ld b, a ld a, c call Function88201 ld e, a ld a, b call Function88201 sub e jr z, .asm_881bc jr c, .asm_881c0 jr .asm_881a5 .asm_881bc ld a, c sub b jr nc, .asm_881a5 .asm_881c0 ld a, c ld c, b ld [hl], a ld a, c pop hl ld [hl], a push hl jr .asm_881a5 .asm_881c9 pop hl inc hl ld a, [hl] cp $ff jr nz, .asm_881a2 .asm_881d0 ld hl, DefaultFlypoint .asm_881d3 ld a, [hl] cp $ff jr z, .asm_881fa push hl ld [$d107], a call Function88211 pop hl ld a, [$d10c] and a jr z, .asm_881fa push hl ld a, [hli] ld c, a .asm_881e9 ld a, [hli] cp $ff jr z, .asm_881f6 cp c jr c, .asm_881e9 dec a dec hl ld [hli], a jr .asm_881e9 .asm_881f6 pop hl inc hl jr .asm_881d3 .asm_881fa ld a, [$d10c] and a pop bc pop de ret ; 88201 Function88201: ; 88201 push hl push bc ld hl, NumItems inc hl ld c, a ld b, $0 add hl, bc add hl, bc inc hl ld a, [hl] pop bc pop hl ret ; 88211 Function88211: ; 88211 push bc ld hl, NumItems ld a, [$d107] ld c, a ld b, $0 inc hl add hl, bc add hl, bc ld a, [CurItem] ld c, a ld a, [hli] cp $ff jr z, .asm_88243 cp c jr nz, .asm_88243 ld a, [$d10c] ld c, a ld a, [hl] sub c ld b, c jr nc, .asm_88235 add c ld b, a .asm_88235 push bc ld hl, NumItems ld a, b ld [$d10c], a call TossItem pop bc ld a, c sub b .asm_88243 ld [$d10c], a pop bc ret ; 88248 INCBIN "baserom.gbc",$88248,$88258 - $88248 MovePlayerPicRight: ; 88258 hlcoord 6, 4 ld de, 1 jr MovePlayerPic MovePlayerPicLeft: ; 88260 hlcoord 13, 4 ld de, -1 ; fallthrough MovePlayerPic: ; 88266 ; Move player pic at hl by de * 7 tiles. ld c, $8 .loop push bc push hl push de xor a ld [hBGMapMode], a ld bc, $0707 ld a, $13 call Predef xor a ld [hBGMapThird], a call WaitBGMap call DelayFrame pop de pop hl add hl, de pop bc dec c ret z push hl push bc ld a, l sub e ld l, a ld a, h sbc d ld h, a ld bc, $0707 call ClearBox pop bc pop hl jr .loop ; 88297 ShowPlayerNamingChoices: ; 88297 ld hl, ChrisNameMenuHeader ld a, [PlayerGender] bit 0, a jr z, .GotGender ld hl, KrisNameMenuHeader .GotGender call LoadMenuDataHeader call Function1d81 ld a, [$cfa9] dec a call Function1db8 call Function1c17 ret ; 882b5 ChrisNameMenuHeader: ; 882b5 db $40 ; flags db 00, 00 ; start coords db 11, 10 ; end coords dw MenuData2_0x882be db 1 ; ???? db 0 ; default option ; 882be MenuData2_0x882be: ; 882be db $91 ; flags db 5 ; items db "NEW NAME@" db "CHRIS@" db "MAT@" db "ALLAN@" db "JON@" db 2 ; displacement db " NAME @" ; title ; 882e5 KrisNameMenuHeader: ; 882e5 db $40 ; flags db 00, 00 ; start coords db 11, 10 ; end coords dw MenuData2_0x882ee db 1 ; ???? db 0 ; default option ; 882ee MenuData2_0x882ee: ; 882ee db $91 ; flags db 5 ; items db "NEW NAME@" db "KRIS@" db "AMANDA@" db "JUANA@" db "JODI@" db 2 ; displacement db " NAME @" ; title ; 88318 INCBIN "baserom.gbc",$88318,$8832c - $88318 GetPlayerIcon: ; 8832c ; Get the player icon corresponding to gender ; Male ld de, ChrisSpriteGFX ld b, BANK(ChrisSpriteGFX) ld a, [PlayerGender] bit 0, a jr z, .done ; Female ld de, KrisSpriteGFX ld b, BANK(KrisSpriteGFX) .done ret ; 8833e Function8833e: ; 8833e ld hl, $4365 ld a, [PlayerGender] ; $d472 bit 0, a jr z, .asm_8834b ld hl, $4595 .asm_8834b ld de, $9000 ld bc, $230 ld a, $22 call FarCopyBytes ld hl, $47c5 ld de, $9230 ld bc, $60 ld a, $22 call FarCopyBytes ret ; 88365 (22:4365) INCBIN "baserom.gbc",$88365,$88825 - $88365 GetPlayerBackpic: ; 88825 ld a, [PlayerGender] bit 0, a jr z, .asm_88830 call GetKrisBackpic ret .asm_88830 ld hl, ChrisBackpic ld b, BANK(ChrisBackpic) ld de, $9310 ld c, $31 ld a, $40 call Predef ret ; 88840 Function88840: ; 88840 call WaitBGMap xor a ld [hBGMapMode], a ld e, $0 ld a, [PlayerGender] bit 0, a jr z, .asm_88851 ld e, $1 .asm_88851 ld a, e ld [TrainerClass], a ld de, ChrisPic ld a, [PlayerGender] bit 0, a jr z, .asm_88862 ld de, KrisPic .asm_88862 ld hl, VTiles2 ld b, $22 ld c, $31 call Get2bpp call WaitBGMap ld a, $1 ld [hBGMapMode], a ret ; 88874 DrawIntroPlayerPic: ; 88874 ; Draw the player pic at (6,4). ; Get class ld e, 0 ld a, [PlayerGender] bit 0, a jr z, .GotClass ld e, 1 .GotClass ld a, e ld [TrainerClass], a ; Load pic ld de, ChrisPic ld a, [PlayerGender] bit 0, a jr z, .GotPic ld de, KrisPic .GotPic ld hl, VTiles2 ld b, BANK(ChrisPic) ld c, 7 * 7 ; dimensions call Get2bpp ; Draw xor a ld [$ffad], a hlcoord 6, 4 ld bc, $0707 ld a, $13 call Predef ret ; 888a9 ChrisPic: ; 888a9 INCBIN "baserom.gbc",$888a9,$88bb9 - $888a9 ; 88bb9 KrisPic: ; 88bb9 INCBIN "baserom.gbc",$88bb9,$88ec9 - $88bb9 ; 88ec9 GetKrisBackpic: ; 88ec9 ; Kris's backpic is uncompressed. ld de, KrisBackpic ld hl, $9310 lb bc, BANK(KrisBackpic), 7 * 7 ; dimensions call Get2bpp ret ; 88ed6 KrisBackpic: ; 88ed6 INCBIN "baserom.gbc",$88ed6,$89116 - $88ed6 ; 89116 INCBIN "baserom.gbc",$89116,$89160 - $89116 Function89160: ; 89160 push af ld a, $4 call GetSRAMBank pop af ret ; 89168 ; known jump sources: 89e63 (22:5e63), 8a166 (22:6166), 8a2e5 (22:62e5) Function89168: ; 89168 (22:5168) ld hl, GameTimerPause ; $cfbc set 7, [hl] ret ; known jump sources: 8a13b (22:613b) Function8916e: ; 8916e (22:516e) ld hl, GameTimerPause ; $cfbc res 7, [hl] ret ; known jump sources: 8a140 (22:6140) Function89174: ; 89174 (22:5174) ld hl, GameTimerPause ; $cfbc bit 7, [hl] ret ; known jump sources: 89e00 (22:5e00) Function8917a: ; 8917a (22:517a) ld hl, DefaultFlypoint ; $d002 ld bc, $32 xor a call ByteFill ret ; known jump sources: 8a772 (22:6772), 8a782 (22:6782), 8aacc (22:6acc), 8ab1c (22:6b1c), 8b3aa (22:73aa) Function89185: ; 89185 (22:5185) push de push hl .asm_89187 ld a, [de] inc de cp [hl] jr nz, .asm_89190 inc hl dec c jr nz, .asm_89187 .asm_89190 pop hl pop de ret Function89193: ; 89193 push de push hl .asm_89195 ld a, [hli] ld [de], a inc de dec c jr nz, .asm_89195 pop hl pop de ret ; 8919e ; known jump sources: 8a46f (22:646f) Function8919e: ; 8919e (22:519e) ld a, c and a ret z .asm_891a1 ld a, [de] inc de cp $50 jr nz, .asm_891a1 dec c jr nz, .asm_891a1 ret Function891ab: ; 891ab call Function89240 callba Function104061 call Function8923c ret ; 891b8 Function891b8: ; 891b8 call Function8923c ld hl, TileMap ld a, $7f ld bc, $0168 call ByteFill call DelayFrame ret ; 891ca ; known jump sources: 891d4 (22:51d4) Function891ca: ; 891ca (22:51ca) push bc call Function891b8 call WaitBGMap pop bc ret ; known jump sources: 8a748 (22:6748) Function891d3: ; 891d3 (22:51d3) push bc call Function891ca ld c, $10 call DelayFrames pop bc ret Function891de: ; 891de call Function8923c call ClearPalettes ld hl, AttrMap ld a, $7 ld bc, $0168 call ByteFill ld hl, TileMap ld a, $7f ld bc, $0168 call ByteFill call Function891ab ret ; 891fe Function891fe: ; 891fe push bc call Function891de ld c, $10 call DelayFrames pop bc ret ; 89209 Function89209: ; 89209 ld a, $1 ld [$c2ce], a ret ; 8920f Function8920f: ; 8920f ld a, $0 ld [$c2ce], a ret ; 89215 Function89215: ; 89215 push hl push bc ld bc, $0939 add hl, bc ld [hl], a pop bc pop hl ret ; 8921f ; known jump sources: 89a2a (22:5a2a) Function8921f: ; 8921f (22:521f) push de ld de, $14 add hl, de inc hl ld a, $7f .asm_89227 push bc push hl .asm_89229 ld [hli], a dec c jr nz, .asm_89229 pop hl add hl, de pop bc dec b jr nz, .asm_89227 pop de ret ; known jump sources: 8a037 (22:6037), 8ab0c (22:6b0c) Function89235: ; 89235 (22:5235) call Functiona36 call PlayClickSFX ret Function8923c: ; 8923c xor a ld [hBGMapMode], a ret ; 89240 Function89240: ; 89240 ld a, $1 ld [hBGMapMode], a ret ; 89245 ; known jump sources: 89e72 (22:5e72), 8a163 (22:6163), 8a2e2 (22:62e2) Function89245: ; 89245 (22:5245) callba Function14ea5 ret c callba Function150b9 and a ret ; known jump sources: 8a73a (22:673a), 8a8ba (22:68ba), 8a8ec (22:68ec), 8ab32 (22:6b32) Function89254: ; 89254 (22:5254) ld bc, $d07 jr Function89261 Function89259: ; 89259 ld bc, $0e07 jr Function89261 Function8925e: ; 8925e ld bc, $0e0c Function89261: ; 89261 push af push bc ld hl, $52a3 call Function1d3c pop bc ld hl, $cf82 ld a, c ld [hli], a ld a, b ld [hli], a ld a, c add $4 ld [hli], a ld a, b add $5 ld [hl], a pop af ld [$cf88], a call Function1c00 call Function8923c call Function89209 call Function1d81 push af ld c, $a call DelayFrames call Function1c17 call Function8920f pop af jr c, .asm_892a1 ld a, [$cfa9] cp $2 jr z, .asm_892a1 and a ret .asm_892a1 scf ret ; 892a3 INCBIN "baserom.gbc",$892a3,$892b4 - $892a3 ; known jump sources: 89313 (22:5313), 8a8f4 (22:68f4), 8b9ff (22:79ff) Function892b4: ; 892b4 (22:52b4) call Function8931b Function892b7: ; 892b7 ld d, b ld e, c ld hl, $0000 add hl, bc ld a, $50 ld bc, $0006 call ByteFill ld b, d ld c, e ld hl, $0006 add hl, bc ld a, $50 ld bc, $0006 call ByteFill ld b, d ld c, e ld hl, $000c add hl, bc xor a ld [hli], a ld [hl], a ld hl, $000e add hl, bc ld [hli], a ld [hl], a ld hl, $0010 add hl, bc ld [hl], a ld hl, $0011 add hl, bc ld a, $ff ld bc, $0008 call ByteFill ld b, d ld c, e ld e, $6 ld hl, $0019 add hl, bc .asm_892fb ld a, $ff ld [hli], a ld a, $ff ld [hli], a dec e jr nz, .asm_892fb ret ; 89305 ; known jump sources: 8a301 (22:6301) Function89305: ; 89305 (22:5305) xor a ld [MenuSelection], a ; $cf74 ld c, $28 .asm_8930b ld a, [MenuSelection] ; $cf74 inc a ld [MenuSelection], a ; $cf74 push bc call Function892b4 pop bc dec c jr nz, .asm_8930b ret Function8931b: ; 8931b push hl ld hl, $a03b ld a, [MenuSelection] dec a ld bc, $0025 call AddNTimes ld b, h ld c, l pop hl ret ; 8932d Function8932d: ; 8932d ld hl, $0000 add hl, bc Function89331: ; 89331 push bc ld c, $5 .asm_89334 ld a, [hli] cp $50 jr z, .asm_89340 cp $7f jr nz, .asm_89343 dec c jr nz, .asm_89334 .asm_89340 scf jr .asm_89344 .asm_89343 and a .asm_89344 pop bc ret ; 89346 ; known jump sources: 899b5 (22:59b5) Function89346: ; 89346 (22:5346) ld h, b ld l, c jr asm_8934e Function8934a: ; 8934a ld hl, $0006 add hl, bc asm_8934e: push bc ld c, $5 .asm_89351 ld a, [hli] cp $50 jr z, .asm_8935d cp $7f jr nz, .asm_89360 dec c jr nz, .asm_89351 .asm_8935d scf jr .asm_89361 .asm_89360 and a .asm_89361 pop bc ret ; 89363 Function89363: ; 89363 ld h, b ld l, c jr .asm_8936b ld hl, $0019 add hl, bc .asm_8936b push de ld e, $6 .asm_8936e ld a, [hli] cp $ff jr nz, .asm_8937e ld a, [hli] cp $ff jr nz, .asm_8937e dec e jr nz, .asm_8936e scf jr .asm_8937f .asm_8937e and a .asm_8937f pop de ret ; 89381 Function89381: ; 89381 push bc push de call Function89b45 jr c, .asm_89392 push hl ld a, $ff ld bc, $0008 call ByteFill pop hl .asm_89392 pop de ld c, $8 call Function89193 pop bc ret ; 8939a Function8939a: ; 8939a push bc ld hl, $0000 add hl, bc ld de, DefaultFlypoint ld c, $6 call Function89193 pop bc ld hl, $0011 add hl, bc ld de, $d008 call Function89381 ret ; 893b3 ; known jump sources: 893e5 (22:53e5) Function893b3: ; 893b3 (22:53b3) call DisableLCD call ClearSprites call Functione51 call Functione5f call Function893ef call Function8942b call Function89455 call EnableLCD ret Function893cc: ; 893cc call DisableLCD call ClearSprites call Functione51 call Functione5f call Function893ef call Function89464 call EnableLCD ret ; 893e2 ; known jump sources: 89b2e (22:5b2e), 89e60 (22:5e60), 89ee4 (22:5ee4), 8a160 (22:6160), 8a265 (22:6265) Function893e2: ; 893e2 (22:53e2) call Function89b1e call Function893b3 call Function8a5b6 call Function8949c ret Function893ef: ; 893ef ld de, VTiles0 ld hl, $540b ld bc, $0020 ld a, $22 call FarCopyBytes ret ; 893fe INCBIN "baserom.gbc",$893fe,$8942b - $893fe ; known jump sources: 893c2 (22:53c2) Function8942b: ; 8942b (22:542b) ld de, $8020 ld hl, $61bf ld bc, $80 ld a, $5e call FarCopyBytes ld de, $80a0 ld hl, $664f ld bc, $40 ld a, $5e call FarCopyBytes ret ; known jump sources: 89b9c (22:5b9c), 89c4a (22:5c4a), 89fe1 (22:5fe1), 8a36a (22:636a), 8a370 (22:6370), 8a6b8 (22:66b8), 8a70a (22:670a), 8a726 (22:6726), 8a745 (22:6745), 8a90f (22:690f), 8aa52 (22:6a52), 8aa61 (22:6a61), 8aa69 (22:6a69), 8b563 (22:7563), 8b595 (22:7595), 8b5b8 (22:75b8), 8b5c9 (22:75c9), 8b610 (22:7610), 8b63d (22:763d) Function89448: ; 89448 (22:5448) push af ld hl, Sprites ; $c400 ld d, $60 xor a .asm_8944f ld [hli], a dec d jr nz, .asm_8944f pop af ret ; known jump sources: 893c5 (22:53c5) Function89455: ; 89455 (22:5455) ld hl, $61bf ld de, $90c0 ld bc, $490 ld a, $5e call FarCopyBytes ret Function89464: ; 89464 ld hl, $59ef ld de, VTiles2 ld bc, $0200 ld a, $5e call FarCopyBytes ld hl, $604f ld de, $9200 ld bc, $0170 ld a, $5e call FarCopyBytes ret ; 89481 Function89481: ; 89481 ld d, $2 call Function8934a ret c ld d, $0 ld hl, $0010 add hl, bc bit 0, [hl] ret z inc d ret ; 89492 ; known jump sources: 8a002 (22:6002), 8aa34 (22:6a34), 8aaa9 (22:6aa9), 8ab47 (22:6b47) Function89492: ; 89492 (22:5492) ld d, $0 ld a, [PlayerGender] ; $d472 bit 0, a ret z inc d ret Function8949c: ; 8949c ld a, [rSVBK] push af ld a, $5 ld [rSVBK], a ld hl, $54b3 ld de, $d038 ld bc, $0008 call CopyBytes pop af ld [rSVBK], a ret ; 894b3 INCBIN "baserom.gbc",$894b3,$894bb - $894b3 Function894bb: ; 894bb call Function894dc push bc call Function8956f call Function8949c call Function8a60d pop bc ret ; 894ca ; known jump sources: 8a005 (22:6005), 8aa37 (22:6a37), 8aaac (22:6aac), 8ab4a (22:6b4a) Function894ca: ; 894ca (22:54ca) push bc call Function894dc call Function895c7 call Function8949c call Function8a60d call Function32f9 pop bc ret Function894dc: ; 894dc push bc ld a, [rSVBK] push af ld a, $5 ld [rSVBK], a ld c, d ld b, $0 ld hl, $5509 add hl, bc add hl, bc ld a, [hli] ld h, [hl] ld l, a ld de, Unkn1Pals ld bc, $0018 call CopyBytes ld hl, $5557 ld de, $d018 ld bc, $0018 call CopyBytes pop af ld [rSVBK], a pop bc ret ; 89509 INCBIN "baserom.gbc",$89509,$8956f - $89509 Function8956f: ; 8956f push bc ld hl, $0010 add hl, bc ld d, h ld e, l ld hl, $000c add hl, bc ld b, h ld c, l callba Function4e929 ld a, c ld [TrainerClass], a ld a, [rSVBK] push af ld a, $5 ld [rSVBK], a ld hl, $d030 ld a, $ff ld [hli], a ld a, $7f ld [hl], a pop af ld [rSVBK], a ld a, [TrainerClass] ld h, $0 ld l, a add hl, hl add hl, hl ld de, $70ce add hl, de ld a, [rSVBK] push af ld a, $5 ld [rSVBK], a ld de, $d032 ld c, $4 .asm_895b1 ld a, $2 call GetFarByte ld [de], a inc de inc hl dec c jr nz, .asm_895b1 ld hl, $d036 xor a ld [hli], a ld [hl], a pop af ld [rSVBK], a pop bc ret ; 895c7 ; known jump sources: 894ce (22:54ce) Function895c7: ; 895c7 (22:55c7) ld a, [rSVBK] ; $ff00+$70 push af ld a, $5 ld [rSVBK], a ; $ff00+$70 ld hl, $55de ld de, $d030 ld bc, $8 call CopyBytes pop af ld [rSVBK], a ; $ff00+$70 ret ; 895de (22:55de) INCBIN "baserom.gbc",$895de,$895f2 - $895de Function895f2: ; 895f2 push bc xor a ld hl, AttrMap ld bc, $0168 call ByteFill call Function89605 call Function89655 pop bc ret ; 89605 Function89605: ; 89605 ld hl, $ce14 ld a, $1 ld de, $0014 ld c, $e .asm_8960f ld [hl], a dec c jr z, .asm_8961b add hl, de inc a ld [hl], a dec a add hl, de dec c jr nz, .asm_8960f .asm_8961b ld hl, $cf19 ld c, $a ld a, $2 .asm_89622 ld [hli], a dec a ld [hli], a inc a dec c jr nz, .asm_89622 ld hl, $ceb6 ld a, $4 ld bc, $0004 call ByteFill ld a, $5 ld bc, $000e call ByteFill ret ; 8963d Function8963d: ; 8963d ld hl, $ce21 ld a, $6 ld de, $0014 ld bc, $0707 .asm_89648 push hl ld c, $7 .asm_8964b ld [hli], a dec c jr nz, .asm_8964b pop hl add hl, de dec b jr nz, .asm_89648 ret ; 89655 Function89655: ; 89655 ld hl, $ceca ld de, $0014 ld a, $5 ld b, $4 .asm_8965f ld c, $12 push hl .asm_89662 ld [hli], a dec c jr nz, .asm_89662 pop hl add hl, de dec b jr nz, .asm_8965f ret ; 8966c Function8966c: ; 8966c push bc call Function89688 ld hl, $c4a4 ld c, $8 call Function896f5 pop bc ret ; 8967a ; known jump sources: 89885 (22:5885) Function8967a: ; 8967a (22:567a) push bc call Function89688 ld hl, $c4a2 ld c, $c call Function896f5 pop bc ret Function89688: ; 89688 ld hl, TileMap ld a, $1 ld e, $14 call Function896e1 ld a, $2 ld e, $14 call Function896eb ld a, $3 ld [hli], a ld a, $4 ld e, $12 call Function896e1 ld a, $6 ld [hli], a push bc ld c, $d .asm_896a9 call Function896cb dec c jr z, .asm_896b5 call Function896d6 dec c jr nz, .asm_896a9 .asm_896b5 pop bc ld a, $19 ld [hli], a ld a, $1a ld e, $12 call Function896e1 ld a, $1c ld [hli], a ld a, $2 ld e, $14 call Function896eb ret ; 896cb Function896cb: ; 896cb ld de, $0013 ld a, $7 ld [hl], a add hl, de ld a, $9 ld [hli], a ret ; 896d6 Function896d6: ; 896d6 ld de, $0013 ld a, $a ld [hl], a add hl, de ld a, $b ld [hli], a ret ; 896e1 Function896e1: ; 896e1 .asm_896e1 ld [hli], a inc a dec e ret z ld [hli], a dec a dec e jr nz, .asm_896e1 ret ; 896eb Function896eb: ; 896eb .asm_896eb ld [hli], a dec a dec e ret z ld [hli], a inc a dec e jr nz, .asm_896eb ret ; 896f5 Function896f5: ; 896f5 call Function8971f call Function89736 inc hl inc hl ld b, 2 ClearScreenArea: ; 0x896ff ; clears an area of the screen ; INPUT: ; hl = address of upper left corner of the area ; b = height ; c = width ld a, " " ; blank tile ld de, 20 ; screen width .loop push bc push hl .innerLoop ld [hli], a dec c jr nz, .innerLoop pop hl pop bc add hl, de dec b jr nz, .loop dec hl inc c inc c .asm_89713 ld a, $36 ld [hli], a dec c ret z ld a, $18 ld [hli], a dec c jr nz, .asm_89713 ; 0x8971c $f5 ret ; 0x8971f Function8971f: ; 8971f ld a, $2c ld [hli], a ld a, $2d ld [hld], a push hl ld de, $0014 add hl, de ld a, $31 ld [hli], a ld a, $32 ld [hld], a add hl, de ld a, $35 ld [hl], a pop hl ret ; 89736 Function89736: ; 89736 push hl inc hl inc hl ld e, c ld d, $0 add hl, de ld a, $2f ld [hli], a ld a, $30 ld [hld], a ld de, $0014 add hl, de ld a, $33 ld [hli], a ld a, $34 ld [hl], a add hl, de ld a, $1f ld [hl], a pop hl ret ; 89753 Function89753: ; 89753 ld a, $c ld [hl], a xor a call Function89215 ret ; 8975b Function8975b: ; 8975b ld a, $1d ld [hli], a inc a ld [hli], a ld a, $d ld [hl], a dec hl dec hl ld a, $4 ld e, $3 .asm_89769 call Function89215 inc hl dec e jr nz, .asm_89769 ret ; 89771 Function89771: ; 89771 ld a, $12 ld [hl], a ld a, $3 call Function89215 ret ; 8977a Function8977a: ; 8977a ld e, $4 ld d, $13 .asm_8977e ld a, d ld [hl], a ld a, $4 call Function89215 inc hl inc d dec e jr nz, .asm_8977e ld e, $e .asm_8978c ld a, d ld [hl], a xor a call Function89215 inc hl dec e jr nz, .asm_8978c ret ; 89797 Function89797: ; 89797 push bc ld a, $e ld [hl], a ld bc, $0014 add hl, bc ld a, $11 ld [hli], a ld a, $10 ld c, $8 .asm_897a6 ld [hli], a dec c jr nz, .asm_897a6 ld a, $f ld [hl], a pop bc ret ; 897af Function897af: ; 897af push bc ld hl, $0010 add hl, bc ld d, h ld e, l ld hl, $000c add hl, bc ld b, h ld c, l callba Function4e929 ld a, c ld [TrainerClass], a xor a ld [CurPartySpecies], a ld de, $9370 callba Function5120d pop bc ret ; 897d5 Function897d5: ; 897d5 push bc call Function8934a jr nc, .asm_897f3 ld hl, $ce21 xor a ld de, $0014 ld bc, $0707 .asm_897e5 push hl ld c, $7 .asm_897e8 ld [hli], a dec c jr nz, .asm_897e8 pop hl add hl, de dec b jr nz, .asm_897e5 pop bc ret .asm_897f3 ld a, $37 ld [$ffad], a ld hl, $c4e8 ld bc, $0707 ld a, $13 call Predef call Function8963d pop bc ret ; 89807 ; known jump sources: 89fff (22:5fff), 8aa31 (22:6a31), 8aaa6 (22:6aa6), 8ab44 (22:6b44) Function89807: ; 89807 (22:5807) ld hl, $5bef ld a, [PlayerGender] ; $d472 bit 0, a jr z, .asm_89814 ld hl, $5e1f .asm_89814 call DisableLCD ld de, $9370 ld bc, $230 ld a, $5e call FarCopyBytes call EnableLCD call DelayFrame ret ; known jump sources: 89894 (22:5894) Function89829: ; 89829 (22:5829) push bc ld bc, $705 ld de, $14 ld a, $37 .asm_89832 push bc push hl .asm_89834 ld [hli], a inc a dec c jr nz, .asm_89834 pop hl add hl, de pop bc dec b jr nz, .asm_89832 call Function8963d pop bc ret Function89844: ; 89844 call Function89481 call Function894bb call Function897af push bc call Function3200 call Function32f9 pop bc ret ; 89856 Function89856: ; 89856 push bc call Function891b8 pop bc call Function895f2 call Function8966c call Function899d3 call Function898aa call Function898be call Function898dc call Function898f3 push bc ld bc, $d008 ld hl, $c56a call Function89975 pop bc call Function897d5 ret ; 8987f ; known jump sources: 8a022 (22:6022), 8aa3a (22:6a3a), 8ab5c (22:6b5c) Function8987f: ; 8987f (22:587f) call Function891b8 call Function895f2 call Function8967a call Function899d3 ld hl, $c4b9 call Function8999c ld hl, $c4e9 call Function89829 call Function899b2 ld hl, $c509 call Function899c9 ld bc, $d008 ld hl, $c56a call Function89975 ret Function898aa: ; 898aa ld a, [MenuSelection] and a ret z push bc ld hl, $c4ba ld de, MenuSelection ld bc, $8102 call PrintNum pop bc ret ; 898be Function898be: ; 898be push bc ld de, DefaultFlypoint ld hl, DefaultFlypoint call Function89331 jr nc, .asm_898cd ld de, $5116 .asm_898cd ld hl, $c4bd ld a, [MenuSelection] and a jr nz, .asm_898d7 dec hl .asm_898d7 call PlaceString pop bc ret ; 898dc Function898dc: ; 898dc ld hl, $0006 add hl, bc push bc ld d, h ld e, l call Function8934a jr nc, .asm_898eb ld de, $5116 .asm_898eb ld hl, $c4f6 call PlaceString pop bc ret ; 898f3 Function898f3: ; 898f3 push bc ld hl, $000c add hl, bc ld d, h ld e, l call Function8934a jr c, .asm_8990a ld hl, $c509 ld bc, $8205 call PrintNum jr .asm_89913 .asm_8990a ld hl, $c509 ld de, $5116 call PlaceString .asm_89913 pop bc ret ; 89915 Function89915: ; 89915 push bc push hl ld de, $5942 ld c, $8 .asm_8991c ld a, [de] ld [hl], a ld a, $4 call Function89215 inc hl inc de dec c jr nz, .asm_8991c pop hl ld b, $4 ld c, $2b ld a, $8 ld de, $594a .asm_89932 push af ld a, [de] cp [hl] jr nz, .asm_8993b call Function8994e inc de .asm_8993b inc hl pop af dec a jr nz, .asm_89932 pop bc ret ; 89942 INCBIN "baserom.gbc",$89942,$8994e - $89942 Function8994e: ; 8994e push hl push de ld de, $0014 ld a, l sub e ld l, a ld a, h sbc d ld h, a ld a, c ld [hl], a ld a, b call Function89215 pop de pop hl ret ; 89962 Function89962: ; 89962 push bc ld c, $4 ld b, $20 .asm_89967 ld a, b ld [hl], a ld a, $4 call Function89215 inc hl inc b dec c jr nz, .asm_89967 pop bc ret ; 89975 Function89975: ; 89975 push bc ld e, $8 .asm_89978 ld a, [bc] ld d, a call Function8998b swap d inc hl ld a, d call Function8998b inc bc inc hl dec e jr nz, .asm_89978 pop bc ret ; 8998b Function8998b: ; 8998b push bc and $f cp $a jr nc, .asm_89997 ld c, $f6 add c jr .asm_89999 .asm_89997 ld a, $7f .asm_89999 ld [hl], a pop bc ret ; 8999c ; known jump sources: 8988e (22:588e) Function8999c: ; 8999c (22:599c) ld de, PlayerName ; $d47d call PlaceString inc bc ld h, b ld l, c ld de, $59ac call PlaceString ret ; 899ac (22:59ac) INCBIN "baserom.gbc",$899ac,$899b2 - $899ac ; known jump sources: 89897 (22:5897) Function899b2: ; 899b2 (22:59b2) ld bc, PlayerName ; $d47d call Function89346 jr c, .asm_899bf ld de, PlayerName ; $d47d jr .asm_899c2 .asm_899bf ld de, $5116 .asm_899c2 ld hl, $c4f6 call PlaceString ret ; known jump sources: 8989d (22:589d) Function899c9: ; 899c9 (22:59c9) ld de, PlayerID ; $d47b ld bc, $8205 call PrintNum ret Function899d3: ; 899d3 ld hl, $c4f1 call Function89753 ld hl, $c506 call Function8975b ld hl, $c555 call Function89771 ld hl, $c57d call Function8977a ld hl, $c505 call Function89797 ld hl, $c4f2 call Function89962 ld hl, $c556 call Function89915 ret ; 899fe Function899fe: ; 899fe push bc push hl ld hl, $0019 add hl, bc ld b, h ld c, l pop hl call Function89a0c pop bc ret ; 89a0c Function89a0c: ; 89a0c push hl call Function89363 pop hl jr c, .asm_89a1c ld d, h ld e, l callba Function11c08f ret .asm_89a1c ld de, $5153 call PlaceString ret ; 89a23 ; known jump sources: 8a729 (22:6729), 8a818 (22:6818), 8a8ac (22:68ac), 8a8fa (22:68fa), 8aab6 (22:6ab6), 8ab24 (22:6b24) Function89a23: ; 89a23 (22:5a23) ld hl, $c57c ld b, $4 ld c, $12 call Function8921f ret ; known jump sources: 8a6ee (22:66ee), 8a80d (22:680d), 8aa3d (22:6a3d) Function89a2e: ; 89a2e (22:5a2e) ld hl, $c59b ld b, $2 ld c, $6 call TextBox ld hl, $c5b1 ld de, $5a4e call PlaceString ld hl, $c5c5 ld de, $5a53 call PlaceString call Function89655 ret ; 89a4e (22:5a4e) INCBIN "baserom.gbc",$89a4e,$89a57 - $89a4e Function89a57: ; 89a57 call Function354b bit 6, c jr nz, .asm_89a78 bit 7, c jr nz, .asm_89a81 bit 0, c jr nz, .asm_89a70 bit 1, c jr nz, .asm_89a70 bit 3, c jr nz, .asm_89a74 scf ret .asm_89a70 ld a, $1 and a ret .asm_89a74 ld a, $2 and a ret .asm_89a78 call Function89a9b call nc, Function89a8a ld a, $0 ret .asm_89a81 call Function89a93 call nc, Function89a8a ld a, $0 ret ; 89a8a Function89a8a: ; 89a8a push af ld de, $0062 call PlaySFX pop af ret ; 89a93 Function89a93: ; 89a93 ld d, $28 ld e, $1 call Function89aa3 ret ; 89a9b Function89a9b: ; 89a9b ld d, $1 ld e, $ff call Function89aa3 ret ; 89aa3 Function89aa3: ; 89aa3 ld a, [MenuSelection] ld c, a push bc .asm_89aa8 ld a, [MenuSelection] cp d jr z, .asm_89ac0 add e jr nz, .asm_89ab2 inc a .asm_89ab2 ld [MenuSelection], a call Function89ac7 jr nc, .asm_89aa8 call Function89ae6 pop bc and a ret .asm_89ac0 pop bc ld a, c ld [MenuSelection], a scf ret ; 89ac7 Function89ac7: ; 89ac7 call Function89160 call Function8931b call Function89ad4 call CloseSRAM ret ; 89ad4 Function89ad4: ; 89ad4 push de call Function8932d jr c, .asm_89ae3 ld hl, $0011 add hl, bc call Function89b45 jr c, .asm_89ae4 .asm_89ae3 and a .asm_89ae4 pop de ret ; 89ae6 Function89ae6: ; 89ae6 ld hl, $d031 xor a ld [hl], a ld a, [MenuSelection] .asm_89aee cp $6 jr c, .asm_89afc sub $5 ld c, a ld a, [hl] add $5 ld [hl], a ld a, c jr .asm_89aee .asm_89afc ld [$d030], a ret ; 89b00 ; known jump sources: 89b24 (22:5b24) Function89b00: ; 89b00 (22:5b00) callba Function49351 ret ; 89b07 (22:5b07) INCBIN "baserom.gbc",$89b07,$89b1e - $89b07 ; known jump sources: 893e2 (22:53e2) Function89b1e: ; 89b1e (22:5b1e) callba Function4a485 call Function89b00 ret ; known jump sources: 8a24f (22:624f), 8a66d (22:666d), 8a9b5 (22:69b5), 8aba5 (22:6ba5) Function89b28: ; 89b28 (22:5b28) call Function891de call WhiteBGMap call Function893e2 call Function1d7d call Function891ab call Function32f9 ret ; known jump sources: 8a182 (22:6182), 8a3c6 (22:63c6), 8a3d5 (22:63d5), 8a9d6 (22:69d6), 8b4bd (22:74bd) Function89b3b: ; 89b3b (22:5b3b) call Function8923c callba Function48cda ret Function89b45: ; 89b45 push hl push bc ld c, $10 ld e, $0 .asm_89b4b ld a, [hli] ld b, a and $f cp $a jr c, .asm_89b5a ld a, c cp $b jr nc, .asm_89b74 jr .asm_89b71 .asm_89b5a dec c swap b inc e ld a, b and $f cp $a jr c, .asm_89b6c ld a, c cp $b jr nc, .asm_89b74 jr .asm_89b71 .asm_89b6c inc e dec c jr nz, .asm_89b4b dec e .asm_89b71 scf jr .asm_89b75 .asm_89b74 and a .asm_89b75 pop bc pop hl ret ; 89b78 ; known jump sources: 8b47a (22:747a) Function89b78: ; 89b78 (22:5b78) push bc ld a, [$d010] cp $10 jr c, .asm_89b8c ld a, e and a jr z, .asm_89b89 ld c, e .asm_89b85 inc hl dec c jr nz, .asm_89b85 .asm_89b89 ld a, $7f ld [hl], a .asm_89b8c ld a, [$d010] inc a and $1f ld [$d010], a pop bc ret ; known jump sources: 8a6fb (22:66fb), 8aa43 (22:6a43) Function89b97: ; 89b97 (22:5b97) call Function89c34 jr c, .asm_89ba0 call Function89448 ret .asm_89ba0 ld a, [$d011] ld hl, $5bd8 and a jr z, .asm_89bae .asm_89ba9 inc hl inc hl dec a jr nz, .asm_89ba9 .asm_89bae ld a, [hli] ld h, [hl] ld l, a ld de, Sprites ; $c400 .asm_89bb4 ld a, [hli] cp $ff ret z ld c, a ld b, $0 .asm_89bbb push hl ld a, [hli] ld [de], a inc de ld a, [hli] add b ld [de], a inc de ld a, $8 add b ld b, a ld a, [hli] ld [de], a inc de ld a, [hli] ld [de], a inc de pop hl dec c jr nz, .asm_89bbb ld b, $0 ld c, $4 add hl, bc jr .asm_89bb4 ; 89bd8 (22:5bd8) INCBIN "baserom.gbc",$89bd8,$89c34 - $89bd8 ; known jump sources: 89b97 (22:5b97), 89c44 (22:5c44) Function89c34: ; 89c34 (22:5c34) push bc ld a, [$d012] ld c, a inc a and $f ld [$d012], a ld a, c cp $8 pop bc ret ; known jump sources: 8b481 (22:7481), 8b54e (22:754e), 8b5ff (22:75ff) Function89c44: ; 89c44 (22:5c44) call Function89c34 jr c, .asm_89c4f push de call Function89448 pop de ret .asm_89c4f ld hl, Sprites ; $c400 push de ld a, b ld [hli], a ld d, $8 ld a, e and a ld a, c jr z, .asm_89c60 .asm_89c5c add d dec e jr nz, .asm_89c5c .asm_89c60 pop de ld [hli], a ld a, d ld [hli], a xor a ld [hli], a ret ; known jump sources: 8a6fe (22:66fe), 8aa46 (22:6a46) Function89c67: ; 89c67 (22:5c67) call Function354b ld b, $0 bit 0, c jr z, .asm_89c74 ld b, $1 and a ret .asm_89c74 bit 1, c jr z, .asm_89c7a scf ret .asm_89c7a xor a bit 6, c jr z, .asm_89c81 ld a, $1 .asm_89c81 bit 7, c jr z, .asm_89c87 ld a, $2 .asm_89c87 bit 5, c jr z, .asm_89c8d ld a, $3 .asm_89c8d bit 4, c jr z, .asm_89c93 ld a, $4 .asm_89c93 and a ret z dec a ld c, a ld d, $0 ld hl, $5cbf ld a, [$d02f] and a jr z, .asm_89ca5 ld hl, $5ccf .asm_89ca5 ld a, [$d011] and a jr z, .asm_89cb1 ld e, $4 .asm_89cad add hl, de dec a jr nz, .asm_89cad .asm_89cb1 ld e, c add hl, de ld a, [hl] and a ret z dec a ld [$d011], a xor a ld [$d012], a ret ; 89cbf (22:5cbf) INCBIN "baserom.gbc",$89cbf,$89cdf - $89cbf ; known jump sources: 8a50e (22:650e) Function89cdf: ; 89cdf (22:5cdf) ld a, $10 add b ld b, a ld a, $8 add c ld c, a ld e, $2 ld a, $2 ld hl, Sprites ; $c400 .asm_89cee push af push bc ld d, $4 .asm_89cf2 ld a, b ld [hli], a ld a, c ld [hli], a ld a, e ld [hli], a ld a, $1 ld [hli], a ld a, $8 add c ld c, a inc e dec d jr nz, .asm_89cf2 pop bc ld a, $8 add b ld b, a pop af dec a jr nz, .asm_89cee ret ; known jump sources: 8a6c8 (22:66c8), 8ab89 (22:6b89) Function89d0d: ; 89d0d (22:5d0d) call Function8923c ld a, [rSVBK] ; $ff00+$70 push af ld a, $5 ld [rSVBK], a ; $ff00+$70 ld c, $8 ld de, Unkn1Pals ; $d000 .asm_89d1c push bc ld hl, $5d4e ld bc, $8 call CopyBytes pop bc dec c jr nz, .asm_89d1c ld hl, $5d56 ld de, $d010 ld bc, $8 call CopyBytes pop af ld [rSVBK], a ; $ff00+$70 call Function32f9 callba Function845db call Function89240 ld c, $18 call DelayFrames call Function3d47 ret ; 89d4e (22:5d4e) INCBIN "baserom.gbc",$89d4e,$89d5e - $89d4e ; known jump sources: 8a18b (22:618b), 8a9de (22:69de), 8b989 (22:7989) Function89d5e: ; 89d5e (22:5d5e) push af call Function1d3c pop af ld [$cf88], a call Function8923c call Function1c89 call Function1c10 ld hl, $cfa5 set 7, [hl] ret ; known jump sources: 8a191 (22:6191) Function89d75: ; 89d75 (22:5d75) push hl call Function8923c call _hl_ callba Function104148 pop hl jr asm_89d90 ; known jump sources: 8a9e4 (22:69e4), 8b98f (22:798f) Function89d85: ; 89d85 (22:5d85) push hl call Function8923c call _hl_ call Function3238 pop hl ; known jump sources: 89d83 (22:5d83), 89da5 (22:5da5) asm_89d90: ; 89d90 (22:5d90) call Function8923c push hl call _hl_ call Function89dab ld a, [$cfa9] push af call Function891ab pop af pop hl jr c, .asm_89da9 jr z, asm_89d90 scf ret .asm_89da9 and a ret ; known jump sources: 89d97 (22:5d97) Function89dab: ; 89dab (22:5dab) call Function8923c callba Function241ba call Function8923c ld a, c ld hl, $cfa8 and [hl] ret z bit 0, a jr nz, .asm_89dc7 bit 1, a jr nz, .asm_89dd9 xor a ret .asm_89dc7 call PlayClickSFX ld a, [$cfa3] ld c, a ld a, [$cfa9] cp c jr z, .asm_89dd9 call Function1bee scf ret .asm_89dd9 call PlayClickSFX ld a, $1 and a ret ; no known jump sources Function89de0: ; 89de0 (22:5de0) call ClearSprites call Function89e0a jr c, .asm_89e00 ld c, $1 .asm_89dea call Function8a31c jr z, .asm_89dfd ld a, [$cfa9] ld c, a push bc ld hl, Jumptable_89e04 ld a, e dec a rst JumpTable pop bc jr .asm_89dea .asm_89dfd call Function891fe .asm_89e00 call Function8917a ret ; no known jump sources Jumptable_89e04: ; 89e04 (22:5e04) dw Function8a62c dw Function8a999 dw Function8ab93 ; known jump sources: 89de3 (22:5de3) Function89e0a: ; 89e0a (22:5e0a) call Function89160 call Function8b3b0 call CloseSRAM ld hl, Jumptable_89e18 rst JumpTable ret ; no known jump sources Jumptable_89e18: ; 89e18 (22:5e18) dw Function89e1e dw Function8a116 dw Function8a2aa ; no known jump sources Function89e1e: ; 89e1e (22:5e1e) call Function89160 ld bc, $a037 call Function8b36c call CloseSRAM xor a ld [$d02d], a ; known jump sources: 89e3a (22:5e3a) asm_89e2e: ; 89e2e (22:5e2e) ld a, [$d02d] ld hl, Jumptable_89e3c rst JumpTable ret ; known jump sources: 89e97 (22:5e97), 89ede (22:5ede), 89f67 (22:5f67), 89fea (22:5fea), 89ff3 (22:5ff3), 8a03a (22:603a), 8a049 (22:6049), 8a052 (22:6052), 8a09e (22:609e), 8a0e9 (22:60e9), 8a0f2 (22:60f2), 8a0ff (22:60ff) Function89e36: ; 89e36 (22:5e36) ld hl, $d02d inc [hl] jr asm_89e2e ; no known jump sources Jumptable_89e3c: ; 89e3c (22:5e3c) dw Function89e6f dw Function89fed dw Function89ff6 dw Function8a03d dw Function89eb9 dw Function89efd dw Function89fce dw Function8a04c dw Function8a055 dw Function8a0e6 dw Function8a0ec dw Function8a0f5 dw Function89e58 dw Function89e68 ; no known jump sources Function89e58: ; 89e58 (22:5e58) ld a, $1 call Function8a2fe call Function891fe call Function893e2 call Function89168 and a ret ; no known jump sources Function89e68: ; 89e68 (22:5e68) call Function891fe ld a, $1 scf ret ; no known jump sources Function89e6f: ; 89e6f (22:5e6f) call Function891de call Function89245 call Function89ee1 call Function89e9a ld hl, $c4f7 call Function8a58d ld a, $5 ld hl, $ce30 call Function8a5a3 ld a, $6 ld hl, $ce33 call Function8a5a3 call Function891ab call Function32f9 jp Function89e36 ; known jump sources: 89e78 (22:5e78), 89ebf (22:5ebf) Function89e9a: ; 89e9a (22:5e9a) ld a, [rSVBK] ; $ff00+$70 push af ld a, $5 ld [rSVBK], a ; $ff00+$70 ld hl, $5eb1 ld de, $d028 ld bc, $8 call CopyBytes pop af ld [rSVBK], a ; $ff00+$70 ret ; 89eb1 (22:5eb1) INCBIN "baserom.gbc",$89eb1,$89eb9 - $89eb1 ; no known jump sources Function89eb9: ; 89eb9 (22:5eb9) call Function891fe call Function89ee1 call Function89e9a ld hl, $c4f7 call Function8a58d ld a, $5 ld hl, $ce30 call Function8a5a3 ld a, $6 ld hl, $ce33 call Function8a5a3 call Function891ab call Function32f9 jp Function89e36 ; known jump sources: 89e75 (22:5e75), 89ebc (22:5ebc) Function89ee1: ; 89ee1 (22:5ee1) call WhiteBGMap call Function893e2 call Function8923c callba Function4a3a7 callba Function49384 ld hl, $c4a1 call Function8a53d ret ; no known jump sources Function89efd: ; 89efd (22:5efd) ld hl, $d012 ld a, $ff ld [hli], a xor a ld [hli], a ld [hli], a ld [hli], a ld [hli], a ld [hl], a .asm_89f09 ld hl, $d012 inc [hl] ld a, [hli] and $3 jr nz, .asm_89f2e ld a, [hl] cp $4 jr nc, .asm_89f2e ld b, $32 inc [hl] ld a, [hl] dec a jr z, .asm_89f26 ld c, a .asm_89f1f ld a, $b add b ld b, a dec c jr nz, .asm_89f1f .asm_89f26 ld c, $e8 ld a, [$d013] call Function89fa5 .asm_89f2e ld a, [$d013] and a jr z, .asm_89f58 .asm_89f34 call Function89f6a ld e, a ld a, c cp $a8 jr nc, .asm_89f4d cp $46 jr c, .asm_89f4d ld d, $0 dec e ld hl, $d014 add hl, de set 0, [hl] inc e jr .asm_89f51 .asm_89f4d ld a, $2 add c ld c, a .asm_89f51 ld a, e call Function89f77 dec a jr nz, .asm_89f34 .asm_89f58 call DelayFrame ld hl, $d014 ld c, $4 .asm_89f60 ld a, [hli] and a jr z, .asm_89f09 dec c jr nz, .asm_89f60 jp Function89e36 ; known jump sources: 89f34 (22:5f34) Function89f6a: ; 89f6a (22:5f6a) push af ld de, $10 call Function89f9a ld a, [hli] ld b, a ld a, [hl] ld c, a pop af ret ; known jump sources: 89f52 (22:5f52) Function89f77: ; 89f77 (22:5f77) push af ld de, $10 call Function89f9a ld d, $2 .asm_89f80 push bc ld e, $2 .asm_89f83 ld a, b ld [hli], a ld a, c ld [hli], a inc hl inc hl ld a, $8 add c ld c, a dec e jr nz, .asm_89f83 pop bc ld a, $8 add b ld b, a dec d jr nz, .asm_89f80 pop af ret ; known jump sources: 89f6e (22:5f6e), 89f7b (22:5f7b), 89fa8 (22:5fa8) Function89f9a: ; 89f9a (22:5f9a) dec a ld hl, Sprites ; $c400 and a ret z .asm_89fa0 add hl, de dec a jr nz, .asm_89fa0 ret ; known jump sources: 89f2b (22:5f2b) Function89fa5: ; 89fa5 (22:5fa5) ld de, $10 call Function89f9a ld e, $2 ld d, $a .asm_89faf push bc ld a, $2 .asm_89fb2 push af ld a, b ld [hli], a ld a, c ld [hli], a ld a, d inc d ld [hli], a ld a, $1 ld [hli], a ld a, $8 add c ld c, a pop af dec a jr nz, .asm_89fb2 pop bc ld a, $8 add b ld b, a dec e jr nz, .asm_89faf ret ; no known jump sources Function89fce: ; 89fce (22:5fce) call Function8a5b6 ld a, $5 ld hl, $ce30 call Function8a5a3 ld a, $6 ld hl, $ce33 call Function8a5a3 call Function89448 call Function32f9 call Function891ab jp Function89e36 ; no known jump sources Function89fed: ; 89fed (22:5fed) ld hl, $6102 call PrintText jp Function89e36 ; no known jump sources Function89ff6: ; 89ff6 (22:5ff6) call Function891fe call WhiteBGMap call Function893cc call Function89807 call Function89492 call Function894ca call Function89160 ld hl, $a603 ld a, $ff ld bc, $8 call ByteFill ld hl, $a603 ld de, $d008 call Function89381 call CloseSRAM call Function8987f call Function89160 ld hl, $c5a5 ld bc, $a007 call Function89a0c call CloseSRAM call Function891ab call Function89235 jp Function89e36 ; no known jump sources Function8a03d: ; 8a03d (22:603d) ld hl, $6107 call Function89209 call PrintText call Function8920f jp Function89e36 ; no known jump sources Function8a04c: ; 8a04c (22:604c) ld hl, $610c call PrintText jp Function89e36 ; no known jump sources Function8a055: ; 8a055 (22:6055) ld c, $7 ld b, $4 .asm_8a059 call Function8a0a1 inc c call Function8a0c9 push bc call Function8a58d pop bc call Function8a0de push bc push hl ld a, $5 call Function8a5a3 pop hl inc hl inc hl inc hl ld a, $6 call Function8a5a3 call Function3238 pop bc ld a, c cp $b jr nz, .asm_8a059 call Function8a0a1 ld hl, $c4fc call Function8a58d ld a, $5 ld hl, $ce35 call Function8a5a3 pop hl ld a, $6 ld hl, $ce38 call Function8a5a3 call Function3238 jp Function89e36 ; known jump sources: 8a059 (22:6059), 8a081 (22:6081) Function8a0a1: ; 8a0a1 (22:60a1) call Function8923c push bc call Function8a0c9 ld e, $6 .asm_8a0aa push hl ld bc, $6 add hl, bc ld d, [hl] call Function8a0c1 pop hl ld [hl], d call Function89215 ld bc, $14 add hl, bc dec e jr nz, .asm_8a0aa pop bc ret ; known jump sources: 8a0b0 (22:60b0) Function8a0c1: ; 8a0c1 (22:60c1) push hl ld bc, $939 add hl, bc ld a, [hl] pop hl ret ; known jump sources: 8a05d (22:605d), 8a0a5 (22:60a5), 8a0de (22:60de) Function8a0c9: ; 8a0c9 (22:60c9) push bc ld hl, TileMap ; $c4a0 (aliases: SpritesEnd) ld de, $14 ld a, b and a jr z, .asm_8a0d8 .asm_8a0d4 add hl, de dec b jr nz, .asm_8a0d4 .asm_8a0d8 ld d, $0 ld e, c add hl, de pop bc ret ; known jump sources: 8a065 (22:6065) Function8a0de: ; 8a0de (22:60de) call Function8a0c9 ld de, $939 add hl, de ret ; no known jump sources Function8a0e6: ; 8a0e6 (22:60e6) call Function8b539 jp Function89e36 ; no known jump sources Function8a0ec: ; 8a0ec (22:60ec) ld hl, $6111 call PrintText jp Function89e36 ; no known jump sources Function8a0f5: ; 8a0f5 (22:60f5) call Function8b555 jp nc, Function8a0ff ld hl, $d02d inc [hl] ; known jump sources: 8a0f8 (22:60f8) Function8a0ff: ; 8a0ff (22:60ff) jp Function89e36 ; 8a102 (22:6102) INCBIN "baserom.gbc",$8a102,$8a116 - $8a102 ; no known jump sources Function8a116: ; 8a116 (22:6116) ld a, $1 ld [$d030], a ld hl, $6176 call LoadMenuDataHeader .asm_8a121 call Function8923c call Function8a17b jr c, .asm_8a16b ld a, [$cfa9] ld [$d030], a dec d jr z, .asm_8a140 call Function8a20d jr c, .asm_8a121 xor a call Function8a2fe call Function8916e jr .asm_8a16b .asm_8a140 call Function89174 jr nz, .asm_8a14c call Function8a241 jr c, .asm_8a121 jr .asm_8a15a .asm_8a14c call WaitSFX ld de, $ce call PlaySFX ld c, $10 call DelayFrames .asm_8a15a call Function1c07 call Function891de call Function893e2 call Function89245 call Function89168 and a ret .asm_8a16b call Function89209 call Function1c17 call Function8920f scf ret ; 8a176 (22:6176) INCBIN "baserom.gbc",$8a176,$8a17b - $8a176 ; known jump sources: 8a124 (22:6124) Function8a17b: ; 8a17b (22:617b) ld de, $c4ae ld b, $5 ld c, $4 call Function89b3b ld hl, $619a ld a, [$d030] call Function89d5e ld hl, $61b0 call Function89d75 jr nc, .asm_8a198 ld a, $0 .asm_8a198 ld d, a ret ; 8a19a (22:619a) INCBIN "baserom.gbc",$8a19a,$8a20d - $8a19a ; known jump sources: 8a132 (22:6132), 8a2ca (22:62ca) Function8a20d: ; 8a20d (22:620d) ld hl, $6232 call PrintText ld a, $2 call Function89259 ret c ld hl, $6237 call PrintText ld a, $2 call Function89259 ret c xor a call Function8a2fe ld hl, $623c call PrintText xor a and a ret ; 8a232 (22:6232) INCBIN "baserom.gbc",$8a232,$8a241 - $8a232 ; known jump sources: 8a145 (22:6145), 8a2d2 (22:62d2) Function8a241: ; 8a241 (22:6241) call Function1d6e call Function891fe call Function8a262 jr nc, .asm_8a254 call Function891fe call Function89b28 scf ret .asm_8a254 call Function891de call WhiteBGMap call Function1d7d call Function891de and a ret ; known jump sources: 8a247 (22:6247) Function8a262: ; 8a262 (22:6262) call WhiteBGMap call Function893e2 call Function8923c callba Function4a3a7 callba Function49384 ld hl, $c4a1 call Function8a53d ld hl, $c4fc call Function8a58d ld a, $5 ld hl, $ce35 call Function8a5a3 ld a, $6 ld hl, $ce38 call Function8a5a3 xor a ld [$d02e], a ld bc, $d013 call Function8b36c call Function8b493 call Function891ab call Function32f9 call Function8b5e7 ret ; no known jump sources Function8a2aa: ; 8a2aa (22:62aa) ld hl, $62ef call LoadMenuDataHeader ld hl, $62f4 call PrintText ld a, $1 call Function89259 jr nc, .asm_8a2cf ld hl, $62f9 call PrintText ld a, $2 call Function89259 jr c, .asm_8a2ea call Function8a20d jr .asm_8a2ea .asm_8a2cf call Function1c07 call Function8a241 jr c, .asm_8a2ed ld a, $1 call Function8a313 call CloseSRAM call Function891de call Function89245 call Function89168 and a ret .asm_8a2ea call Function1c17 .asm_8a2ed scf ret ; 8a2ef (22:62ef) INCBIN "baserom.gbc",$8a2ef,$8a2fe - $8a2ef ; known jump sources: 89e5a (22:5e5a), 8a138 (22:6138), 8a226 (22:6226) Function8a2fe: ; 8a2fe (22:62fe) call Function8a313 call Function89305 ld hl, $a603 ld bc, $8 ld a, $ff call ByteFill call CloseSRAM ret ; known jump sources: 8a2d9 (22:62d9), 8a2fe (22:62fe) Function8a313: ; 8a313 (22:6313) ld c, a call Function89160 ld a, c ld [$a60b], a ret ; known jump sources: 89dea (22:5dea) Function8a31c: ; 8a31c (22:631c) push bc call Function8923c callba Function4a3a7 callba Function49384 ld hl, $c4a1 call Function8a53d ld hl, $c4fc call Function8a58d call Function8a3b2 pop bc ld a, c ld [$cf88], a ld [MenuSelection], a ; $cf74 call Function1c89 call Function1c10 ld hl, $cfa5 set 7, [hl] .asm_8a34e call Function8a3a2 call Function8923c call Function8a453 call Function8a4d3 call Function8a4fc call Function891ab call Function32f9 call Function8a383 jr c, .asm_8a370 jr z, .asm_8a34e .asm_8a36a call Function89448 xor a ld e, a ret .asm_8a370 call Function89448 call Function1bee call Function8a3a2 ld a, [MenuSelection] ; $cf74 cp $ff jr z, .asm_8a36a ld e, a and a ret ; known jump sources: 8a363 (22:6363) Function8a383: ; 8a383 (22:6383) callba Function241ba ld a, c ld hl, $cfa8 and [hl] ret z bit 0, a jr nz, .asm_8a399 bit 1, a jr nz, .asm_8a39e xor a ret .asm_8a399 call PlayClickSFX scf ret .asm_8a39e call PlayClickSFX ret ; known jump sources: 8a34e (22:634e), 8a376 (22:6376) Function8a3a2: ; 8a3a2 (22:63a2) ld a, [$cfa9] dec a ld hl, DefaultFlypoint ; $d002 ld e, a ld d, $0 add hl, de ld a, [hl] ld [MenuSelection], a ; $cf74 ret ; known jump sources: 8a338 (22:6338) Function8a3b2: ; 8a3b2 (22:63b2) ld a, $1 ld [MenuSelection], a ; $cf74 call Function8a4fc call Function8a3df jr nc, .asm_8a3ce ld de, $c4c8 ld b, $6 ld c, $9 call Function89b3b ld hl, $6435 jr .asm_8a3db .asm_8a3ce ld de, $c4c8 ld b, $8 ld c, $9 call Function89b3b ld hl, $640f .asm_8a3db call Function1d3c ret ; known jump sources: 8a3ba (22:63ba) Function8a3df: ; 8a3df (22:63df) call Function89160 ld hl, $a603 call Function89b45 call CloseSRAM ld hl, DefaultFlypoint ; $d002 jr c, .asm_8a3f8 ld de, $6408 call Function8a400 scf ret .asm_8a3f8 ld de, $640b call Function8a400 and a ret ; known jump sources: 8a3f3 (22:63f3), 8a3fb (22:63fb), 8a405 (22:6405) Function8a400: ; 8a400 (22:6400) ld a, [de] inc de ld [hli], a cp $ff jr nz, Function8a400 ret ; 8a408 (22:6408) INCBIN "baserom.gbc",$8a408,$8a453 - $8a408 ; known jump sources: 8a354 (22:6354) Function8a453: ; 8a453 (22:6453) ld hl, $c590 ld b, $4 ld c, $12 call TextBox ld hl, $c5b9 ld de, $6476 ld a, [MenuSelection] ; $cf74 cp $ff jr z, .asm_8a472 ld de, $6483 dec a ld c, a call Function8919e .asm_8a472 call PlaceString ret ; 8a476 (22:6476) INCBIN "baserom.gbc",$8a476,$8a4d3 - $8a476 ; known jump sources: 8a357 (22:6357) Function8a4d3: ; 8a4d3 (22:64d3) ld a, [MenuSelection] ; $cf74 cp $1 jr nz, .asm_8a4eb ld a, $5 ld hl, $ce35 call Function8a5a3 ld a, $7 ld hl, $ce38 call Function8a5a3 ret .asm_8a4eb ld a, $7 ld hl, $ce35 call Function8a5a3 ld a, $6 ld hl, $ce38 call Function8a5a3 ret ; known jump sources: 8a35a (22:635a), 8a3b7 (22:63b7) Function8a4fc: ; 8a4fc (22:64fc) ld a, [MenuSelection] ; $cf74 cp $3 jr nz, asm_8a529 ld hl, $d012 ld a, [hli] ld b, a ld a, [hld] add b ld [hl], a ld b, a ld c, $80 call Function89cdf call Function8a515 ret ; known jump sources: 8a511 (22:6511) Function8a515: ; 8a515 (22:6515) ld hl, $d012 ld a, [hl] cp $38 jr c, .asm_8a520 cp $3c ret c .asm_8a520 ld a, [$d013] cpl inc a ld [$d013], a ret ; known jump sources: 8a501 (22:6501) asm_8a529: ; 8a529 (22:6529) ld hl, $d012 ld a, $3c ld [hli], a ld a, $ff ld [hli], a ld hl, Sprites ; $c400 xor a ld bc, $20 call ByteFill ret ; known jump sources: 89ef9 (22:5ef9), 8a27a (22:627a), 8a32f (22:632f) Function8a53d: ; 8a53d (22:653d) push hl ld a, $15 ld c, $8 ld de, $14 call Function8a573 ld a, $1d ld c, $9 call Function8a57c inc a ld [hl], a call Function8a584 pop hl add hl, de ld a, $1f ld c, $8 call Function8a573 dec hl ld a, $51 ld [hli], a ld a, $26 ld c, $1 call Function8a57c ld a, $52 ld c, $3 call Function8a573 ld a, $27 ld c, $6 ; known jump sources: 8a545 (22:6545), 8a55a (22:655a), 8a56c (22:656c), 8a579 (22:6579) Function8a573: ; 8a573 (22:6573) ld [hl], a call Function8a584 inc a dec c jr nz, Function8a573 ret ; known jump sources: 8a54c (22:654c), 8a565 (22:6565), 8a581 (22:6581) Function8a57c: ; 8a57c (22:657c) ld [hl], a call Function8a584 dec c jr nz, Function8a57c ret ; known jump sources: 8a551 (22:6551), 8a574 (22:6574), 8a57d (22:657d) Function8a584: ; 8a584 (22:6584) push af ld a, $4 call Function89215 inc hl pop af ret ; known jump sources: 89e7e (22:5e7e), 89ec5 (22:5ec5), 8a061 (22:6061), 8a087 (22:6087), 8a280 (22:6280), 8a335 (22:6335) Function8a58d: ; 8a58d (22:658d) ld a, $2d ld bc, $606 ld de, $14 .asm_8a595 push bc push hl .asm_8a597 ld [hli], a inc a dec c jr nz, .asm_8a597 pop hl add hl, de pop bc dec b jr nz, .asm_8a595 ret ; known jump sources: 89e86 (22:5e86), 89e8e (22:5e8e), 89ecd (22:5ecd), 89ed5 (22:5ed5), 89fd6 (22:5fd6), 89fde (22:5fde), 8a06c (22:606c), 8a075 (22:6075), 8a08f (22:608f), 8a098 (22:6098), 8a288 (22:6288), 8a290 (22:6290), 8a4df (22:64df), 8a4e7 (22:64e7), 8a4f0 (22:64f0), 8a4f8 (22:64f8) Function8a5a3: ; 8a5a3 (22:65a3) ld bc, $603 ld de, $14 .asm_8a5a9 push bc push hl .asm_8a5ab ld [hli], a dec c jr nz, .asm_8a5ab pop hl add hl, de pop bc dec b jr nz, .asm_8a5a9 ret ; known jump sources: 893e8 (22:53e8), 89fce (22:5fce) Function8a5b6: ; 8a5b6 (22:65b6) ld a, [rSVBK] ; $ff00+$70 push af ld a, $5 ld [rSVBK], a ; $ff00+$70 ld hl, $65e5 ld de, $d020 ld bc, $18 call CopyBytes ld hl, $65fd ld de, MartPointer ; $d040 (aliases: Unkn2Pals) ld bc, $8 call CopyBytes ld hl, $6605 ld de, $d048 ld bc, $8 call CopyBytes pop af ld [rSVBK], a ; $ff00+$70 ret ; 8a5e5 (22:65e5) INCBIN "baserom.gbc",$8a5e5,$8a60d - $8a5e5 Function8a60d: ; 8a60d ld a, [rSVBK] push af ld a, $5 ld [rSVBK], a ld hl, $6624 ld de, Unkn2Pals ld bc, $0008 call CopyBytes pop af ld [rSVBK], a ret ; 8a624 INCBIN "baserom.gbc",$8a624,$8a62c - $8a624 ; no known jump sources Function8a62c: ; 8a62c (22:662c) call Function1d6e call Function891fe xor a call Function8b94a call Function8b677 .asm_8a639 xor a ld [$d033], a ld [$d032], a ld [$d0e3], a call Function8b7bd ld a, c and a jr z, .asm_8a66a ld [MenuSelection], a ; $cf74 ld b, a ld a, [$cf77] inc a ld [$d034], a push bc call Function8b960 ld a, c pop bc jr z, .asm_8a639 ld c, a ld hl, Jumptable_8a671 ld a, b ld [MenuSelection], a ; $cf74 ld a, c dec a rst JumpTable jr .asm_8a639 .asm_8a66a call Function891fe call Function89b28 ret ; no known jump sources Jumptable_8a671: ; 8a671 (22:6671) dw Function8a679 dw Function8a6cd dw Function8a8c3 dw Function8a930 ; known jump sources: 8a6a9 (22:66a9), 8a6b0 (22:66b0) Function8a679: ; 8a679 (22:6679) call Function891de call WhiteBGMap call Function893cc call Function89160 call Function8931b call Function89844 call CloseSRAM call Function89160 call Function8939a call Function89856 ld hl, $c5a5 call Function899fe call Function891ab call CloseSRAM .asm_8a6a3 call Function89a57 jr c, .asm_8a6a3 and a jr z, Function8a679 ld hl, Jumptable_8a6bc dec a rst JumpTable jr c, Function8a679 call Function891fe call Function8b677 call Function89448 ret ; no known jump sources Jumptable_8a6bc: ; 8a6bc (22:66bc) dw Function8a6c0 dw Function8a6c5 ; no known jump sources Function8a6c0: ; 8a6c0 (22:66c0) call PlayClickSFX and a ret ; no known jump sources Function8a6c5: ; 8a6c5 (22:66c5) call PlayClickSFX call Function89d0d scf ret ; no known jump sources Function8a6cd: ; 8a6cd (22:66cd) call Function891de call WhiteBGMap call Function893cc call Function89160 call Function8931b call Function89844 call Function8a757 call CloseSRAM .asm_8a6e5 call Function89160 call Function8931b call Function89856 call Function89a2e call Function891ab xor a ld [$d02f], a call CloseSRAM .asm_8a6fb call Function89b97 call Function89c67 jr c, .asm_8a718 ld a, b and a jr z, .asm_8a6fb call PlayClickSFX call Function89448 ld a, [$d011] ld hl, Jumptable_8a74f rst JumpTable jr nc, .asm_8a6e5 jr .asm_8a742 .asm_8a718 call Function89160 call Function8a765 call CloseSRAM jr nc, .asm_8a73f call Function8923c call Function89448 call Function89a23 ld hl, $c5a5 ld de, $5135 call PlaceString call WaitBGMap ld a, $2 call Function89254 jr c, .asm_8a6e5 .asm_8a73f call CloseSRAM .asm_8a742 call WhiteBGMap call Function89448 call Function891d3 call Function8b677 ret ; no known jump sources Jumptable_8a74f: ; 8a74f (22:674f) dw Function8a78c dw Function8a7cb dw Function8a818 dw Function8a8a1 ; known jump sources: 8a6df (22:66df) Function8a757: ; 8a757 (22:6757) call Function8939a xor a ld [$d010], a ld [$d011], a ld [$d012], a ret ; known jump sources: 8a71b (22:671b), 8a82e (22:682e), 8a8a4 (22:68a4) Function8a765: ; 8a765 (22:6765) call Function8931b push bc ld hl, $0 add hl, bc ld de, DefaultFlypoint ; $d002 ld c, $6 call Function89185 pop bc jr nz, .asm_8a78a push bc ld hl, $11 add hl, bc ld de, $d008 ld c, $8 call Function89185 pop bc jr nz, .asm_8a78a and a ret .asm_8a78a scf ret ; no known jump sources Function8a78c: ; 8a78c (22:678c) call Function891fe ld de, DefaultFlypoint ; $d002 ld b, $5 callba Function116c1 call Function89160 call Function8931b push bc ld hl, $0 add hl, bc ld d, h ld e, l ld hl, DefaultFlypoint ; $d002 call InitName call CloseSRAM call DelayFrame call Functiona57 call Function891de call WhiteBGMap call Function893cc call Function89160 pop bc call Function89844 call CloseSRAM and a ret ; no known jump sources Function8a7cb: ; 8a7cb (22:67cb) ld a, [MenuSelection] ; $cf74 push af call Function891de ld de, $d008 ld c, $0 callba Function17a68f jr c, .asm_8a7f4 ld hl, $d008 ld a, $ff ld bc, $8 call ByteFill ld h, d ld l, e ld de, $d008 ld c, $8 call Function89193 .asm_8a7f4 pop af ld [MenuSelection], a ; $cf74 call Function891de call WhiteBGMap call Function893cc call Function89160 call Function8931b call Function89844 call Function89856 call Function89a2e call Function891ab call CloseSRAM and a ret ; no known jump sources Function8a818: ; 8a818 (22:6818) call Function89a23 ld hl, DefaultFlypoint ; $d002 call Function89331 jr c, .asm_8a875 ld hl, $d008 call Function89b45 jr nc, .asm_8a87a call Function89160 call Function8a765 jr nc, .asm_8a863 call Function8931b push bc ld hl, $0 add hl, bc ld d, h ld e, l ld hl, DefaultFlypoint ; $d002 ld c, $6 call Function89193 pop bc ld hl, $11 add hl, bc ld d, h ld e, l ld hl, $d008 ld c, $8 call Function89193 ld hl, $c5a5 ld de, $6868 call PlaceString call WaitBGMap call Functiona36 .asm_8a863 call CloseSRAM scf ret ; 8a868 (22:6868) INCBIN "baserom.gbc",$8a868,$8a875 - $8a868 .asm_8a875 ld de, $688b jr .asm_8a87d .asm_8a87a ld de, $511c .asm_8a87d ld hl, $c5a5 call PlaceString call WaitBGMap call Functiona36 and a ret ; 8a88b (22:688b) INCBIN "baserom.gbc",$8a88b,$8a8a1 - $8a88b ; no known jump sources Function8a8a1: ; 8a8a1 (22:68a1) call Function89160 call Function8a765 call CloseSRAM jr nc, .asm_8a8bf call Function89a23 ld hl, $c5a5 ld de, $5135 call PlaceString ld a, $2 call Function89254 jr c, .asm_8a8c1 .asm_8a8bf scf ret .asm_8a8c1 and a ret ; no known jump sources Function8a8c3: ; 8a8c3 (22:68c3) call Function891de call WhiteBGMap call Function893cc call Function89160 call Function8931b call Function89844 call Function8939a call Function89856 call CloseSRAM call Function891ab ld hl, $c5a5 ld de, $6919 call PlaceString ld a, $2 call Function89254 jr c, .asm_8a90f call Function89160 call Function892b4 call CloseSRAM call Function89a23 call Function8923c ld hl, $c5a5 ld de, $6926 call PlaceString call WaitBGMap call Functiona36 .asm_8a90f call Function89448 call Function891fe call Function8b677 ret ; 8a919 (22:6919) INCBIN "baserom.gbc",$8a919,$8a930 - $8a919 ; no known jump sources Function8a930: ; 8a930 (22:6930) ld a, [MenuSelection] ; $cf74 push af xor a ld [$d032], a ld a, $1 ld [$d033], a ld a, [$d034] ld [$d0e3], a .asm_8a943 call Function8b7bd ld a, [$cf73] and $1 jr nz, .asm_8a953 ld a, c and a jr nz, .asm_8a943 pop af ret .asm_8a953 call Function89160 pop af cp c jr z, .asm_8a995 push bc ld [MenuSelection], a ; $cf74 call Function8931b push bc ld h, b ld l, c ld de, DefaultFlypoint ; $d002 ld bc, $25 call CopyBytes pop de pop bc ld a, c ld [MenuSelection], a ; $cf74 call Function8931b push bc ld h, b ld l, c ld bc, $25 call CopyBytes pop de ld hl, DefaultFlypoint ; $d002 ld bc, $25 call CopyBytes ld de, SFX_SWITCH_POKEMON call WaitPlaySFX ld de, SFX_SWITCH_POKEMON call WaitPlaySFX .asm_8a995 call CloseSRAM ret ; no known jump sources Function8a999: ; 8a999 (22:6999) ld hl, Unknown_8a9c9 call LoadMenuDataHeader ld c, $1 .asm_8a9a1 call Function8a9ce jr c, .asm_8a9bb push bc push de call Function1d6e pop de dec e ld a, e ld hl, Jumptable_8a9c5 rst JumpTable call Function891fe call Function89b28 pop bc jr .asm_8a9a1 .asm_8a9bb call Function89209 call Function1c17 call Function8920f ret ; no known jump sources Jumptable_8a9c5: ; 8a9c5 (22:69c5) dw Function8aa0a dw Function8ab3b ; 8a9c9 (22:69c9) Unknown_8a9c9: ; 8a9c9 INCBIN "baserom.gbc",$8a9c9,$8a9ce - $8a9c9 ; 8a9ce ; known jump sources: 8a9a1 (22:69a1) Function8a9ce: ; 8a9ce (22:69ce) push bc ld de, $c4fb ld b, $6 ld c, $6 call Function89b3b pop bc ld a, c ld hl, Unknown_8a9f2 call Function89d5e ld hl, Function8aa09 call Function89d85 jr c, .asm_8a9ed ld c, a ld e, a and a ret .asm_8a9ed ld c, a ld e, $0 scf ret ; 8a9f2 (22:69f2) Unknown_8a9f2: ; 8a9f2 INCBIN "baserom.gbc",$8a9f2,$8aa09 - $8a9f2 ; 8aa09 Function8aa09: ; 8aa09 ret ; 8aa0a ; no known jump sources Function8aa0a: ; 8aa0a (22:6a0a) ld a, $1 ld [$d02f], a ld [$d011], a xor a ld [$d010], a ld [$d012], a call Function89160 ld hl, $a603 ld de, $d008 call Function89381 call CloseSRAM call Function891fe call WhiteBGMap call Function893cc call Function89807 call Function89492 call Function894ca .asm_8aa3a call Function8987f call Function89a2e call Function891ab .asm_8aa43 call Function89b97 call Function89c67 jr c, .asm_8aa61 ld a, b and a jr z, .asm_8aa43 call PlayClickSFX call Function89448 ld a, [$d011] dec a ld hl, Jumptable_8aa6d rst JumpTable jr nc, .asm_8aa3a jr .asm_8aa69 .asm_8aa61 call Function89448 call Function8ab11 jr nc, .asm_8aa3a .asm_8aa69 call Function89448 ret ; no known jump sources Jumptable_8aa6d: ; 8aa6d (22:6a6d) dw Function8aa73 dw Function8aab6 dw Function8ab11 ; no known jump sources Function8aa73: ; 8aa73 (22:6a73) ld a, [MenuSelection] ; $cf74 ld e, a push de call Function891de ld de, $d008 ld c, $0 callba Function17a68f jr c, .asm_8aa9d ld hl, $d008 ld a, $ff ld bc, $8 call ByteFill ld h, d ld l, e ld de, $d008 ld c, $8 call Function89193 .asm_8aa9d call Function891fe call WhiteBGMap call Function893cc call Function89807 call Function89492 call Function894ca pop de ld a, e ld [MenuSelection], a ; $cf74 and a ret ; no known jump sources Function8aab6: ; 8aab6 (22:6ab6) call Function89a23 ld hl, $d008 call Function89b45 jr nc, .asm_8ab00 call Function89160 ld de, $d008 ld hl, $a603 ld c, $8 call Function89185 jr z, .asm_8aaeb ld hl, $d008 ld de, $a603 ld c, $8 call Function89193 ld hl, $c5a5 ld de, $6af0 call PlaceString call WaitBGMap call Functiona36 .asm_8aaeb call CloseSRAM scf ret ; 8aaf0 (22:6af0) INCBIN "baserom.gbc",$8aaf0,$8ab00 - $8aaf0 .asm_8ab00 ld de, $511c ld hl, $c5a5 call PlaceString call WaitBGMap call Function89235 and a ret ; known jump sources: 8aa64 (22:6a64) Function8ab11: ; 8ab11 (22:6b11) call Function89160 ld hl, $a603 ld de, $d008 ld c, $8 call Function89185 call CloseSRAM jr z, .asm_8ab37 call Function89a23 ld hl, $c5a5 ld de, $5135 call PlaceString ld a, $2 call Function89254 jr c, .asm_8ab39 .asm_8ab37 scf ret .asm_8ab39 and a ret ; known jump sources: 8ab74 (22:6b74) Function8ab3b: ; 8ab3b (22:6b3b) call Function891fe call WhiteBGMap call Function893cc call Function89807 call Function89492 call Function894ca call Function89160 ld hl, $a603 ld de, $d008 call Function89381 call CloseSRAM call Function8987f call Function89160 ld hl, $c5a5 ld bc, $a007 call Function89a0c call CloseSRAM call Function891ab call Function8ab77 jr c, Function8ab3b ret ; known jump sources: 8ab71 (22:6b71), 8ab84 (22:6b84) Function8ab77: ; 8ab77 (22:6b77) call Function354b bit 0, c jr nz, .asm_8ab8e bit 1, c jr nz, .asm_8ab8e bit 3, c jr z, Function8ab77 call PlayClickSFX call Function89d0d scf ret .asm_8ab8e call PlayClickSFX and a ret ; no known jump sources Function8ab93: ; 8ab93 (22:6b93) call WhiteBGMap call Function1d6e callba Function105688 call ClearSprites call Function891fe call Function89b28 ret ; 8aba9 (22:6ba9) INCBIN "baserom.gbc",$8aba9,$8ac4e - $8aba9 Function8ac4e: ; 8ac4e xor a ld [MenuSelection], a push de call Function891de call WhiteBGMap call Function893cc pop bc call Function89844 call Function8939a call Function89856 ld hl, $c5a5 call Function899fe call Function891ab ret ; 8ac70 Function8ac70: ; 8ac70 push de ld a, $3 call Function8b94a Function8ac76: ; 8ac76 call Function891fe call Function8b677 Function8ac7c: ; 8ac7c call Function8b7bd jr z, .asm_8acf0 ld a, c ld [$d02f], a ld [MenuSelection], a call Function89160 call Function8931b call Function8932d call CloseSRAM jr nc, .asm_8acb0 call Function89160 ld hl, $0011 add hl, bc call Function89b45 call CloseSRAM jr nc, .asm_8accc call Function89160 call Function892b7 call CloseSRAM jr .asm_8accc .asm_8acb0 call Function8ad0b jr c, Function8ac76 and a jr nz, .asm_8accc call Function89160 ld h, b ld l, c ld d, $0 ld e, $6 add hl, de ld d, h ld e, l pop hl ld c, $1f call Function89193 jr .asm_8ace4 .asm_8accc pop hl call Function89160 ld d, b ld e, c ld c, $6 call Function89193 ld a, $6 add e ld e, a ld a, $0 adc d ld d, a ld c, $1f call Function89193 .asm_8ace4 call CloseSRAM call Functione51 ld a, [$d02f] ld c, a and a ret .asm_8acf0 ld hl, $6d06 call PrintText ld a, $2 call Function89259 jp c, Function8ac7c call Functione51 pop de ld c, $0 scf ret ; 8ad06 INCBIN "baserom.gbc",$8ad06,$8ad0b - $8ad06 Function8ad0b: ; 8ad0b .asm_8ad0b ld a, [MenuSelection] ld [$d02f], a call Function891de call WhiteBGMap call Function893cc call Function89160 call Function8931b push bc call Function89844 call Function8939a call Function89856 ld hl, $c5a5 call Function899fe call CloseSRAM call Function891ab pop bc .asm_8ad37 push bc call Function89a57 pop bc jr c, .asm_8ad37 and a jr z, .asm_8ad0b cp $2 jr z, .asm_8ad37 call Function8923c push bc ld hl, $c590 ld b, $4 ld c, $12 call TextBox ld de, $6d89 ld hl, $c5b9 call PlaceString ld a, $2 call Function8925e jr c, .asm_8ad87 call Function8923c ld hl, $c590 ld b, $4 ld c, $12 call TextBox ld de, $6d9c ld hl, $c5b9 call PlaceString ld a, $1 call Function8925e jr c, .asm_8ad84 ld a, $0 jr .asm_8ad86 .asm_8ad84 ld a, $1 .asm_8ad86 and a .asm_8ad87 pop bc ret ; 8ad89 INCBIN "baserom.gbc",$8ad89,$8addb - $8ad89 SpecialHoOhChamber: ; 0x8addb ld hl, PartySpecies ld a, [hl] cp HO_OH ; is Ho-oh the first Pokémon in the party? jr nz, .done ; if not, we're done call GetSecondaryMapHeaderPointer ld de, $0326 ld b, SET_FLAG call EventFlagAction .done ret ; 0x8adef Function8adef: ; 8adef call GetSecondaryMapHeaderPointer ld de, $0328 ld b, CHECK_FLAG call EventFlagAction ld a, c and a jr nz, .asm_8ae2f ld a, WATER_STONE ld [CurItem], a ld hl, NumItems call CheckItem jr c, .asm_8ae24 ld a, [PartyCount] ld b, a inc b .asm_8ae10 dec b jr z, .asm_8ae2f ld a, b dec a ld [CurPartyMon], a push bc ld a, $1 call GetPartyParamLocation pop bc ld a, [hl] cp $18 jr nz, .asm_8ae10 .asm_8ae24 call GetSecondaryMapHeaderPointer ld de, $0328 ld b, SET_FLAG call EventFlagAction .asm_8ae2f ret ; 8ae30 Function8ae30: ; 8ae30 push de push bc call GetSecondaryMapHeaderPointer ld a, h cp RuinsofAlphAerodactylChamber_SecondMapHeader >> 8 jr nz, .asm_8ae4a ld a, l cp RuinsofAlphAerodactylChamber_SecondMapHeader & $ff jr nz, .asm_8ae4a ld de, $0329 ld b, SET_FLAG call EventFlagAction scf jr .done .asm_8ae4a and a .done pop bc pop de ret ; 8ae4e Function8ae4e: ; 8ae4e push hl push de call GetSecondaryMapHeaderPointer ld a, h cp RuinsofAlphKabutoChamber_SecondMapHeader >> 8 jr nz, .done ld a, l cp RuinsofAlphKabutoChamber_SecondMapHeader & $ff jr nz, .done ld de, $0327 ld b, SET_FLAG call EventFlagAction .done pop de pop hl ret ; 8ae68 Function8ae68: ; 8ae68 ld a, [ScriptVar] ld hl, $6ed5 and a jr z, .asm_8ae79 ld d, $0 ld e, $5 .asm_8ae75 add hl, de dec a jr nz, .asm_8ae75 .asm_8ae79 call LoadMenuDataHeader xor a ld [hBGMapMode], a call Function1cbb call Function1ad2 call Function321c call Function1cfd inc hl ld d, $0 ld e, $14 add hl, de add hl, de ld a, [ScriptVar] ld c, a ld de, $6ebc and a jr z, .asm_8aea5 .asm_8ae9c ld a, [de] inc de cp $ff jr nz, .asm_8ae9c dec c jr nz, .asm_8ae9c .asm_8aea5 call Function8af09 ld bc, $0939 add hl, bc call Function8aee9 call Function3200 call Functiona36 call PlayClickSFX call Function1c17 ret ; 8aebc INCBIN "baserom.gbc",$8aebc,$8aee9 - $8aebc Function8aee9: ; 8aee9 .asm_8aee9 ld a, [de] cp $ff ret z cp $60 ld a, $d jr c, .asm_8aef5 ld a, $5 .asm_8aef5 call Function8aefd inc hl inc hl inc de jr .asm_8aee9 ; 8aefd Function8aefd: ; 8aefd push hl ld [hli], a ld [hld], a ld b, $0 ld c, $14 add hl, bc ld [hli], a ld [hl], a pop hl ret ; 8af09 Function8af09: ; 8af09 push hl push de .asm_8af0b ld a, [de] cp $ff jr z, .asm_8af19 ld c, a call Function8af1c inc hl inc hl inc de jr .asm_8af0b .asm_8af19 pop de pop hl ret ; 8af1c Function8af1c: ; 8af1c push hl ld a, c cp $60 jr z, .asm_8af3b cp $62 jr z, .asm_8af4b cp $64 jr z, .asm_8af5b ld [hli], a inc a ld [hld], a dec a ld b, $0 ld c, $14 add hl, bc ld c, $10 add c ld [hli], a inc a ld [hl], a pop hl ret .asm_8af3b ld [hl], $5b inc hl ld [hl], $5c ld bc, $0013 add hl, bc ld [hl], $4d inc hl ld [hl], $5d pop hl ret .asm_8af4b ld [hl], $4e inc hl ld [hl], $4f ld bc, $0013 add hl, bc ld [hl], $5e inc hl ld [hl], $5f pop hl ret .asm_8af5b ld [hl], $2 inc hl ld [hl], $3 ld bc, $0013 add hl, bc ld [hl], $3 inc hl ld [hl], $2 pop hl ret ; 8af6b Function8af6b: ; 8af6b xor a ld [$cf76], a ld hl, $6fa9 call Function1d3c ld a, [$dc4a] ld c, a callba Functionb8f8f ld a, [$cf83] add c add $2 ld [$cf85], a call Function1c00 call Function1e5d callba Function4ae5e ld b, $0 ld a, [MenuSelection] ld c, a ld a, [$dc4a] and $3 cp c jr nz, .asm_8afa4 ld b, $1 .asm_8afa4 ld a, b ld [ScriptVar], a ret ; 8afa9 INCBIN "baserom.gbc",$8afa9,$8afd4 - $8afa9 Function8afd4: ; 8afd4 xor a ld [$d0e4], a ld a, $1 ld [MenuSelection], a call Function8b0d6 call Function8b090 ld hl, $7072 call PrintText jr .asm_8aff1 .asm_8afeb ld hl, $7072 call Function105a .asm_8aff1 call DelayFrame call Function1ad2 call Function8b097 call Function8b0e2 jr z, .asm_8b05f ld [$cf75], a call Function8b154 ld a, [hl] ld [$d265], a call GetItemName ld hl, $7077 call Function105a call YesNoBox jr c, .asm_8afeb ld a, [$cf75] call Function8b154 inc hl ld a, [hld] ld c, a ld a, [$dc4b] cp c jr c, .asm_8b047 ld a, [hli] push hl ld [CurItem], a ld a, $1 ld [$d10c], a ld hl, NumItems call ReceiveItem pop hl jr nc, .asm_8b04c ld a, [hl] ld c, a ld a, [$dc4b] sub c ld [$dc4b], a call Function8b097 jr .asm_8b051 .asm_8b047 ld hl, $7081 jr .asm_8b05a .asm_8b04c ld hl, $7086 jr .asm_8b05a .asm_8b051 ld de, $0022 call PlaySFX ld hl, $707c .asm_8b05a call Function105a jr .asm_8afeb .asm_8b05f call Function1c17 call Function1c17 ld hl, $708b call PrintText call Functiona36 call PlayClickSFX ret ; 8b072 INCBIN "baserom.gbc",$8b072,$8b090 - $8b072 Function8b090: ; 8b090 ld hl, $70d1 call LoadMenuDataHeader ret ; 8b097 Function8b097: ; 8b097 ld de, $dc4b call Function8b09e ret ; 8b09e Function8b09e: ; 8b09e push de xor a ld [hBGMapMode], a ld hl, $70d1 call Function1d3c call Function1cbb call Function1ad2 call Function1cfd ld bc, $0015 add hl, bc ld de, $70ca call PlaceString ld h, b ld l, c inc hl ld a, $7f ld [hli], a ld [hld], a pop de ld bc, $0102 call PrintNum ret ; 8b0ca INCBIN "baserom.gbc",$8b0ca,$8b0d6 - $8b0ca Function8b0d6: ; 8b0d6 ld hl, $70dd call LoadMenuDataHeader ret ; 8b0dd INCBIN "baserom.gbc",$8b0dd,$8b0e2 - $8b0dd Function8b0e2: ; 8b0e2 ld hl, $7113 call Function1d3c ld a, [MenuSelection] ld [$cf88], a xor a ld [$cf76], a ld [hBGMapMode], a call Function352f call Function1ad2 call Function350c ld a, [MenuSelection] ld c, a ld a, [$cfa9] ld [MenuSelection], a ld a, [$cf73] cp $2 jr z, .asm_8b111 ld a, c and a ret nz .asm_8b111 xor a ret ; 8b113 INCBIN "baserom.gbc",$8b113,$8b154 - $8b113 Function8b154: ; 8b154 dec a ld hl, $715e ld b, $0 ld c, a add hl, bc add hl, bc ret ; 8b15e INCBIN "baserom.gbc",$8b15e,$8b170 - $8b15e INCLUDE "event/dratini.asm" Function8b1e1: ; 8b1e1 ld de, $71ed call Function8b25b ret z call Function8b231 scf ret ; 8b1ed INCBIN "baserom.gbc",$8b1ed,$8b201 - $8b1ed Function8b201: ; 8b201 ld hl, StringBuffer2 ld [hl], $f9 inc hl ld [hl], $50 ld de, $7215 call Function8b25b ret z call Function8b231 scf ret ; 8b215 INCBIN "baserom.gbc",$8b215,$8b231 - $8b215 Function8b231: ; 8b231 ld hl, $7238 call PrintText ret ; 8b238 INCBIN "baserom.gbc",$8b238,$8b25b - $8b238 Function8b25b: ; 8b25b ld bc, $0000 .asm_8b25e call Function8b26c call c, Function8b28e call Function8b276 jr nz, .asm_8b25e ld a, b and a ret ; 8b26c Function8b26c: ; 8b26c push de push bc call Function8b27a ld a, c rst JumpTable pop bc pop de ret ; 8b276 Function8b276: ; 8b276 inc c ld a, [de] cp c ret ; 8b27a Function8b27a: ; 8b27a inc de ld a, [de] ld l, a inc de ld a, [de] ld h, a ret ; 8b281 Function8b281: ; 8b281 inc de inc de inc de ld a, [de] ld l, a inc de ld a, [de] ld h, a ret ; 8b28a Function8b28a: ; 8b28a ld a, [hli] ld h, [hl] ld l, a ret ; 8b28e Function8b28e: ; 8b28e push de push bc ld a, b and a call z, Function8b29d pop bc call Function8b2a9 ld b, $1 pop de ret ; 8b29d Function8b29d: ; 8b29d push de call Function8b281 call Function8b28a call PrintText pop de ret ; 8b2a9 Function8b2a9: ; 8b2a9 push bc call Function8b281 inc hl inc hl ld b, $0 add hl, bc add hl, bc call Function8b28a call PrintText pop bc ret ; 8b2bb INCBIN "baserom.gbc",$8b2bb,$8b342 - $8b2bb Function8b342:: ; 8b342 call GetSecondaryMapHeaderPointer ld d, h ld e, l xor a .asm_8b348 push af ld hl, Table8b354 rst JumpTable pop af inc a cp $3 jr nz, .asm_8b348 ret ; 8b354 Table8b354: ; 8b354 dw Function8b35a dw Function8b35b dw Function8b35c ; 8b35a Function8b35a: ; 8b35a ret ; 8b35b Function8b35b: ; 8b35b ret ; 8b35c Function8b35c: ; 8b35c ret ; 8b35d INCBIN "baserom.gbc",$8b35d,$8b36c - $8b35d ; known jump sources: 89e24 (22:5e24), 8a29a (22:629a), 8b3c2 (22:73c2), 8b45c (22:745c), 8b53c (22:753c), 8b5ea (22:75ea), 8b630 (22:7630) Function8b36c: ; 8b36c (22:736c) push bc ld h, b ld l, c ld bc, $4 ld a, $ff call ByteFill pop bc ret ; known jump sources: 8b429 (22:7429), 8b443 (22:7443) Function8b379: ; 8b379 (22:7379) push bc ld a, c add e ld c, a ld a, $0 adc b ld b, a ld a, [bc] ld d, a pop bc ret ; known jump sources: 8b3ff (22:73ff), 8b417 (22:7417), 8b420 (22:7420), 8b43b (22:743b), 8b454 (22:7454), 8b46b (22:746b) Function8b385: ; 8b385 (22:7385) push bc ld a, c add e ld c, a ld a, $0 adc b ld b, a ld a, d ld [bc], a pop bc ret ; known jump sources: 8b3bd (22:73bd), 8b466 (22:7466) Function8b391: ; 8b391 (22:7391) push bc ld e, $0 ld d, $4 .asm_8b396 ld a, [bc] inc bc cp $ff jr z, .asm_8b3a2 inc e dec d jr nz, .asm_8b396 dec e scf .asm_8b3a2 pop bc ret ; known jump sources: 8b590 (22:7590), 8b61f (22:761f) Function8b3a4: ; 8b3a4 (22:73a4) push de push bc ld d, b ld e, c ld c, $4 call Function89185 pop bc pop de ret ; known jump sources: 89e0d (22:5e0d) Function8b3b0: ; 8b3b0 (22:73b0) ld bc, $a037 ld a, [$a60b] and a jr z, .asm_8b3c2 cp $3 jr nc, .asm_8b3c2 call Function8b391 jr c, .asm_8b3c9 .asm_8b3c2 call Function8b36c xor a ld [$a60b], a .asm_8b3c9 ld a, [$a60b] ret ; known jump sources: 8b4b4 (22:74b4), 8b4c8 (22:74c8) Function8b3cd: ; 8b3cd (22:73cd) push de push bc ld e, $4 .asm_8b3d1 ld a, [bc] inc bc call Function8998b inc hl dec e jr nz, .asm_8b3d1 pop bc pop de ret ; known jump sources: 8b489 (22:7489) Function8b3dd: ; 8b3dd (22:73dd) push de push bc call Function354b ld a, c pop bc pop de bit 0, a jr nz, .asm_8b3f7 bit 1, a jr nz, .asm_8b40e bit 6, a jr nz, .asm_8b429 bit 7, a jr nz, .asm_8b443 and a ret .asm_8b3f7 ld a, e cp $3 jr z, .asm_8b407 inc e ld d, $0 call Function8b385 xor a ld [$d010], a ret .asm_8b407 call PlayClickSFX ld d, $0 scf ret .asm_8b40e ld a, e and a jr nz, .asm_8b41e call PlayClickSFX ld d, $ff call Function8b385 ld d, $1 scf ret .asm_8b41e ld d, $ff call Function8b385 dec e xor a ld [$d010], a ret .asm_8b429 call Function8b379 ld a, d cp $a jr c, .asm_8b433 ld d, $9 .asm_8b433 inc d ld a, d cp $a jr c, .asm_8b43b ld d, $0 .asm_8b43b call Function8b385 xor a ld [$d010], a ret .asm_8b443 call Function8b379 ld a, d cp $a jr c, .asm_8b44d ld d, $0 .asm_8b44d ld a, d dec d and a jr nz, .asm_8b454 ld d, $9 .asm_8b454 call Function8b385 xor a ld [$d010], a ret ; known jump sources: 8b55e (22:755e), 8b585 (22:7585), 8b60b (22:760b) Function8b45c: ; 8b45c (22:745c) call Function8b36c xor a ld [$d010], a ld [$d012], a call Function8b391 ld d, $0 call Function8b385 .asm_8b46e call Function8923c call Function8b493 call Function8b4cc call Function8b518 call Function89b78 push bc call Function8b4fd call Function89c44 ld a, $1 ld [hBGMapMode], a ; $ff00+$d4 pop bc call Function8b3dd jr nc, .asm_8b46e ld a, d and a ret z scf ret ; known jump sources: 8a29d (22:629d), 8b471 (22:7471), 8b546 (22:7546), 8b569 (22:7569), 8b59b (22:759b), 8b5be (22:75be), 8b5f4 (22:75f4), 8b616 (22:7616) Function8b493: ; 8b493 (22:7493) push bc call Function8923c call Function8b521 ld hl, Jumptable_8b4a0 pop bc rst JumpTable ret ; no known jump sources Jumptable_8b4a0: ; 8b4a0 (22:74a0) dw Function8b4a4 dw Function8b4b8 ; no known jump sources Function8b4a4: ; 8b4a4 (22:74a4) push bc push de call Function8b4d8 call TextBox pop de pop bc call Function8b4cc call Function8b518 call Function8b3cd ret ; no known jump sources Function8b4b8: ; 8b4b8 (22:74b8) push bc push de call Function8b4ea call Function89b3b pop de pop bc call Function8b4cc call Function8b518 call Function8b3cd ret ; known jump sources: 8b474 (22:7474), 8b4ae (22:74ae), 8b4c2 (22:74c2) Function8b4cc: ; 8b4cc (22:74cc) push bc ld hl, Unknown_8b529 call Function8b50a ld a, [hli] ld h, [hl] ld l, a pop bc ret ; known jump sources: 8b4a6 (22:74a6) Function8b4d8: ; 8b4d8 (22:74d8) ld hl, Unknown_8b529 call Function8b50a push hl inc hl inc hl ld a, [hli] ld b, a ld a, [hl] ld c, a pop hl ld a, [hli] ld h, [hl] ld l, a ret ; known jump sources: 8b4ba (22:74ba) Function8b4ea: ; 8b4ea (22:74ea) ld hl, Unknown_8b529 call Function8b50a push hl inc hl inc hl ld a, [hli] ld b, a ld a, [hl] ld c, a pop hl ld a, [hli] ld e, a ld a, [hl] ld d, a ret ; known jump sources: 8b47e (22:747e), 8b549 (22:7549), 8b5fa (22:75fa) Function8b4fd: ; 8b4fd (22:74fd) ld hl, Unknown_8b529 + 4 call Function8b50a ld a, [hli] ld c, a ld a, [hli] ld b, a ld a, [hli] ld d, a ret ; known jump sources: 8b4d0 (22:74d0), 8b4db (22:74db), 8b4ed (22:74ed), 8b500 (22:7500), 8b524 (22:7524) Function8b50a: ; 8b50a (22:750a) ld a, [$d02e] and a ret z ld b, $0 ld c, $8 .asm_8b513 add hl, bc dec a jr nz, .asm_8b513 ret ; known jump sources: 8b477 (22:7477), 8b4b1 (22:74b1), 8b4c5 (22:74c5) Function8b518: ; 8b518 (22:7518) push de ld d, $0 ld e, $14 add hl, de inc hl pop de ret ; known jump sources: 8b497 (22:7497) Function8b521: ; 8b521 (22:7521) ld hl, Unknown_8b529 + 7 call Function8b50a ld a, [hl] ret ; 8b529 (22:7529) Unknown_8b529: ; 8b529 dw $c506 db 1, 4, $20, $49, 0, 1 dw $c4f7 db 1, 4, $48, $41, 0, 0 ; 8b539 ; known jump sources: 8a0e6 (22:60e6) Function8b539: ; 8b539 (22:7539) ld bc, $d017 call Function8b36c xor a ld [$d012], a ld [$d02e], a call Function8b493 call Function8b4fd ld e, $0 call Function89c44 call Function3238 ret ; known jump sources: 8a0f5 (22:60f5), 8b57a (22:757a), 8b588 (22:7588) Function8b555: ; 8b555 (22:7555) ld hl, UnknownText_0x8b5ce call PrintText ld bc, $d017 call Function8b45c jr c, .asm_8b5c8 call Function89448 ld bc, $d017 call Function8b493 ld bc, $d017 call Function8b664 jr nz, .asm_8b57c ld hl, UnknownText_0x8b5e2 call PrintText jr Function8b555 .asm_8b57c ld hl, UnknownText_0x8b5d3 call PrintText ld bc, $d013 call Function8b45c jr c, Function8b555 ld bc, $d017 ld hl, $d013 call Function8b3a4 jr z, .asm_8b5a6 call Function89448 ld bc, $d013 call Function8b493 ld hl, UnknownText_0x8b5d8 call PrintText jr .asm_8b57c .asm_8b5a6 call Function89160 ld hl, $d013 ld de, $a037 ld bc, $4 call CopyBytes call CloseSRAM call Function89448 ld bc, $d013 call Function8b493 ld hl, UnknownText_0x8b5dd call PrintText and a .asm_8b5c8 push af call Function89448 pop af ret ; 8b5ce (22:75ce) UnknownText_0x8b5ce: ; 0x8b5ce ; Please enter any four-digit number. text_jump UnknownText_0x1bc187 db "@" ; 0x8b5d3 UnknownText_0x8b5d3: ; 0x8b5d3 ; Enter the same number to confirm. text_jump UnknownText_0x1bc1ac db "@" ; 0x8b5d8 UnknownText_0x8b5d8: ; 0x8b5d8 ; That's not the same number. text_jump UnknownText_0x1bc1cf db "@" ; 0x8b5dd UnknownText_0x8b5dd: ; 0x8b5dd ; Your PASSCODE has been set. Enter this number next time to open the CARD FOLDER. text_jump UnknownText_0x1bc1eb db "@" ; 0x8b5e2 UnknownText_0x8b5e2: ; 0x8b5e2 ; 0000 is invalid! text_jump UnknownText_0x1bc23e db "@" ; 0x8b5e7 ; known jump sources: 8a2a6 (22:62a6) Function8b5e7: ; 8b5e7 (22:75e7) ld bc, $d013 call Function8b36c xor a ld [$d012], a ld [$d02e], a call Function8b493 call Function891ab call Function8b4fd ld e, $0 call Function89c44 .asm_8b602 ld hl, UnknownText_0x8b642 call PrintText ld bc, $d013 call Function8b45c jr c, .asm_8b63c call Function89448 ld bc, $d013 call Function8b493 call Function89160 ld hl, $a037 call Function8b3a4 call CloseSRAM jr z, .asm_8b635 ld hl, UnknownText_0x8b647 call PrintText ld bc, $d013 call Function8b36c jr .asm_8b602 .asm_8b635 ld hl, UnknownText_0x8b64c call PrintText and a .asm_8b63c push af call Function89448 pop af ret ; 8b642 (22:7642) UnknownText_0x8b642: ; 0x8b642 ; Enter the CARD FOLDER PASSCODE. text_jump UnknownText_0x1bc251 db "@" ; 0x8b647 UnknownText_0x8b647: ; 0x8b647 ; Incorrect PASSCODE! text_jump UnknownText_0x1bc272 db "@" ; 0x8b64c UnknownText_0x8b64c: ; 0x8b64c ; CARD FOLDER open.@ @ text_jump UnknownText_0x1bc288 start_asm ; 0x8b651 Function8b651: ; 8b651 ld de, SFX_TWINKLE call PlaySFX call WaitSFX ld c, $8 call DelayFrames ld hl, .string_8b663 ret .string_8b663 db "@" ; 8b664 ; known jump sources: 8b56f (22:756f) Function8b664: ; 8b664 (22:7664) push bc ld de, $4 .asm_8b668 ld a, [bc] cp $0 jr nz, .asm_8b66e inc d .asm_8b66e inc bc dec e jr nz, .asm_8b668 pop bc ld a, d cp $4 ret Function8b677: ; 8b677 call WhiteBGMap call DisableLCD call Function8b690 call Function8b6bb call Function8b6ed call EnableLCD call Function891ab call Function32f9 ret ; 8b690 Function8b690: ; 8b690 ld hl, $74b9 ld de, VTiles2 ld bc, $0160 ld a, $5e call FarCopyBytes ld hl, $7609 ld de, $9610 ld bc, $0010 ld a, $5e call FarCopyBytes ld hl, $7619 ld de, $8ee0 ld bc, $0010 ld a, $5e call FarCopyBytes ret ; 8b6bb Function8b6bb: ; 8b6bb ld a, [rSVBK] push af ld a, $5 ld [rSVBK], a ld hl, Unknown_8b6d5 ld de, Unkn1Pals ld bc, $0018 call CopyBytes pop af ld [rSVBK], a call Function8949c ret ; 8b6d5 Unknown_8b6d5: ; 8b6d5 INCBIN "baserom.gbc",$8b6d5,$8b6ed - $8b6d5 Function8b6ed: ; 8b6ed ld hl, AttrMap ld bc, $012c xor a call ByteFill ld hl, $cef1 ld bc, $0050 ld a, $7 call ByteFill ret ; 8b703 Function8b703: ; 8b703 call Function8923c push hl ld a, $c ld [hli], a inc a call Function8b73e inc a ld [hl], a pop hl push hl push bc ld de, $0014 add hl, de .asm_8b717 push hl ld a, $f ld [hli], a ld a, $7f call Function8b73e ld a, $11 ld [hl], a pop hl ld de, $0014 add hl, de dec b jr nz, .asm_8b717 call Function8b732 pop bc pop hl jr Function8b744 ; 8b732 Function8b732: ; 8b732 ld a, $12 ld [hli], a ld a, $13 call Function8b73e ld a, $14 ld [hl], a ret ; 8b73e Function8b73e: ; 8b73e ld d, c .asm_8b73f ld [hli], a dec d jr nz, .asm_8b73f ret ; 8b744 Function8b744: ; 8b744 ld de, $0939 add hl, de inc b inc b inc c inc c xor a .asm_8b74d push bc push hl .asm_8b74f ld [hli], a dec c jr nz, .asm_8b74f pop hl ld de, $0014 add hl, de pop bc dec b jr nz, .asm_8b74d ret ; 8b75d Function8b75d: ; 8b75d call Function8923c ld hl, TileMap ld a, $1 ld bc, $0014 call ByteFill ld hl, $c4b4 ld a, $2 ld [hl], a ld hl, $c4bd ld c, $b call Function8b788 ld hl, $c4b5 ld a, $4 ld e, $8 .asm_8b780 ld [hli], a inc a dec e jr nz, .asm_8b780 jr Function8b79e ; 8b787 Function8b787: ; 8b787 ret ; 8b788 Function8b788: ; 8b788 .asm_8b788 ld a, $2 ld [hli], a dec c ret z ld a, $1 ld [hli], a dec c ret z ld a, $3 ld [hli], a dec c ret z ld a, $1 ld [hli], a dec c jr nz, .asm_8b788 ret ; 8b79e Function8b79e: ; 8b79e ld hl, $cded ld a, $1 ld [hli], a ld hl, $cdf6 ld e, $b .asm_8b7a9 ld a, $2 ld [hli], a dec e ret z xor a ld [hli], a dec e ret z ld a, $1 ld [hli], a dec e ret z xor a ld [hli], a dec e jr nz, .asm_8b7a9 ret ; 8b7bd Function8b7bd: ; 8b7bd call Function8b855 ld hl, $7867 call Function1d3c ld a, [$d030] ld [$cf88], a ld a, [$d031] ld [$d0e4], a ld a, [$d032] and a jr z, .asm_8b7e0 ld a, [$cf81] set 3, a ld [$cf81], a .asm_8b7e0 ld a, [$d0e3] and a jr z, .asm_8b7ea dec a ld [$cf77], a .asm_8b7ea ld hl, $c4c8 ld b, $b ld c, $12 call Function8b703 call Function8b75d call Function1ad2 call Function89209 call Function350c call Function8920f ld a, [$cf73] cp $2 jr z, .asm_8b823 cp $20 jr nz, .asm_8b813 call Function8b832 jr .asm_8b7ea .asm_8b813 cp $10 jr nz, .asm_8b81c call Function8b83e jr .asm_8b7ea .asm_8b81c ld a, [MenuSelection] cp $ff jr nz, .asm_8b824 .asm_8b823 xor a .asm_8b824 ld c, a ld a, [$cfa9] ld [$d030], a ld a, [$d0e4] ld [$d031], a ret ; 8b832 Function8b832: ; 8b832 ld a, [$d0e4] ld hl, $cf92 sub [hl] jr nc, Function8b84b xor a jr Function8b84b ; 8b83e Function8b83e: ; 8b83e ld a, [$d0e4] ld hl, $cf92 add [hl] cp $24 jr c, Function8b84b ld a, $24 Function8b84b: ; 8b84b ld [$d0e4], a ld a, [$cfa9] ld [$cf88], a ret ; 8b855 Function8b855: ; 8b855 ld a, $28 ld hl, DefaultFlypoint ld [hli], a ld c, $28 xor a .asm_8b85e inc a ld [hli], a dec c jr nz, .asm_8b85e ld a, $ff ld [hl], a ret ; 8b867 INCBIN "baserom.gbc",$8b867,$8b94a - $8b867 Function8b94a: ; 8b94a ld [$d033], a xor a ld [$d0e4], a ld [$d032], a ld [$d0e3], a ld [$d031], a ld a, $1 ld [$d030], a ret ; 8b960 ; known jump sources: 8a656 (22:6656) Function8b960: ; 8b960 (22:7960) ld hl, $79ac call LoadMenuDataHeader call Function8b9e9 jr c, .asm_8b97a ld hl, $c4ab ld b, $6 ld c, $7 call Function8b703 ld hl, $79b1 jr .asm_8b987 .asm_8b97a ld hl, $c4ab ld b, $a ld c, $7 call Function8b703 ld hl, $79ca .asm_8b987 ld a, $1 call Function89d5e ld hl, $79ab call Function89d85 call Function1c07 jr c, .asm_8b99c call Function8b99f jr nz, .asm_8b99d .asm_8b99c xor a .asm_8b99d ld c, a ret ; known jump sources: 8b997 (22:7997) Function8b99f: ; 8b99f (22:799f) ld hl, DefaultFlypoint ; $d002 dec a ld c, a ld b, $0 add hl, bc ld a, [hl] cp $ff ret ; 8b9ab (22:79ab) INCBIN "baserom.gbc",$8b9ab,$8b9e9 - $8b9ab ; known jump sources: 8b966 (22:7966) Function8b9e9: ; 8b9e9 (22:79e9) call Function89160 call Function8931b call Function8932d jr nc, .asm_8b9f6 jr .asm_8b9ff .asm_8b9f6 ld hl, $11 add hl, bc call Function89b45 jr c, .asm_8ba08 .asm_8b9ff call Function892b4 and a ld de, $7a1c jr .asm_8ba0c .asm_8ba08 ld de, $7a1f scf .asm_8ba0c push af ld hl, DefaultFlypoint ; $d002 .asm_8ba10 ld a, [de] inc de ld [hli], a cp $ff jr nz, .asm_8ba10 call CloseSRAM pop af ret ; 8ba1c (22:7a1c) INCBIN "baserom.gbc",$8ba1c,$8ba24 - $8ba1c SECTION "bank23", ROMX, BANK[$23] Function8c000: ; 8c000 ret ; 8c001 Function8c001:: ; 8c001 call UpdateTime ld a, [TimeOfDay] ld [CurTimeOfDay], a call GetTimePalette ld [TimeOfDayPal], a ret ; 8c011 _TimeOfDayPals:: ; 8c011 ; return carry if pals are changed ; forced pals? ld hl, $d846 bit 7, [hl] jr nz, .dontchange ; do we need to bother updating? ld a, [TimeOfDay] ld hl, CurTimeOfDay cp [hl] jr z, .dontchange ; if so, the time of day has changed ld a, [TimeOfDay] ld [CurTimeOfDay], a ; get palette id call GetTimePalette ; same palette as before? ld hl, TimeOfDayPal cp [hl] jr z, .dontchange ; update palette id ld [TimeOfDayPal], a ; save bg palette 8 ld hl, $d038 ; Unkn1Pals + 7 pals ; save wram bank ld a, [rSVBK] ld b, a ; wram bank 5 ld a, 5 ld [rSVBK], a ; push palette ld c, 4 ; NUM_PAL_COLORS .push ld d, [hl] inc hl ld e, [hl] inc hl push de dec c jr nz, .push ; restore wram bank ld a, b ld [rSVBK], a ; update sgb pals ld b, $9 call GetSGBLayout ; restore bg palette 8 ld hl, $d03f ; last byte in Unkn1Pals ; save wram bank ld a, [rSVBK] ld d, a ; wram bank 5 ld a, 5 ld [rSVBK], a ; pop palette ld e, 4 ; NUM_PAL_COLORS .pop pop bc ld [hl], c dec hl ld [hl], b dec hl dec e jr nz, .pop ; restore wram bank ld a, d ld [rSVBK], a ; update palettes call _UpdateTimePals call DelayFrame ; successful change scf ret .dontchange ; no change occurred and a ret ; 8c070 _UpdateTimePals:: ; 8c070 ld c, $9 ; normal call GetTimePalFade call DmgToCgbTimePals ret ; 8c079 Function8c079:: ; 8c079 ld c, $12 call GetTimePalFade ld b, $4 call Function8c16d ret ; 8c084 Function8c084:: ; 8c084 call Function8c0c1 ld c, $9 call GetTimePalFade ld b, $4 call Function8c15e ret ; 8c092 Function8c092: ; 8c092 call Function8c0c1 ld c, $9 call GetTimePalFade ld b, $4 .asm_8c09c call DmgToCgbTimePals inc hl inc hl inc hl ld c, $7 call DelayFrames dec b jr nz, .asm_8c09c ret ; 8c0ab Function8c0ab: ; 8c0ab ld c, $0 call GetTimePalFade ld b, $4 call Function8c15e ret ; 8c0b6 Function8c0b6: ; 8c0b6 ld c, $9 call GetTimePalFade ld b, $4 call Function8c16d ret ; 8c0c1 Function8c0c1: ; 8c0c1 ld a, [rSVBK] push af ld a, $5 ld [rSVBK], a ld hl, $d000 ld a, [hli] ld e, a ld a, [hli] ld d, a ld hl, $d008 ld c, $6 .asm_8c0d4 ld a, e ld [hli], a ld a, d ld [hli], a inc hl inc hl inc hl inc hl inc hl inc hl dec c jr nz, .asm_8c0d4 pop af ld [rSVBK], a ret ; 8c0e5 Function8c0e5: ; 8c0e5 ld hl, $410f ld a, [$c2d0] cp $4 jr z, .asm_8c0fc and $7 add l ld l, a ld a, $0 adc h ld h, a ld a, [hl] ld [$d847], a ret .asm_8c0fc ld a, [StatusFlags] ; $d84c bit 2, a jr nz, .asm_8c109 ld a, $ff ld [$d847], a ret .asm_8c109 ld a, $aa ld [$d847], a ret ; 8c10f (23:410f) INCBIN "baserom.gbc",$8c10f,$8c117 - $8c10f GetTimePalette: ; 8c117 ; get time of day ld a, [TimeOfDay] ld e, a ld d, $0 ; get fn ptr ld hl, .TimePalettes add hl, de add hl, de ld a, [hli] ld h, [hl] ld l, a ; go jp [hl] ; 8c126 .TimePalettes dw .MorningPalette dw .DayPalette dw .NitePalette dw .DarknessPalette .MorningPalette ; 8c12e ld a, [$d847] and %00000011 ; 0 ret ; 8c134 .DayPalette ; 8c134 ld a, [$d847] and %00001100 ; 1 srl a srl a ret ; 8c13e .NitePalette ; 8c13e ld a, [$d847] and %00110000 ; 2 swap a ret ; 8c146 .DarknessPalette ; 8c146 ld a, [$d847] and %11000000 ; 3 rlca rlca ret ; 8c14e DmgToCgbTimePals: ; 8c14e push hl push de ld a, [hli] call DmgToCgbBGPals ld a, [hli] ld e, a ld a, [hli] ld d, a call DmgToCgbObjPals pop de pop hl ret ; 8c15e Function8c15e: ; 8c15e .asm_8c15e call DmgToCgbTimePals inc hl inc hl inc hl ld c, $2 call DelayFrames dec b jr nz, .asm_8c15e ret ; 8c16d Function8c16d: ; 8c16d .asm_8c16d call DmgToCgbTimePals dec hl dec hl dec hl ld c, $2 call DelayFrames dec b jr nz, .asm_8c16d ret ; 8c17c GetTimePalFade: ; 8c17c ; check cgb ld a, [hCGB] and a jr nz, .cgb ; else: dmg ; index ld a, [TimeOfDayPal] and %11 ; get fade table push bc ld c, a ld b, $0 ld hl, .dmgfades add hl, bc add hl, bc ld a, [hli] ld h, [hl] ld l, a pop bc ; get place in fade table ld b, $0 add hl, bc ret .cgb ld hl, .cgbfade ld b, $0 add hl, bc ret ; 8c19e .dmgfades ; 8c19e dw .morn dw .day dw .nite dw .darkness ; 8c1a6 .morn ; 8c1a6 db %11111111 db %11111111 db %11111111 db %11111110 db %11111110 db %11111110 db %11111001 db %11100100 db %11100100 db %11100100 db %11010000 db %11010000 db %10010000 db %10000000 db %10000000 db %01000000 db %01000000 db %01000000 db %00000000 db %00000000 db %00000000 ; 8c1bb .day ; 8c1bb db %11111111 db %11111111 db %11111111 db %11111110 db %11111110 db %11111110 db %11111001 db %11100100 db %11100100 db %11100100 db %11010000 db %11010000 db %10010000 db %10000000 db %10000000 db %01000000 db %01000000 db %01000000 db %00000000 db %00000000 db %00000000 ; 8c1d0 .nite ; 8c1d0 db %11111111 db %11111111 db %11111111 db %11111110 db %11111110 db %11111110 db %11111001 db %11100100 db %11100100 db %11101001 db %11010000 db %11010000 db %10010000 db %10000000 db %10000000 db %01000000 db %01000000 db %01000000 db %00000000 db %00000000 db %00000000 ; 8c1e5 .darkness ; 8c1e5 db %11111111 db %11111111 db %11111111 db %11111110 db %11111110 db %11111111 db %11111110 db %11100100 db %11111111 db %11111101 db %11010000 db %11111111 db %11111101 db %10000000 db %11111111 db %00000000 db %01000000 db %00000000 db %00000000 db %00000000 db %00000000 ; 8c1fa .cgbfade ; 8c1fa db %11111111 db %11111111 db %11111111 db %11111110 db %11111110 db %11111110 db %11111001 db %11111001 db %11111001 db %11100100 db %11100100 db %11100100 db %10010000 db %10010000 db %10010000 db %01000000 db %01000000 db %01000000 db %00000000 db %00000000 db %00000000 ; 8c20f Function8c20f: ; 8c20f call Function8c26d ld a, [rBGP] ld [$cfc7], a ld a, [rOBP0] ld [$cfc8], a ld a, [rOBP1] ld [$cfc9], a call DelayFrame ld hl, $ff9e ld a, [hl] push af ld [hl], $1 .asm_8c22b ld a, [$cf63] bit 7, a jr nz, .asm_8c23a call Function8c314 call DelayFrame jr .asm_8c22b .asm_8c23a ld a, [rSVBK] push af ld a, $5 ld [rSVBK], a ld hl, Unkn1Pals ld bc, $0040 xor a call ByteFill pop af ld [rSVBK], a ld a, $ff ld [$cfc7], a call DmgToCgbBGPals call DelayFrame xor a ld [hLCDStatCustom], a ld [$ffc7], a ld [$ffc8], a ld [hSCY], a ld a, $1 ld [rSVBK], a pop af ld [$ff9e], a call DelayFrame ret ; 8c26d Function8c26d: ; 8c26d ld a, [InLinkBattle] cp $4 jr z, .asm_8c288 callba Function6454 call Function1ad2 call DelayFrame call Function8c2a0 call Function8cf4f jr .asm_8c28b .asm_8c288 call Function8c2aa .asm_8c28b ld a, $90 ld [hWY], a call DelayFrame xor a ld [hBGMapMode], a ld hl, $cf63 xor a ld [hli], a ld [hli], a ld [hl], a call Function8c6d8 ret ; 8c2a0 Function8c2a0: ; 8c2a0 call Function8c2aa ld hl, VBGMap0 call Function8c2cf ret ; 8c2aa Function8c2aa: ; 8c2aa ld de, $42f4 ld hl, $8fe0 ld b, $23 ld c, $2 call Request2bpp ld a, [rVBK] push af ld a, $1 ld [rVBK], a ld de, $42f4 ld hl, $8fe0 ld b, $23 ld c, $2 call Request2bpp pop af ld [rVBK], a ret ; 8c2cf Function8c2cf: ; 8c2cf ld a, [rSVBK] push af ld a, $6 ld [rSVBK], a push hl ld hl, Unkn1Pals ld bc, $0280 .asm_8c2dd ld [hl], $ff inc hl dec bc ld a, c or b jr nz, .asm_8c2dd pop hl ld de, Unkn1Pals ld b, $23 ld c, $28 call Request2bpp pop af ld [rSVBK], a ret ; 8c2f4 INCBIN "baserom.gbc",$8c2f4,$8c314 - $8c2f4 Function8c314: ; 8c314 ld a, [$cf63] ld e, a ld d, 0 ld hl, Jumptable_8c323 add hl, de add hl, de ld a, [hli] ld h, [hl] ld l, a jp [hl] ; 8c323 ; no known jump sources Jumptable_8c323: ; 8c323 (23:4323) dw Function8c365 dw Function8c5dc dw Function8c3a1 dw Function8c3ab dw Function8c3ab dw Function8c3ab dw Function8c39c dw Function8c3e8 dw Function8c408 dw Function8c5dc dw Function8c3a1 dw Function8c3ab dw Function8c3ab dw Function8c3ab dw Function8c39c dw Function8c768 dw Function8c5dc dw Function8c3a1 dw Function8c3ab dw Function8c3ab dw Function8c3ab dw Function8c39c dw Function8c43d dw Function8c44f dw Function8c5dc dw Function8c3a1 dw Function8c3ab dw Function8c3ab dw Function8c3ab dw Function8c39c dw Function8c578 dw Function8c58f dw Function8c393 ; no known jump sources Function8c365: ; 8c365 (23:4365) ld de, $0 ld a, [BattleMonLevel] ; $c639 add $3 ld hl, EnemyMonLevel ; $d213 cp [hl] jr nc, .asm_8c375 set 0, e .asm_8c375 ld a, [$d19a] cp $4 jr z, .asm_8c386 cp $5 jr z, .asm_8c386 cp $7 jr z, .asm_8c386 set 1, e .asm_8c386 ld hl, $438f add hl, de ld a, [hl] ld [$cf63], a ret ; 8c38f (23:438f) INCBIN "baserom.gbc",$8c38f,$8c393 - $8c38f ; no known jump sources Function8c393: ; 8c393 (23:4393) call ClearSprites ld a, $80 ld [$cf63], a ret ; known jump sources: 8c3a1 (23:43a1), 8c3af (23:43af), 8c3f2 (23:43f2), 8c447 (23:4447), 8c582 (23:4582), 8c673 (23:4673) Function8c39c: ; 8c39c (23:439c) ld hl, $cf63 inc [hl] ret ; no known jump sources Function8c3a1: ; 8c3a1 (23:43a1) call Function8c39c xor a ld [$cf64], a ld [hBGMapMode], a ; $ff00+$d4 ret ; no known jump sources Function8c3ab: ; 8c3ab (23:43ab) call Function8c3b3 ret nc call Function8c39c ret ; known jump sources: 8c3ab (23:43ab) Function8c3b3: ; 8c3b3 (23:43b3) ld a, [$d847] cp $ff jr z, .asm_8c3d5 ld hl, $cf64 ld a, [hl] inc [hl] srl a ld e, a ld d, $0 ld hl, $43db add hl, de ld a, [hl] cp $1 jr z, .asm_8c3d5 ld [$cfc7], a call DmgToCgbBGPals and a ret .asm_8c3d5 xor a ld [$cf64], a scf ret ; 8c3db (23:43db) INCBIN "baserom.gbc",$8c3db,$8c3e8 - $8c3db ; no known jump sources Function8c3e8: ; 8c3e8 (23:43e8) callba Function5602 ld a, $5 ld [rSVBK], a ; $ff00+$70 call Function8c39c ld a, $43 ld [hLCDStatCustom], a ; $ff00+$c6 xor a ld [$FF00+$c7], a ld a, $90 ld [$FF00+$c8], a xor a ld [$cf64], a ld [$cf65], a ret ; no known jump sources Function8c408: ; 8c408 (23:4408) ld a, [$cf64] cp $60 jr nc, .asm_8c413 call Function8c419 ret .asm_8c413 ld a, $20 ld [$cf63], a ret ; known jump sources: 8c40f (23:440f) Function8c419: ; 8c419 (23:4419) ld hl, $cf65 ld a, [hl] inc [hl] ld hl, $cf64 ld d, [hl] add [hl] ld [hl], a ld a, $90 ld bc, CurMartEnd ; $d100 (aliases: LYOverrides) ld e, $0 .asm_8c42b push af push de ld a, e call Function8c6f7 ld [bc], a inc bc pop de ld a, e add $2 ld e, a pop af dec a jr nz, .asm_8c42b ret ; no known jump sources Function8c43d: ; 8c43d (23:443d) callba Function5602 ld a, $5 ld [rSVBK], a ; $ff00+$70 call Function8c39c xor a ld [$cf64], a ret ; no known jump sources Function8c44f: ; 8c44f (23:444f) xor a ld [hBGMapMode], a ; $ff00+$d4 ld a, [$cf64] ld e, a ld d, $0 ld hl, $4490 add hl, de add hl, de add hl, de add hl, de add hl, de ld a, [hli] cp $ff jr z, .asm_8c47a ld [$cf65], a call Function8c4f5 ld a, $1 ld [hBGMapMode], a ; $ff00+$d4 call DelayFrame call DelayFrame ld hl, $cf64 inc [hl] ret .asm_8c47a ld a, $1 ld [hBGMapMode], a ; $ff00+$d4 call DelayFrame call DelayFrame call DelayFrame xor a ld [hBGMapMode], a ; $ff00+$d4 ld a, $20 ld [$cf63], a ret ; 8c490 (23:4490) INCBIN "baserom.gbc",$8c490,$8c4f5 - $8c490 ; known jump sources: 8c468 (23:4468) Function8c4f5: ; 8c4f5 (23:44f5) ld a, [hli] ld e, a ld a, [hli] ld d, a ld a, [hli] ld h, [hl] ld l, a .asm_8c4fc push hl ld a, [de] ld c, a inc de .asm_8c500 ld [hl], $ff ld a, [$cf65] bit 0, a jr z, .asm_8c50c inc hl jr .asm_8c50d .asm_8c50c dec hl .asm_8c50d dec c jr nz, .asm_8c500 pop hl ld a, [$cf65] bit 1, a ld bc, $14 jr z, .asm_8c51e ld bc, $ffec .asm_8c51e add hl, bc ld a, [de] inc de cp $ff ret z and a jr z, .asm_8c4fc ld c, a .asm_8c528 ld a, [$cf65] bit 0, a jr z, .asm_8c532 dec hl jr .asm_8c533 .asm_8c532 inc hl .asm_8c533 dec c jr nz, .asm_8c528 jr .asm_8c4fc ; 8c538 (23:4538) INCBIN "baserom.gbc",$8c538,$8c578 - $8c538 ; no known jump sources Function8c578: ; 8c578 (23:4578) callba Function5602 ld a, $5 ld [rSVBK], a ; $ff00+$70 call Function8c39c ld a, $10 ld [$cf64], a ld a, $1 ld [hBGMapMode], a ; $ff00+$d4 ret ; no known jump sources Function8c58f: ; 8c58f (23:458f) ld hl, $cf64 ld a, [hl] and a jr z, .asm_8c5a2 dec [hl] ld c, $c .asm_8c599 push bc call Function8c5b8 pop bc dec c jr nz, .asm_8c599 ret .asm_8c5a2 ld a, $1 ld [hBGMapMode], a ; $ff00+$d4 call DelayFrame call DelayFrame call DelayFrame xor a ld [hBGMapMode], a ; $ff00+$d4 ld a, $20 ld [$cf63], a ret ; known jump sources: 8c59a (23:459a), 8c5bd (23:45bd), 8c5d7 (23:45d7) Function8c5b8: ; 8c5b8 (23:45b8) call Random cp $12 jr nc, Function8c5b8 ld b, a .asm_8c5c0 call Random cp $14 jr nc, .asm_8c5c0 ld c, a ld hl, $c48c ld de, $14 inc b .asm_8c5cf add hl, de dec b jr nz, .asm_8c5cf add hl, bc ld a, [hl] cp $ff jr z, Function8c5b8 ld [hl], $ff ret ; no known jump sources Function8c5dc: ; 8c5dc (23:45dc) ld a, [OtherTrainerClass] ; $d22f and a jp z, Function8c673 xor a ld [hBGMapMode], a ; $ff00+$d4 ld hl, AttrMap ; $cdd9 ld bc, $168 inc b inc c jr .asm_8c5f4 .asm_8c5f0 ld a, [hl] or $7 ld [hli], a .asm_8c5f4 dec c jr nz, .asm_8c5f0 dec b jr nz, .asm_8c5f0 call Function8c6b1 ld hl, $c4b6 ld b, $10 .asm_8c602 push hl ld c, $2 .asm_8c605 push hl ld a, [de] inc de .asm_8c608 and a jr z, .asm_8c614 sla a jr nc, .asm_8c611 ld [hl], $fe .asm_8c611 inc hl jr .asm_8c608 .asm_8c614 pop hl push bc ld bc, $8 add hl, bc pop bc dec c jr nz, .asm_8c605 pop hl push bc ld bc, $14 add hl, bc pop bc dec b jr nz, .asm_8c602 ld a, [hCGB] ; $ff00+$e6 and a jr nz, .asm_8c639 ld a, $1 ld [hBGMapMode], a ; $ff00+$d4 call DelayFrame call DelayFrame jr Function8c673 .asm_8c639 ld hl, Unknown_8c6a1 ld a, [TimeOfDayPal] ; $d841 and 3 cp 3 jr nz, .asm_8c648 ld hl, Unknown_8c6a9 .asm_8c648 ld a, [rSVBK] ; $ff00+$70 push af ld a, $5 ld [rSVBK], a ; $ff00+$70 call Function8c677 push hl ld de, $d038 ld bc, $8 call CopyBytes pop hl ld de, $d0b8 ld bc, $8 call CopyBytes pop af ld [rSVBK], a ; $ff00+$70 ld a, $1 ld [hCGBPalUpdate], a ; $ff00+$e5 call DelayFrame call Function8cf4f ; known jump sources: 8c5e0 (23:45e0), 8c637 (23:4637) Function8c673: ; 8c673 (23:4673) call Function8c39c ret ; known jump sources: 8c64f (23:464f) Function8c677: ; 8c677 (23:4677) ld de, $d038 call Function8c698 ld de, $d0b8 call Function8c698 ld de, $d070 call Function8c698 ld de, CurMart ; $d0f0 call Function8c698 ld de, $d078 call Function8c698 ld de, $d0f8 ; known jump sources: 8c67a (23:467a), 8c680 (23:4680), 8c686 (23:4686), 8c68c (23:468c), 8c692 (23:4692) Function8c698: ; 8c698 (23:4698) push hl ld bc, $8 call CopyBytes pop hl ret ; 8c6a1 (23:46a1) Unknown_8c6a1: ; 8c6a1 RGB 31, 18, 29 RGB 31, 11, 15 RGB 31, 05, 05 RGB 07, 07, 07 ; 8c6a9 Unknown_8c6a9: ; 8c6a9 RGB 31, 18, 29 RGB 31, 05, 05 RGB 31, 05, 05 RGB 31, 05, 05 ; 8c6b1 ; known jump sources: 8c5fa (23:45fa) Function8c6b1: ; 8c6b1 (23:46b1) ld a, [OtherTrainerClass] ; $d22f ld de, Unknown_8c6b8 ret ; 8c6b8 (23:46b8) Unknown_8c6b8: ; 8c6b8 db $03, $c0, $0f, $f0, $3c, $3c, $30, $0c db $60, $06, $63, $c6, $c6, $63, $fc, $3f db $fc, $3f, $c6, $63, $63, $c6, $60, $06 db $30, $0c, $3c, $3c, $0f, $f0, $03, $c0 ; 8c6d8 Function8c6d8: ; 8c6d8 ld a, [rSVBK] push af ld a, $5 ld [rSVBK], a ld hl, LYOverrides call Function8c6ef ld hl, $d200 call Function8c6ef pop af ld [rSVBK], a ret ; 8c6ef Function8c6ef: ; 8c6ef xor a ld c, $90 .asm_8c6f2 ld [hli], a dec c jr nz, .asm_8c6f2 ret ; 8c6f7 ; known jump sources: 8c42e (23:442e) Function8c6f7: ; 8c6f7 (23:46f7) and $3f cp $20 jr nc, .asm_8c702 call Function8c70c ld a, h ret .asm_8c702 and $1f call Function8c70c ld a, h xor $ff inc a ret ; known jump sources: 8c6fd (23:46fd), 8c704 (23:4704) Function8c70c: ; 8c70c (23:470c) ld e, a ld a, d ld d, 0 ld hl, Unknown_8c728 add hl, de add hl, de ld e, [hl] inc hl ld d, [hl] ld hl, 0 .asm_8c71b srl a jr nc, .asm_8c720 add hl, de .asm_8c720 sla e rl d and a jr nz, .asm_8c71b ret ; 8c728 (23:4728) Unknown_8c728: ; 8c728 ; Another sine wave? x set 0 rept $20 dw (sin(x) + (sin(x) & $ff)) >> 8 ; round up x set x + $100 * $40000 endr ; 8c768 ; no known jump sources Function8c768: ; 8c768 (23:4768) callba Function5602 ld de, Unknown_8c792 .asm_8c771 ld a, [de] cp $ff jr z, .asm_8c78c inc de ld c, a ld a, [de] inc de ld b, a ld a, [de] inc de ld l, a ld a, [de] inc de ld h, a xor a ld [hBGMapMode], a ; $ff00+$d4 call Function8c7b7 call WaitBGMap jr .asm_8c771 .asm_8c78c ld a, $20 ld [$cf63], a ret ; 8c792 (23:4792) Unknown_8c792: ; 8c792 dbbw 4, 2, $c548 ; (8, 8) dbbw 6, 4, $c533 ; (7, 7) dbbw 8, 6, $c51e ; (6, 6) dbbw 10, 8, $c509 ; (5, 5) dbbw 12, 10, $c4f4 ; (4, 4) dbbw 14, 12, $c4df ; (3, 3) dbbw 16, 14, $c4ca ; (2, 2) dbbw 18, 16, $c4b5 ; (1, 1) dbbw 20, 18, $c4a0 ; (0, 0) db $ff ; 8c7b7 ; known jump sources: 8c784 (23:4784) Function8c7b7: ; 8c7b7 (23:47b7) ld a, $ff .asm_8c7b9 push bc push hl .asm_8c7bb ld [hli], a dec c jr nz, .asm_8c7bb pop hl ld bc, $14 add hl, bc pop bc dec b jr nz, .asm_8c7b9 ret ; 8c7c9 (23:47c9) Function8c7c9: ; 8c7c9 ld a, $1 ld [hBGMapMode], a call WaitBGMap xor a ld [hBGMapMode], a ret ; 8c7d4 Function8c7d4: ; 8c7d4 call WaitSFX ld de, SFX_SURF call PlaySFX call WaitSFX ret ; 8c7e1 Function8c7e1: ; 8c7e1 callba Function8c084 ld hl, StatusFlags set 2, [hl] callba Function8c0e5 callba Function8c001 ld b, $9 call GetSGBLayout callba Function49409 callba Function8c079 ret ; 8c80a Function8c80a: ; 8c80a callba Function8cf53 ld de, GFX_8c9cc ld hl, VTiles1 lb bc, BANK(GFX_8c9cc), 4 call Request2bpp ld de, HeadbuttTreeGFX ld hl, $8840 lb bc, BANK(HeadbuttTreeGFX), 8 call Request2bpp call Function8cad3 ld a, $1b call Function3b2a ld hl, $0003 add hl, bc ld [hl], $84 ld a, $90 ld [$c3b5], a callba Function8cf7a call Function8c913 ld a, $20 ld [$cf64], a call WaitSFX ld de, SFX_SANDSTORM call PlaySFX .asm_8c852 ld hl, $cf64 ld a, [hl] and a jr z, .asm_8c86a dec [hl] ld a, $90 ld [$c3b5], a callba Function8cf7a call DelayFrame jr .asm_8c852 .asm_8c86a call Function2173 call WaitBGMap xor a ld [hBGMapMode], a callba Function8cf53 ld hl, $c490 ld bc, $0010 xor a call ByteFill ld de, Font ld hl, VTiles1 lb bc, BANK(Font), $c call Get1bpp call Functione4a ret ; 8c893 HeadbuttTreeGFX: ; 8c893 INCBIN "baserom.gbc", $8c893, $8c913 - $8c893 ; 8c913 Function8c913: ; 8c913 xor a ld [hBGMapMode], a ld a, [PlayerDirection] and $c srl a ld e, a ld d, 0 ld hl, Unknown_8c938 add hl, de ld a, [hli] ld h, [hl] ld l, a ld a, $5 ld [hli], a ld [hld], a ld bc, $0014 add hl, bc ld [hli], a ld [hld], a call WaitBGMap xor a ld [hBGMapMode], a ret ; 8c938 Unknown_8c938: ; 8c938 dw $c570 ; ( 8, 10) dw $c520 ; ( 8, 6) dw $c546 ; ( 6, 8) dw $c54a ; (10, 8) ; 8c940 Function8c940: ; 8c940 ld a, e and $1 ld [$cf63], a call Function8c96d call WaitSFX ld de, SFX_PLACE_PUZZLE_PIECE_DOWN call PlaySFX .asm_8c952 ld a, [$cf63] bit 7, a jr nz, .asm_8c96c ld a, $90 ld [$c3b5], a callab Function8cf7a call Function8ca0c call DelayFrame jr .asm_8c952 .asm_8c96c ret ; 8c96d Function8c96d: ; 8c96d callab Function8cf53 ld de, GFX_8c9cc ld hl, VTiles1 lb bc, BANK(GFX_8c9cc), 4 call Request2bpp ld de, CutTreeGFX ld hl, $8840 lb bc, BANK(CutTreeGFX), 4 call Request2bpp ret ; 8c98c CutTreeGFX: ; c898c INCBIN "baserom.gbc", $8c98c, $8c9cc - $8c98c ; c89cc GFX_8c9cc: ; 8c9cc INCBIN "baserom.gbc", $8c9cc, $8ca0c - $8c9cc ; 8ca0c Function8ca0c: ; 8ca0c ld a, [$cf63] ld e, a ld d, 0 ld hl, Jumptable_8ca1b add hl, de add hl, de ld a, [hli] ld h, [hl] ld l, a jp [hl] ; 8ca1b ; no known jump sources Jumptable_8ca1b: ; 8ca1b (23:4a1b) dw Function8ca23 dw Function8ca3c dw Function8ca5c dw Function8ca64 ; no known jump sources Function8ca23: ; 8ca23 (23:4a23) call Function8cad3 ld a, $17 call Function3b2a ld hl, $3 add hl, bc ld [hl], $84 ld a, $20 ld [$cf64], a ld hl, $cf63 inc [hl] inc [hl] ret ; no known jump sources Function8ca3c: ; 8ca3c (23:4a3c) call Function8ca8e xor a call Function8ca73 ld a, $10 call Function8ca73 ld a, $20 call Function8ca73 ld a, $30 call Function8ca73 ld a, $20 ld [$cf64], a ld hl, $cf63 inc [hl] ret ; no known jump sources Function8ca5c: ; 8ca5c (23:4a5c) ld a, $1 ld [hBGMapMode], a ; $ff00+$d4 ld hl, $cf63 inc [hl] ; no known jump sources Function8ca64: ; 8ca64 (23:4a64) ld hl, $cf64 ld a, [hl] and a jr z, .asm_8ca6d dec [hl] ret .asm_8ca6d ld hl, $cf63 set 7, [hl] ret ; known jump sources: 8ca40 (23:4a40), 8ca45 (23:4a45), 8ca4a (23:4a4a), 8ca4f (23:4a4f) Function8ca73: ; 8ca73 (23:4a73) push de push af ld a, $16 call Function3b2a ld hl, $3 add hl, bc ld [hl], $80 ld hl, $e add hl, bc ld [hl], $4 pop af ld hl, $c add hl, bc ld [hl], a pop de ret ; known jump sources: 8ca3c (23:4a3c) Function8ca8e: ; 8ca8e (23:4a8e) ld de, $0 ld a, [$d197] bit 0, a jr z, .asm_8ca9a set 0, e .asm_8ca9a ld a, [$d196] bit 0, a jr z, .asm_8caa3 set 1, e .asm_8caa3 ld a, [PlayerDirection] ; $d4de and $c add e ld e, a ld hl, Unknown_8cab3 add hl, de add hl, de ld e, [hl] inc hl ld d, [hl] ret ; 8cab3 (23:4ab3) Unknown_8cab3: ; 8cab3 db $58, $60 db $48, $60 db $58, $70 db $48, $70 db $58, $40 db $48, $40 db $58, $50 db $48, $50 db $38, $60 db $48, $60 db $38, $50 db $48, $50 db $58, $60 db $68, $60 db $58, $50 db $68, $50 ; 8cad3 ; known jump sources: 8ca23 (23:4a23) Function8cad3: ; 8cad3 (23:4ad3) ld a, [PlayerDirection] ; $d4de and $c srl a ld e, a ld d, 0 ld hl, Unknown_8cae5 add hl, de ld e, [hl] inc hl ld d, [hl] ret ; 8cae5 (23:4ae5) Unknown_8cae5: ; 8cae5 db $50, $68 db $50, $48 db $40, $58 db $60, $58 ; 8caed Function8caed: ; 8caed call DelayFrame ld a, [VramState] ; $d0ed push af xor a ld [VramState], a ; $d0ed call Function8cb9b ld de, $5450 ld a, $a call Function3b2a ld hl, $3 add hl, bc ld [hl], $84 ld hl, $2 add hl, bc ld [hl], $16 ld a, $80 ld [$cf64], a .asm_8cb14 ld a, [$cf63] bit 7, a jr nz, .asm_8cb2e ld a, $0 ld [$c3b5], a callab Function8cf7a call Function8cbc8 call DelayFrame jr .asm_8cb14 .asm_8cb2e pop af ld [VramState], a ; $d0ed ret ; 8cb33 Function8cb33: ; 8cb33 call DelayFrame ld a, [VramState] ; $d0ed push af xor a ld [VramState], a ; $d0ed call Function8cb9b ld de, $fc50 ld a, $a call Function3b2a ld hl, $3 add hl, bc ld [hl], $84 ld hl, $2 add hl, bc ld [hl], $18 ld hl, $f add hl, bc ld [hl], $58 ld a, $40 ld [$cf64], a .asm_8cb60 ld a, [$cf63] bit 7, a jr nz, .asm_8cb7a ld a, $0 ld [$c3b5], a callab Function8cf7a call Function8cbc8 call DelayFrame jr .asm_8cb60 .asm_8cb7a pop af ld [VramState], a ; $d0ed call Function8cb82 ret ; known jump sources: 8cb7e (23:4b7e) Function8cb82: ; 8cb82 (23:4b82) ld hl, $c402 xor a ld c, $4 .asm_8cb88 ld [hli], a inc hl inc hl inc hl inc a dec c jr nz, .asm_8cb88 ld hl, $c410 ld bc, $90 xor a call ByteFill ret ; known jump sources: 8caf8 (23:4af8), 8cb3e (23:4b3e) Function8cb9b: ; 8cb9b (23:4b9b) callab Function8cf53 ld de, $49cc ld hl, $8800 ld bc, $2304 call Request2bpp ld a, [CurPartyMon] ; $d109 ld hl, PartySpecies ; $dcd8 ld e, a ld d, 0 add hl, de ld a, [hl] ld [$d265], a ld e, $84 callba Function8e9bc xor a ld [$cf63], a ret ; known jump sources: 8cb26 (23:4b26), 8cb72 (23:4b72) Function8cbc8: ; 8cbc8 (23:4bc8) call Function8cbe6 ld hl, $cf64 ld a, [hl] and a jr z, .asm_8cbe0 dec [hl] cp $40 ret c and $7 ret nz ld de, SFX_FLY call PlaySFX ret .asm_8cbe0 ld hl, $cf63 set 7, [hl] ret ; known jump sources: 8cbc8 (23:4bc8) Function8cbe6: ; 8cbe6 (23:4be6) ld hl, $cf65 ld a, [hl] inc [hl] and $7 ret nz ld a, [hl] and $18 sla a add $40 ld d, a ld e, $0 ld a, $18 call Function3b2a ld hl, $3 add hl, bc ld [hl], $80 ret Function8cc04: ; 8cc04 ld a, [ScriptVar] and a jr nz, .asm_8cc14 ld a, $1 ld bc, $4060 ld de, $fca0 jr .asm_8cc1c .asm_8cc14 ld a, $ff ld bc, $c0a0 ld de, $b460 .asm_8cc1c ld h, a ld a, [rSVBK] push af ld a, $5 ld [rSVBK], a ld a, h ld [$d191], a ld a, c ld [$d192], a ld a, b ld [$d193], a ld a, e ld [$d194], a ld a, d ld [$d195], a ld a, [hSCX] push af ld a, [hSCY] push af call Function8ccc9 ld hl, $ff9e ld a, [hl] push af ld [hl], $1 .asm_8cc48 ld a, [$cf63] and a jr z, .asm_8cc66 bit 7, a jr nz, .asm_8cc6b callab Function8cf69 call Function8cdf7 call Function8cc99 call Function3b0c call DelayFrame jr .asm_8cc48 .asm_8cc66 call Function8ceae jr .asm_8cc48 .asm_8cc6b pop af ld [$ff9e], a call WhiteBGMap xor a ld [hLCDStatCustom], a ld [$ffc7], a ld [$ffc8], a ld [hSCX], a ld [Requested2bppSource], a ld [$cf69], a ld [Requested2bppDest], a ld [$cf6b], a ld [Requested2bpp], a call ClearTileMap pop af ld [hSCY], a pop af ld [hSCX], a xor a ld [hBGMapMode], a pop af ld [rSVBK], a ret ; 8cc99 Function8cc99: ; 8cc99 ld hl, $d200 ld c, $2f ld a, [$cf64] add a ld [hSCX], a call Function8ccc4 ld c, $30 ld a, [$cf65] call Function8ccc4 ld c, $31 ld a, [$cf64] add a call Function8ccc4 ld a, [$d191] ld d, a ld hl, $cf64 ld a, [hl] add d add d ld [hl], a ret ; 8ccc4 Function8ccc4: ; 8ccc4 .asm_8ccc4 ld [hli], a dec c jr nz, .asm_8ccc4 ret ; 8ccc9 Function8ccc9: ; 8ccc9 call WhiteBGMap call ClearSprites call DisableLCD callab Function8cf53 call SetMagnetTrainPals call DrawMagnetTrain ld a, $90 ld [hWY], a call EnableLCD xor a ld [hBGMapMode], a ld [hSCX], a ld [hSCY], a ld a, [rSVBK] push af ld a, $1 ld [rSVBK], a callba GetPlayerIcon pop af ld [rSVBK], a ld hl, VTiles0 ld c, $4 call Request2bpp ld hl, $00c0 add hl, de ld d, h ld e, l ld hl, $8040 ld c, $4 call Request2bpp call Function8cda6 ld hl, $cf63 xor a ld [hli], a ld a, [$d192] ld [hli], a ld [hli], a ld [hli], a ld de, MUSIC_MAGNET_TRAIN call PlayMusic2 ret ; 8cd27 DrawMagnetTrain: ; 8cd27 ld hl, VBGMap0 xor a .asm_8cd2b call GetMagnetTrainBGTiles ld b, 32 / 2 call .FillAlt inc a cp $12 jr c, .asm_8cd2b ld hl, $98c0 ld de, MagnetTrainTilemap1 ld c, 20 call .FillLine ld hl, $98e0 ld de, MagnetTrainTilemap2 ld c, 20 call .FillLine ld hl, $9900 ld de, MagnetTrainTilemap3 ld c, 20 call .FillLine ld hl, $9920 ld de, MagnetTrainTilemap4 ld c, 20 call .FillLine ret ; 8cd65 .FillLine ; 8cd65 ld a, [de] inc de ld [hli], a dec c jr nz, .FillLine ret ; 8cd6c .FillAlt ; 8cd6c ld [hl], e inc hl ld [hl], d inc hl dec b jr nz, .FillAlt ret ; 8cd74 GetMagnetTrainBGTiles: ; 8cd74 push hl ld e, a ld d, 0 ld hl, MagnetTrainBGTiles add hl, de add hl, de ld e, [hl] inc hl ld d, [hl] pop hl ret ; 8cd82 MagnetTrainBGTiles: ; 8cd82 ; Alternating tiles for each line ; of the Magnet Train tilemap. db $4c, $4d ; bush db $5c, $5d ; bush db $4c, $4d ; bush db $5c, $5d ; bush db $08, $08 ; fence db $18, $18 ; fence db $1f, $1f ; track db $31, $31 ; track db $11, $11 ; track db $11, $11 ; track db $0d, $0d ; track db $31, $31 ; track db $04, $04 ; fence db $18, $18 ; fence db $4c, $4d ; bush db $5c, $5d ; bush db $4c, $4d ; bush db $5c, $5d ; bush ; 8cda6 Function8cda6: ; 8cda6 ld hl, LYOverrides ld bc, $0090 ld a, [$d192] call ByteFill ld hl, $d200 ld bc, $0090 ld a, [$d192] call ByteFill ld a, $43 ld [hLCDStatCustom], a ret ; 8cdc3 SetMagnetTrainPals: ; 8cdc3 ld a, $1 ld [rVBK], a ; bushes ld hl, VBGMap0 ld bc, $0080 ld a, $2 call ByteFill ; train ld hl, $9880 ld bc, $0140 xor a call ByteFill ; more bushes ld hl, $99c0 ld bc, $0080 ld a, $2 call ByteFill ; train window ld hl, $9907 ld bc, $0006 ld a, $4 call ByteFill ld a, $0 ld [rVBK], a ret ; 8cdf7 Function8cdf7: ; 8cdf7 ld a, [$cf63] ld e, a ld d, 0 ld hl, Jumptable_8ce06 add hl, de add hl, de ld a, [hli] ld h, [hl] ld l, a jp [hl] ; 8ce06 Jumptable_8ce06: ; 8ce06 dw Function8ce19 dw Function8ce6d dw Function8ce47 dw Function8ce6d dw Function8ce7a dw Function8ce6d dw Function8cea2 ; 8ce14 Function8ce14: ; 8ce14 ld hl, $cf63 inc [hl] ret ; 8ce19 Function8ce19: ; 8ce19 ld d, $55 ld a, [$d195] ld e, a ld b, $15 ld a, [rSVBK] push af ld a, $1 ld [rSVBK], a ld a, [PlayerGender] bit 0, a jr z, .asm_8ce31 ld b, $1f .asm_8ce31 pop af ld [rSVBK], a ld a, b call Function3b2a ld hl, $0003 add hl, bc ld [hl], $0 call Function8ce14 ld a, $80 ld [$cf66], a ret ; 8ce47 Function8ce47: ; 8ce47 ld hl, $d193 ld a, [$cf65] cp [hl] jr z, .asm_8ce64 ld e, a ld a, [$d191] xor $ff inc a add e ld [$cf65], a ld hl, $c3c0 ld a, [$d191] add [hl] ld [hl], a ret .asm_8ce64 call Function8ce14 ld a, $80 ld [$cf66], a ret ; 8ce6d Function8ce6d: ; 8ce6d ld hl, $cf66 ld a, [hl] and a jr z, .asm_8ce76 dec [hl] ret .asm_8ce76 call Function8ce14 ret ; 8ce7a Function8ce7a: ; 8ce7a ld hl, $d194 ld a, [$cf65] cp [hl] jr z, .asm_8ce9e ld e, a ld a, [$d191] xor $ff inc a ld d, a ld a, e add d add d ld [$cf65], a ld hl, $c3c0 ld a, [$d191] ld d, a ld a, [hl] add d add d ld [hl], a ret ret .asm_8ce9e call Function8ce14 ret ; 8cea2 Function8cea2: ; 8cea2 ld a, $80 ld [$cf63], a ld de, SFX_TRAIN_ARRIVED call PlaySFX ret ; 8ceae Function8ceae: ; 8ceae callba Function8cf69 call Function8cdf7 call Function8cc99 call Function3b0c call DelayFrame ld a, [rSVBK] push af ld a, $1 ld [rSVBK], a ld a, [TimeOfDayPal] push af ld a, [$d19a] push af ld a, [TimeOfDay] and $3 ld [TimeOfDayPal], a ld a, $1 ld [$d19a], a ld b, $9 call GetSGBLayout call UpdateTimePals ld a, [rBGP] ld [$cfc7], a ld a, [rOBP0] ld [$cfc8], a ld a, [rOBP1] ld [$cfc9], a pop af ld [$d19a], a pop af ld [TimeOfDayPal], a pop af ld [rSVBK], a ret ; 8ceff MagnetTrainTilemap1: db $1f, $05, $06, $0a, $0a, $0a, $09, $0a, $0a, $0a, $0a, $0a, $0a, $09, $0a, $0a, $0a, $0b, $0c, $1f MagnetTrainTilemap2: db $14, $15, $16, $1a, $1a, $1a, $19, $1a, $1a, $1a, $1a, $1a, $1a, $19, $1a, $1a, $1a, $1b, $1c, $1d MagnetTrainTilemap3: db $24, $25, $26, $27, $07, $2f, $29, $28, $28, $28, $28, $28, $28, $29, $07, $2f, $2a, $2b, $2c, $2d MagnetTrainTilemap4: db $20, $1f, $2e, $1f, $17, $00, $2e, $1f, $1f, $1f, $1f, $1f, $1f, $2e, $17, $00, $1f, $2e, $1f, $0f ; 8cf4f Function8cf4f: ; 8cf4f call Function3238 ret ; 8cf53 Function8cf53: ; 8cf53 ld hl, $c300 ld bc, $00c1 .asm_8cf59 ld [hl], $0 inc hl dec bc ld a, c or b jr nz, .asm_8cf59 ret ; 8cf62 Function8cf62: ; 8cf62 call Function8cf69 call DelayFrame ret ; 8cf69 Function8cf69: ; 8cf69 push hl push de push bc push af ld a, $0 ld [$c3b5], a call Function8cf7a pop af pop bc pop de pop hl ret ; 8cf7a Function8cf7a: ; 8cf7a ld hl, $c314 ld e, $a .asm_8cf7f ld a, [hl] and a jr z, .asm_8cf91 ld c, l ld b, h push hl push de call Function8d24b call Function8d04c pop de pop hl jr c, .asm_8cfa7 .asm_8cf91 ld bc, $0010 add hl, bc dec e jr nz, .asm_8cf7f ld a, [$c3b5] ld l, a ld h, $c4 .asm_8cf9e ld a, l cp $a0 jr nc, .asm_8cfa7 xor a ld [hli], a jr .asm_8cf9e .asm_8cfa7 ret ; 8cfa8 Function8cfa8: ; 8cfa8 (23:4fa8) ld hl, $c314 ld e, $a .asm_8cfad ld a, [hl] and a jr z, .asm_8cfbf ld c, l ld b, h push hl push de call Function8d24b call Function8d04c pop de pop hl jr c, .asm_8cfd5 .asm_8cfbf ld bc, $10 add hl, bc dec e jr nz, .asm_8cfad ld a, [$c3b5] ld l, a ld h, $c4 .asm_8cfcc ld a, l cp $40 jr nc, .asm_8cfd5 xor a ld [hli], a jr .asm_8cfcc .asm_8cfd5 ret Function8cfd6:: ; 8cfd6 push de push af ld hl, $c314 ld e, $a .asm_8cfdd ld a, [hl] and a jr z, .asm_8cfec ld bc, $0010 add hl, bc dec e jr nz, .asm_8cfdd pop af pop de scf ret .asm_8cfec ld c, l ld b, h ld hl, $c3b4 inc [hl] ld a, [hl] and a jr nz, .asm_8cff7 inc [hl] .asm_8cff7 pop af ld e, a ld d, $0 ld hl, $51c4 add hl, de add hl, de add hl, de ld e, l ld d, h ld hl, $0000 add hl, bc ld a, [$c3b4] ld [hli], a ld a, [de] ld [hli], a inc de ld a, [de] ld [hli], a inc de ld a, [de] call Function8d109 ld [hli], a pop de ld hl, $0004 add hl, bc ld a, e ld [hli], a ld a, d ld [hli], a xor a ld [hli], a ld [hli], a xor a ld [hli], a ld [hli], a dec a ld [hli], a xor a ld [hli], a ld [hli], a ld [hli], a ld [hli], a ld [hl], a ld a, c ld [$c3b8], a ld a, b ld [$c3b9], a ret ; 8d036 Function8d036: ; 8d036 ld hl, $0000 add hl, bc ld [hl], $0 ret ; 8d03d ; no known jump sources Function8d03d: ; 8d03d (23:503d) ld hl, $c314 ld bc, $10 ld e, $a xor a .asm_8d046 ld [hl], a add hl, bc dec e jr nz, .asm_8d046 ret Function8d04c: ; 8d04c call Function8d0ec call Function8d132 cp EGG jr z, .asm_8d0b9 cp NUM_POKEMON + 1 jr z, .asm_8d0b6 call Function8d1a2 ld a, [$c3ba] add [hl] ld [$c3ba], a inc hl ld a, [hli] ld h, [hl] ld l, a push bc ld a, [$c3b5] ld e, a ld d, $c4 ld a, [hli] ld c, a .asm_8d071 ld a, [$c3bc] ld b, a ld a, [$c3be] add b ld b, a ld a, [$c3bf] add b ld b, a call Function8d0be add b ld [de], a inc hl inc de ld a, [$c3bb] ld b, a ld a, [$c3bd] add b ld b, a ld a, [$c3c0] add b ld b, a call Function8d0ce add b ld [de], a inc hl inc de ld a, [$c3ba] add [hl] ld [de], a inc hl inc de call Function8d0de ld [de], a inc hl inc de ld a, e ld [$c3b5], a cp $a0 jr nc, .asm_8d0bb dec c jr nz, .asm_8d071 pop bc jr .asm_8d0b9 .asm_8d0b6 call Function8d036 .asm_8d0b9 and a ret .asm_8d0bb pop bc scf ret ; 8d0be Function8d0be: ; 8d0be push hl ld a, [hl] ld hl, $c3b8 bit 6, [hl] jr z, .asm_8d0cc add $8 xor $ff inc a .asm_8d0cc pop hl ret ; 8d0ce Function8d0ce: ; 8d0ce push hl ld a, [hl] ld hl, $c3b8 bit 5, [hl] jr z, .asm_8d0dc add $8 xor $ff inc a .asm_8d0dc pop hl ret ; 8d0de Function8d0de: ; 8d0de ld a, [$c3b8] ld b, a ld a, [hl] xor b and $e0 ld b, a ld a, [hl] and $1f or b ret ; 8d0ec Function8d0ec: ; 8d0ec xor a ld [$c3b8], a ld hl, $0003 add hl, bc ld a, [hli] ld [$c3ba], a ld a, [hli] ld [$c3bb], a ld a, [hli] ld [$c3bc], a ld a, [hli] ld [$c3bd], a ld a, [hli] ld [$c3be], a ret ; 8d109 Function8d109: ; 8d109 push hl push bc ld hl, $c300 ld b, a ld c, $a .asm_8d111 ld a, [hli] cp b jr z, .asm_8d11c inc hl dec c jr nz, .asm_8d111 xor a jr .asm_8d11d .asm_8d11c ld a, [hl] .asm_8d11d pop bc pop hl ret ; 8d120 Function8d120:: ; 8d120 ld hl, $0001 add hl, bc ld [hl], a ld hl, $0008 add hl, bc ld [hl], $0 ld hl, $000a add hl, bc ld [hl], $ff ret ; 8d132 Function8d132: ; 8d132 .asm_8d132 ld hl, $0008 add hl, bc ld a, [hl] and a jr z, .asm_8d142 dec [hl] call Function8d189 ld a, [hli] push af jr .asm_8d163 .asm_8d142 ld hl, $000a add hl, bc inc [hl] call Function8d189 ld a, [hli] cp $fe jr z, .asm_8d17b cp $ff jr z, .asm_8d16d push af ld a, [hl] push hl and $3f ld hl, $0009 add hl, bc add [hl] ld hl, $0008 add hl, bc ld [hl], a pop hl .asm_8d163 ld a, [hl] and $c0 srl a ld [$c3b8], a pop af ret .asm_8d16d xor a ld hl, $0008 add hl, bc ld [hl], a ld hl, $000a add hl, bc dec [hl] dec [hl] jr .asm_8d132 .asm_8d17b xor a ld hl, $0008 add hl, bc ld [hl], a dec a ld hl, $000a add hl, bc ld [hl], a jr .asm_8d132 ; 8d189 Function8d189: ; 8d189 ld hl, $0001 add hl, bc ld e, [hl] ld d, $0 ld hl, $56e6 add hl, de add hl, de ld e, [hl] inc hl ld d, [hl] ld hl, $000a add hl, bc ld l, [hl] ld h, $0 add hl, hl add hl, de ret ; 8d1a2 Function8d1a2: ; 8d1a2 ld e, a ld d, $0 ld hl, $594d add hl, de add hl, de add hl, de ret ; 8d1ac INCBIN "baserom.gbc",$8d1ac,$8d24b - $8d1ac Function8d24b: ; 8d24b ld hl, $0002 add hl, bc ld e, [hl] ld d, $0 ld hl, Jumptable_8d25b add hl, de add hl, de ld a, [hli] ld h, [hl] ld l, a jp [hl] ; 8d25b ; no known jump sources Jumptable_8d25b: ; 8d25b (23:525b) dw Function8d2a1 dw Function8d2a2 dw Function8d2b9 dw Function8d2ea dw Function8d302 dw Function8d36c dw Function8d37a dw Function8d381 dw Function8d3c3 dw Function8d422 dw Function8d429 dw Function8d43e dw Function8d373 dw Function8d46e dw Function8d47c dw Function8d475 dw Function8d483 dw Function8d52a dw Function8d543 dw Function8d54a dw Function8d578 dw Function8d57f dw Function8d5b0 dw Function8d5e2 dw Function8d607 dw Function8d35a dw Function8d6b7 dw Function8d630 dw Function8d637 dw Function8d63e dw Function8d666 dw Function8d6be dw Function8d680 dw Function8d6a2 dw Function8d6ae ; no known jump sources Function8d2a1: ; 8d2a1 (23:52a1) ret ; no known jump sources Function8d2a2: ; 8d2a2 (23:52a2) ld a, [$cfa9] ld hl, $0 add hl, bc cp [hl] jr z, Function8d2b9 ld hl, $4 add hl, bc ld [hl], $10 ld hl, $7 add hl, bc ld [hl], $0 ret ; known jump sources: 8d2aa (23:52aa) Function8d2b9: ; 8d2b9 (23:52b9) ld hl, $4 add hl, bc ld [hl], $18 ld hl, $c add hl, bc ld a, [hl] ld d, a inc [hl] and $f ret nz ld hl, $d add hl, bc ld e, [hl] ld hl, $7 add hl, bc ld a, d and $10 jr z, .asm_8d2df ld a, e and a jr z, .asm_8d2e6 cp $1 jr z, .asm_8d2e2 .asm_8d2df xor a ld [hl], a ret .asm_8d2e2 ld a, $ff ld [hl], a ret .asm_8d2e6 ld a, $fe ld [hl], a ret ; no known jump sources Function8d2ea: ; 8d2ea (23:52ea) ld a, [$cfa9] ld hl, $0 add hl, bc cp [hl] jr z, .asm_8d2fb ld hl, $4 add hl, bc ld [hl], $10 ret .asm_8d2fb ld hl, $4 add hl, bc ld [hl], $18 ret ; no known jump sources Function8d302: ; 8d302 (23:5302) call Function8d6c5 jp [hl] ; 8d306 (23:5306) ; Anonymous jumptable (see Function8d6c5) dw Function8d30a dw Function8d321 ; 8d30a Function8d30a: ; 8d30a call Function8d6d8 ld hl, $0000 add hl, bc ld a, [hl] ld hl, $000d add hl, bc and $3 ld [hl], a inc [hl] swap a ld hl, $000c add hl, bc ld [hl], a Function8d321: ; 8d321 ld hl, $0004 add hl, bc ld a, [hl] cp $a4 jr nc, .asm_8d356 ld hl, $000d add hl, bc add $4 ld hl, $0004 add hl, bc ld [hl], a ld hl, $0005 add hl, bc inc [hl] ld hl, $000d add hl, bc ld a, [hl] sla a sla a ld d, $2 ld hl, $000c add hl, bc ld a, [hl] add $3 ld [hl], a call Function8d6de ld hl, $0007 add hl, bc ld [hl], a ret .asm_8d356 call Function8d036 ret ; 8d35a ; no known jump sources Function8d35a: ; 8d35a (23:535a) ld hl, $c add hl, bc ld a, [hl] inc a ld [hl], a ld d, $2 call Function8d6de ld hl, $7 add hl, bc ld [hl], a ret ; no known jump sources Function8d36c: ; 8d36c (23:536c) callab Function11a3b ret ; no known jump sources Function8d373: ; 8d373 (23:5373) callab Function120c1 ret ; no known jump sources Function8d37a: ; 8d37a (23:537a) callab Functione46ed ret ; no known jump sources Function8d381: ; 8d381 (23:5381) ld hl, $c add hl, bc ld a, [hl] and a jr z, .asm_8d3ba dec [hl] dec [hl] ld d, a and $1f jr nz, .asm_8d395 ld hl, $d add hl, bc dec [hl] .asm_8d395 ld hl, $b add hl, bc ld a, [hl] push af push de call Function8d6de ld hl, $7 add hl, bc ld [hl], a pop de pop af call Function8d6e2 ld hl, $6 add hl, bc ld [hl], a ld hl, $d add hl, bc ld a, [hl] ld hl, $b add hl, bc add [hl] ld [hl], a ret .asm_8d3ba ld a, $1 ld [$cf64], a call Function8d036 ret ; no known jump sources Function8d3c3: ; 8d3c3 (23:53c3) ld hl, $c add hl, bc ld a, [hli] or [hl] jr z, .asm_8d41e ld hl, $f add hl, bc ld d, [hl] ld hl, $b add hl, bc ld a, [hl] push af push de call Function8d6de ld hl, $7 add hl, bc ld [hl], a pop de pop af call Function8d6e2 ld hl, $6 add hl, bc ld [hl], a ld hl, $c add hl, bc ld e, [hl] inc hl ld d, [hl] ld hl, $e add hl, bc ld a, [hli] ld h, [hl] ld l, a add hl, de ld e, l ld d, h ld hl, $e add hl, bc ld [hl], e inc hl ld [hl], d ld hl, $c add hl, bc ld a, [hli] ld h, [hl] ld l, a ld de, $fff0 add hl, de ld e, l ld d, h ld hl, $c add hl, bc ld [hl], e inc hl ld [hl], d ld hl, $b add hl, bc ld a, [hl] xor $20 ld [hl], a ret .asm_8d41e call Function8d036 ret ; no known jump sources Function8d422: ; 8d422 (23:5422) callab Function9321d ret ; no known jump sources Function8d429: ; 8d429 (23:5429) callab Function932ac ld hl, $cf64 ld a, [hl] cp $2 ret nz ld [hl], $3 ld a, $f call Function8d120 ret ; no known jump sources Function8d43e: ; 8d43e (23:543e) ld hl, $b add hl, bc ld a, [hl] dec [hl] ld e, a and $1 jr z, .asm_8d462 ld hl, $4 add hl, bc ld a, [hl] cp $78 jr c, .asm_8d461 call Function8d036 ld a, $4 ld [$cf64], a ld de, SFX_PLACE_PUZZLE_PIECE_DOWN call PlaySFX ret .asm_8d461 inc [hl] .asm_8d462 ld a, e ld d, $20 call Function8d6de ld hl, $7 add hl, bc ld [hl], a ret ; no known jump sources Function8d46e: ; 8d46e (23:546e) callab Functione00ed ret ; no known jump sources Function8d475: ; 8d475 (23:5475) callab Function90d41 ret ; no known jump sources Function8d47c: ; 8d47c (23:547c) callab Functione21a1 ret ; no known jump sources Function8d483: ; 8d483 (23:5483) call Function8d6c5 jp [hl] ; 8d487 (23:5487) ; Anonymous jumptable (see Function8d6c5) dw Function8d493 dw Function8d4d5 dw Function8d4a5 dw Function8d4b8 dw Function8d4e8 dw Function8d526 ; 8d493 Function8d493: ; 8d493 ld a, $14 call Function8d120 ld hl, $000b add hl, bc ld [hl], $2 ld hl, $000c add hl, bc ld [hl], $20 ret ; 8d4a5 Function8d4a5: ; 8d4a5 ld hl, $000c add hl, bc ld a, [hl] and a jr z, .asm_8d4af dec [hl] ret .asm_8d4af call Function8d6d8 ld hl, $000c add hl, bc ld [hl], $40 Function8d4b8: ; 8d4b8 ld hl, $000c add hl, bc ld a, [hl] cp $30 jr c, .asm_8d4cd dec [hl] ld d, $28 call Function8d6de ld hl, $0007 add hl, bc ld [hl], a ret .asm_8d4cd ld de, SFX_GOT_SAFARI_BALLS call PlaySFX jr Function8d526 ; 8d4d5 Function8d4d5: ; 8d4d5 ld hl, $000b add hl, bc ld [hl], $4 ld hl, $000c add hl, bc ld [hl], $30 ld hl, $000d add hl, bc ld [hl], $24 ret ; 8d4e8 Function8d4e8: ; 8d4e8 ld hl, $000d add hl, bc ld a, [hl] and a jr z, .asm_8d51c ld d, a ld hl, $000c add hl, bc ld a, [hl] call Function8e72c ld hl, $0007 add hl, bc ld [hl], a ld hl, $000c add hl, bc inc [hl] ld a, [hl] and $3f ret nz ld hl, $000c add hl, bc ld [hl], $20 ld hl, $000d add hl, bc ld a, [hl] sub $c ld [hl], a ld de, SFX_SWITCH_POKEMON call PlaySFX ret .asm_8d51c xor a ld hl, $0007 add hl, bc ld [hl], a call Function8d6d8 ret Function8d526: ; 8d526 call Function8d036 ret ; 8d52a ; no known jump sources Function8d52a: ; 8d52a (23:552a) ld hl, $4 add hl, bc ld a, [hl] inc [hl] inc [hl] cp $b0 jr nc, .asm_8d53f and $3 ret nz ld de, SFX_POKEBALLS_PLACED_ON_TABLE call PlaySFX ret .asm_8d53f call Function8d036 ret ; no known jump sources Function8d543: ; 8d543 (23:5543) callab Function29676 ret ; no known jump sources Function8d54a: ; 8d54a (23:554a) ld hl, $c add hl, bc ld a, [hl] cp $80 jr nc, .asm_8d574 ld d, a add $8 ld [hl], a ld hl, $b add hl, bc ld a, [hl] xor $20 ld [hl], a push af push de call Function8d6de ld hl, $7 add hl, bc ld [hl], a pop de pop af call Function8d6e2 ld hl, $6 add hl, bc ld [hl], a ret .asm_8d574 call Function8d036 ret ; no known jump sources Function8d578: ; 8d578 (23:5578) callab Function91640 ret ; no known jump sources Function8d57f: ; 8d57f (23:557f) ld hl, $d add hl, bc ld e, [hl] inc hl ld d, [hl] ld hl, $80 add hl, de ld e, l ld d, h ld hl, $d add hl, bc ld [hl], e inc hl ld [hl], d ld hl, $c add hl, bc ld a, [hl] inc [hl] inc [hl] inc [hl] push af push de call Function8d6de ld hl, $7 add hl, bc ld [hl], a pop de pop af call Function8d6e2 ld hl, $6 add hl, bc ld [hl], a ret ; no known jump sources Function8d5b0: ; 8d5b0 (23:55b0) ld hl, $5 add hl, bc ld a, [hl] and a ret z ld hl, $d add hl, bc ld a, [hl] inc [hl] cp $40 ret c ld hl, $5 add hl, bc dec [hl] dec [hl] ld hl, $f add hl, bc ld a, [hl] ld d, a cp $40 jr nc, .asm_8d5d3 add $8 ld [hl], a .asm_8d5d3 ld hl, $e add hl, bc ld a, [hl] inc [hl] call Function8d6e2 ld hl, $6 add hl, bc ld [hl], a ret ; no known jump sources Function8d5e2: ; 8d5e2 (23:55e2) ld hl, $4 add hl, bc ld a, [hl] cp $b8 jr nc, .asm_8d603 inc [hl] inc [hl] ld hl, $5 add hl, bc dec [hl] ld d, $40 ld hl, $c add hl, bc ld a, [hl] inc [hl] call Function8d6e2 ld hl, $6 add hl, bc ld [hl], a ret .asm_8d603 call Function8d036 ret ; no known jump sources Function8d607: ; 8d607 (23:5607) ld hl, $5 add hl, bc ld a, [hl] cp $54 ret z ld hl, $5 add hl, bc inc [hl] inc [hl] ld hl, $f add hl, bc ld a, [hl] ld d, a and a jr z, .asm_8d621 sub $2 ld [hl], a .asm_8d621 ld hl, $e add hl, bc ld a, [hl] inc [hl] call Function8d6e2 ld hl, $6 add hl, bc ld [hl], a ret ; no known jump sources Function8d630: ; 8d630 (23:5630) callba Function108bc7 ret ; no known jump sources Function8d637: ; 8d637 (23:5637) callba Function108be0 ret ; no known jump sources Function8d63e: ; 8d63e (23:563e) ld a, [$cf65] and a jr nz, .asm_8d645 ret .asm_8d645 ld hl, $7 add hl, bc ld [hl], $0 ld hl, $d add hl, bc ld a, [hl] add $2 ld [hl], a xor $ff inc a ld d, $20 call Function8d6de ld hl, $7 add hl, bc ld [hl], a ld a, $36 call Function8d120 ret ; no known jump sources Function8d666: ; 8d666 (23:5666) ld hl, $c add hl, bc ld a, [hl] cp $14 jr nc, .asm_8d67f add $2 ld [hl], a xor $ff inc a ld d, $20 call Function8d6de ld hl, $7 add hl, bc ld [hl], a .asm_8d67f ret ; no known jump sources Function8d680: ; 8d680 (23:5680) ld hl, $b add hl, bc ld d, [hl] inc [hl] inc [hl] inc [hl] ld hl, $c add hl, bc ld a, [hl] push af push de call Function8d6de ld hl, $7 add hl, bc ld [hl], a pop de pop af call Function8d6e2 ld hl, $6 add hl, bc ld [hl], a ret ; no known jump sources Function8d6a2: ; 8d6a2 (23:56a2) ld a, [$cf64] cp $40 ret nz ld a, $3d call Function8d120 ret ; no known jump sources Function8d6ae: ; 8d6ae (23:56ae) ld hl, $5 add hl, bc ld a, [hl] add $10 ld [hl], a ret ; no known jump sources Function8d6b7: ; 8d6b7 (23:56b7) callba Function11d0b6 ret ; no known jump sources Function8d6be: ; 8d6be (23:56be) callba Function49aa2 ret ; known jump sources: 8d302 (23:5302), 8d483 (23:5483) Function8d6c5: ; 8d6c5 (23:56c5) ld hl, [sp+$0] ld e, [hl] inc hl ld d, [hl] inc de ld hl, $b add hl, bc ld l, [hl] ld h, $0 add hl, hl add hl, de ld a, [hli] ld h, [hl] ld l, a ret ; 8d6d8 (23:56d8) Function8d6d8: ; 8d6d8 ld hl, $000b add hl, bc inc [hl] ret ; 8d6de ; known jump sources: 8d363 (23:5363), 8d39c (23:539c), 8d3d7 (23:53d7), 8d465 (23:5465), 8d561 (23:5561), 8d59d (23:559d), 8d658 (23:5658), 8d677 (23:5677), 8d68f (23:568f) Function8d6de: ; 8d6de (23:56de) call Function8e72c ret ; known jump sources: 8d3a6 (23:53a6), 8d3e1 (23:53e1), 8d56b (23:556b), 8d5a7 (23:55a7), 8d5d9 (23:55d9), 8d5fa (23:55fa), 8d627 (23:5627), 8d699 (23:5699) Function8d6e2: ; 8d6e2 (23:56e2) call Function8e72a ret ; 8d6e6 (23:56e6) INCBIN "baserom.gbc",$8d6e6,$8e72a - $8d6e6 Function8e72a: ; 8e72a add $10 Function8e72c: ; 8e72c and $3f cp $20 jr nc, .asm_8e737 call Function8e741 ld a, h ret .asm_8e737 and $1f call Function8e741 ld a, h xor $ff inc a ret ; 8e741 Function8e741: ; 8e741 ld e, a ld a, d ld d, $0 ld hl, $675d add hl, de add hl, de ld e, [hl] inc hl ld d, [hl] ld hl, $0000 .asm_8e750 srl a jr nc, .asm_8e755 add hl, de .asm_8e755 sla e rl d and a jr nz, .asm_8e750 ret ; 8e75d INCBIN "baserom.gbc",$8e75d,$8e79d - $8e75d Function8e79d: ; 8e79d ld a, [hSGB] ld de, $67f4 and a jr z, .asm_8e7a8 ld de, $6804 .asm_8e7a8 ld hl, VTiles0 ld bc, $2301 call Request2bpp ld c, $8 ld d, $0 .asm_8e7b5 push bc call Function8e7c6 call DelayFrame pop bc inc d inc d dec c jr nz, .asm_8e7b5 call ClearSprites ret ; 8e7c6 Function8e7c6: ; 8e7c6 ld hl, Sprites ld c, $8 .asm_8e7cb ld a, c and a ret z dec c ld a, c sla a sla a sla a push af push de push hl call Function8e72c pop hl pop de add $68 ld [hli], a pop af push de push hl call Function8e72a pop hl pop de add $54 ld [hli], a ld a, $0 ld [hli], a ld a, $6 ld [hli], a jr .asm_8e7cb ; 8e7f4 INCBIN "baserom.gbc",$8e7f4,$8e814 - $8e7f4 Function8e814: ; 8e814 push hl push de push bc push af ld hl, $c300 ld bc, $00c1 .asm_8e81e ld [hl], $0 inc hl dec bc ld a, c or b jr nz, .asm_8e81e pop af pop bc pop de pop hl ret ; 8e82b Function8e82b: ; 8e82b ld a, e call ReadMonMenuIcon ld l, a ld h, $0 add hl, hl ld de, IconPointers add hl, de ld a, [hli] ld e, a ld d, [hl] ld b, $23 ld c, $8 ret ; 8e83f Function8e83f: ; 8e83f push hl push de push bc call Function8e849 pop bc pop de pop hl ret ; 8e849 Function8e849: ; 8e849 ld d, 0 ld hl, Jumptable_8e854 add hl, de add hl, de ld a, [hli] ld h, [hl] ld l, a jp [hl] ; 8e854 ; no known jump sources Jumptable_8e854: ; 8e854 (23:6854) dw Function8e8d5 dw Function8e961 dw Function8e97d dw Function8e99a dw Function8e898 dw Function8e8b1 dw Function8e862 ; no known jump sources Function8e862: ; 8e862 (23:6862) call Function8e908 call Function8e86c call Function8e936 ret ; known jump sources: 8e865 (23:6865) Function8e86c: ; 8e86c (23:686c) push bc ld a, [hConnectedMapWidth] ; $ff00+$b0 ld hl, PartyMon1Item ; $dce0 ld bc, $30 call AddNTimes pop bc ld a, [hl] and a jr z, .asm_8e890 push hl push bc ld d, a callab ItemIsMail pop bc pop hl jr c, .asm_8e88e ld a, $6 jr .asm_8e892 .asm_8e88e ld a, $5 .asm_8e890 ld a, $4 .asm_8e892 ld hl, $1 add hl, bc ld [hl], a ret ; no known jump sources Function8e898: ; 8e898 (23:6898) call Function8e8d5 ld hl, $2 add hl, bc ld a, $0 ld [hl], a ld hl, $4 add hl, bc ld a, $48 ld [hl], a ld hl, $5 add hl, bc ld a, $48 ld [hl], a ret ; no known jump sources Function8e8b1: ; 8e8b1 (23:68b1) call Function8e908 call Function8e936 ld hl, $2 add hl, bc ld a, $0 ld [hl], a ld hl, $4 add hl, bc ld a, $18 ld [hl], a ld hl, $5 add hl, bc ld a, $60 ld [hl], a ld a, c ld [EnemyMoveAnimation], a ; $c608 (aliases: EnemyMoveStruct) ld a, b ld [EnemyMoveEffect], a ; $c609 ret ; known jump sources: 8e898 (23:6898) Function8e8d5: ; 8e8d5 (23:68d5) call Function8e908 call Function8e8df call Function8e936 ret ; known jump sources: 8e8d8 (23:68d8) Function8e8df: ; 8e8df (23:68df) push bc ld a, [hConnectedMapWidth] ; $ff00+$b0 ld hl, PartyMon1Item ; $dce0 ld bc, $30 call AddNTimes pop bc ld a, [hl] and a ret z push hl push bc ld d, a callab ItemIsMail pop bc pop hl jr c, .asm_8e900 ld a, $3 jr .asm_8e902 .asm_8e900 ld a, $2 .asm_8e902 ld hl, $1 add hl, bc ld [hl], a ret ; known jump sources: 8e862 (23:6862), 8e8b1 (23:68b1), 8e8d5 (23:68d5) Function8e908: ; 8e908 (23:6908) ld a, [$c3b7] push af ld a, [hConnectedMapWidth] ; $ff00+$b0 ld hl, PartySpecies ; $dcd8 ld e, a ld d, $0 add hl, de ld a, [hl] call ReadMonMenuIcon ld [CurIcon], a ; $c3b6 call Function8e9db ld a, [hConnectedMapWidth] ; $ff00+$b0 add a add a add a add a add $1c ld d, a ld e, $10 ld a, $0 call Function8cfd6 pop af ld hl, $3 add hl, bc ld [hl], a ret ; known jump sources: 8e868 (23:6868), 8e8b4 (23:68b4), 8e8db (23:68db) Function8e936: ; 8e936 (23:6936) push bc ld a, [hConnectedMapWidth] ; $ff00+$b0 ld b, a call Function8e94c ld a, b pop bc ld hl, $9 add hl, bc ld [hl], a rlca rlca ld hl, $d add hl, bc ld [hl], a ret ; known jump sources: 8e93a (23:693a) Function8e94c: ; 8e94c (23:694c) callba Function50117 call GetHPPal ld e, d ld d, 0 ld hl, Unknown_8e95e add hl, de ld b, [hl] ret ; 8e95e (23:695e) Unknown_8e95e: ; 8e95e db $00, $40, $80 ; 8e961 ; no known jump sources Function8e961: ; 8e961 (23:6961) ld a, [$d265] call ReadMonMenuIcon ld [CurIcon], a ; $c3b6 xor a call GetIconGFX ld de, $2420 ld a, $0 call Function8cfd6 ld hl, $2 add hl, bc ld [hl], $0 ret ; no known jump sources Function8e97d: ; 8e97d (23:697d) ld a, [$d265] call ReadMonMenuIcon ld [CurIcon], a ; $c3b6 xor a call GetIconGFX ld d, $1a ld e, $24 ld a, $0 call Function8cfd6 ld hl, $2 add hl, bc ld [hl], $0 ret ; no known jump sources Function8e99a: ; 8e99a (23:699a) ld a, [$d265] call ReadMonMenuIcon ld [CurIcon], a ; $c3b6 ld a, $62 ld [$c3b7], a call Function8e9db ret GetSpeciesIcon: ; 8e9ac ; Load species icon into VRAM at tile a push de ld a, [$d265] call ReadMonMenuIcon ld [CurIcon], a pop de ld a, e call GetIconGFX ret ; 8e9bc ; no known jump sources Function8e9bc: ; 8e9bc (23:69bc) push de ld a, [$d265] call ReadMonMenuIcon ld [CurIcon], a ; $c3b6 pop de ld a, e call GetIcon_a ret ; 8e9cc (23:69cc) INCBIN "baserom.gbc",$8e9cc,$8e9db - $8e9cc ; known jump sources: 8e91c (23:691c), 8e9a8 (23:69a8) Function8e9db: ; 8e9db (23:69db) ld a, [$c3b7] GetIconGFX: ; 8e9de call GetIcon_a ld de, $80 ; 8 tiles add hl, de ld de, HeldItemIcons ld bc, $2302 call GetGFXUnlessMobile ld a, [$c3b7] add 10 ld [$c3b7], a ret HeldItemIcons: INCBIN "gfx/icon/mail.2bpp" INCBIN "gfx/icon/item.2bpp" ; 8ea17 GetIcon_de: ; 8ea17 ; Load icon graphics into VRAM starting from tile de ld l, e ld h, d jr GetIcon GetIcon_a: ; 8ea1b ; Load icon graphics into VRAM starting from tile a ld l, a ld h, 0 GetIcon: ; 8ea1e ; Load icon graphics into VRAM starting from tile hl ; One tile is 16 bytes long add hl, hl add hl, hl add hl, hl add hl, hl ld de, VTiles0 add hl, de push hl ; Reading the icon pointer table would only make sense if they were ; scattered. However, the icons are contiguous and in-order. ld a, [CurIcon] push hl ld l, a ld h, 0 add hl, hl ld de, IconPointers add hl, de ld a, [hli] ld e, a ld d, [hl] pop hl ld bc, $2308 call GetGFXUnlessMobile pop hl ret ; 8ea3f GetGFXUnlessMobile: ; 8ea3f ld a, [InLinkBattle] cp 4 ; Mobile Link Battle jp nz, Request2bpp jp Functiondc9 ; 8ea4a Function8ea4a: ; 8ea4a ld hl, $c314 ld e, $6 ld a, [$cfa9] ld d, a .asm_8ea53 ld a, [hl] and a jr z, .asm_8ea69 cp d jr z, .asm_8ea5e ld a, $0 jr .asm_8ea60 .asm_8ea5e ld a, $2 .asm_8ea60 push hl ld c, l ld b, h ld hl, $0002 add hl, bc ld [hl], a pop hl .asm_8ea69 ld bc, $0010 add hl, bc dec e jr nz, .asm_8ea53 ret ; 8ea71 Function8ea71: ; 8ea71 ld hl, $c314 ld e, $6 .asm_8ea76 ld a, [hl] and a jr z, .asm_8ea84 push hl ld c, l ld b, h ld hl, $2 add hl, bc ld [hl], $1 pop hl .asm_8ea84 ld bc, $10 add hl, bc dec e jr nz, .asm_8ea76 ret ; 8ea8c (23:6a8c) Function8ea8c: ; 8ea8c ld hl, $c314 ld e, $6 ld a, [$d0e3] ld d, a .asm_8ea95 ld a, [hl] and a jr z, .asm_8eaab cp d jr z, .asm_8eaa0 ld a, $3 jr .asm_8eaa2 .asm_8eaa0 ld a, $2 .asm_8eaa2 push hl ld c, l ld b, h ld hl, $2 add hl, bc ld [hl], a pop hl .asm_8eaab ld bc, $10 add hl, bc dec e jr nz, .asm_8ea95 ret INCLUDE "menu/mon_icons.asm" SECTION "bank24", ROMX, BANK[$24] Function90000:: ; 90000 call Function9001c jr c, .asm_9000d call Function9002d jr nc, .asm_9000d ld [hl], c xor a ret .asm_9000d scf ret ; 9000f Function9000f:: ; 9000f call Function9001c jr nc, .asm_90017 xor a ld [hl], a ret .asm_90017 scf ret ; 90019 Function90019:: ; 90019 jp Function9001c ; 9001c Function9001c: ; 9001c ld hl, $dc7c ld b, $a .asm_90021 ld a, [hli] cp c jr z, .asm_9002a dec b jr nz, .asm_90021 xor a ret .asm_9002a dec hl scf ret ; 9002d Function9002d: ; 9002d call Function90040 ld b, a ld hl, $dc7c .asm_90034 ld a, [hli] and a jr z, .asm_9003d dec b jr nz, .asm_90034 xor a ret .asm_9003d dec hl scf ret ; 90040 Function90040: ; 90040 xor a ld [Buffer1], a ld hl, Unknown_90066 .asm_90047 ld a, [hli] cp $ff jr z, .asm_9005f cp c jr z, .asm_9005d push bc push hl ld c, a call Function9001c jr c, .asm_9005b ld hl, Buffer1 inc [hl] .asm_9005b pop hl pop bc .asm_9005d jr .asm_90047 .asm_9005f ld a, $a ld hl, Buffer1 sub [hl] ret ; 90066 Unknown_90066: ; 90066 db 1, 4, $ff ; 90069 Function90069: ; 90069 ld a, [hROMBank] push af ld a, b rst Bankswitch call PlaceString pop af rst Bankswitch ret ; 90074 ; no known jump sources Function90074:: ; 90074 (24:4074) call CheckStandingOnEntrance jr z, .asm_900a4 call Function900a6 nop jr nc, .asm_900a4 call Random ld b, a and $7f cp b jr nz, .asm_900a4 call Function2d05 and a jr nz, .asm_900a4 call Function900de call Function900bf jr nc, .asm_900a4 ld e, a call Function9020d ld a, $24 ld hl, $4241 call CallScript scf ret .asm_900a4 xor a ret ; known jump sources: 90079 (24:4079) Function900a6: ; 900a6 (24:40a6) callba Function11401 ret ; known jump sources: 901b9 (24:41b9) Function900ad: ; 900ad (24:40ad) push hl push bc push de push af callba Functionc000 pop af and $7 and c pop de pop bc pop hl ret ; known jump sources: 90091 (24:4091) Function900bf: ; 900bf (24:40bf) ld a, [MartPointer] ; $d040 (aliases: Unkn2Pals) and a jr z, .asm_900dc ld c, a call Random ld a, [hRandomAdd] ; $ff00+$e1 swap a and $1f call SimpleDivide ld c, a ld b, $0 ld hl, $d041 add hl, bc ld a, [hl] scf ret .asm_900dc xor a ret ; known jump sources: 9008e (24:408e) Function900de: ; 900de (24:40de) callba Functionc000 ld a, c ld [EngineBuffer1], a ; $d03e (aliases: MenuItemsList, CurFruitTree, CurInput) ld hl, MartPointer ; $d040 (aliases: Unkn2Pals) ld bc, $b xor a call ByteFill ld de, $dc7c ld a, $a .asm_900f7 ld [CurFruit], a ; $d03f ld a, [de] and a jr z, .asm_9012e ld hl, $4467 ld bc, $c call AddNTimes ld a, [EngineBuffer1] ; $d03e (aliases: MenuItemsList, CurFruitTree, CurInput) and [hl] jr z, .asm_9012e ld bc, $fffa add hl, bc ld a, [MapGroup] ; $dcb5 cp [hl] jr nz, .asm_9011e inc hl ld a, [MapNumber] ; $dcb6 cp [hl] jr z, .asm_9012e .asm_9011e ld a, [MartPointer] ; $d040 (aliases: Unkn2Pals) ld c, a ld b, $0 inc a ld [MartPointer], a ; $d040 (aliases: Unkn2Pals) ld hl, $d041 add hl, bc ld a, [de] ld [hl], a .asm_9012e inc de ld a, [CurFruit] ; $d03f dec a jr nz, .asm_900f7 ret ; no known jump sources Function90136:: ; 90136 (24:4136) ld a, [$dc31] and a jr z, .asm_90171 dec a ld c, a ld b, $0 ld hl, $4627 ld a, $6 call AddNTimes ld a, [hli] ld h, [hl] ld l, a call _hl_ jr nc, .asm_90171 call Function90178 inc hl inc hl ld a, [hli] ld e, a push hl call Function9020d pop hl ld de, $d048 ld a, [hli] ld [de], a inc de ld a, [hli] ld [de], a inc de ld a, [hli] ld [de], a ld a, BANK(UnknownScript_0x90173) ld hl, UnknownScript_0x90173 call CallScript scf ret .asm_90171 xor a ret ; 90173 (24:4173) UnknownScript_0x90173: ; 0x90173 pause 30 2jump UnknownScript_0x90241 ; 0x90178 ; known jump sources: 90150 (24:4150) Function90178: ; 90178 (24:4178) ld a, [$dc31] dec a ld c, a ld b, $0 ld hl, $4627 ld a, $6 call AddNTimes ret ld a, [$d19a] cp $1 jr z, .asm_90195 cp $2 jr z, .asm_90195 xor a ret .asm_90195 scf ret scf ret ; known jump sources: 9121b (24:521b) Function90199: ; 90199 (24:4199) ld a, [InLinkBattle] ; $c2dc and a jr nz, .asm_901e7 call Function2d05 and a jr nz, .asm_901e7 ld a, b ld [$dbf9], a ld hl, $445f ld bc, $c call AddNTimes ld d, h ld e, l ld hl, $4 add hl, de ld a, [hl] call Function900ad jr z, .asm_901e7 ld hl, $2 add hl, de ld a, [MapGroup] ; $dcb5 cp [hl] jr nz, .asm_901d9 ld hl, $3 add hl, de ld a, [MapNumber] ; $dcb6 cp [hl] jr nz, .asm_901d9 ld b, $24 ld hl, $4660 jr .asm_901f0 .asm_901d9 ld hl, $5 add hl, de ld b, [hl] ld hl, $6 add hl, de ld a, [hli] ld h, [hl] ld l, a jr .asm_901f0 .asm_901e7 ld b, $24 ld de, $4209 call Function2674 ret .asm_901f0 ld a, b ld [DefaultFlypoint], a ; $d002 ld a, l ld [$d003], a ld a, h ld [$d004], a ld b, $24 ld de, $4205 call Function2674 ret ; 90205 (24:4205) INCBIN "baserom.gbc",$90205,$9020d - $90205 ; known jump sources: 90097 (24:4097), 90158 (24:4158) Function9020d: ; 9020d (24:420d) nop nop ld a, e ld [$dbf9], a and a jr nz, .asm_9021d ld a, $24 ld hl, $4233 jr .asm_90229 .asm_9021d ld hl, $445f ld bc, $c ld a, e call AddNTimes ld a, $24 .asm_90229 ld de, CurFruit ; $d03f ld bc, $c call FarCopyBytes ret ; 90233 (24:4233) INCBIN "baserom.gbc",$90233,$90241 - $90233 UnknownScript_0x90241: ; 0x90241 refreshscreen $0 3callasm Function9026f 2ptcall $d048 closetext 3callasm Function902eb loadmovesprites 3callasm Function113e5 end ; 0x90255 INCBIN "baserom.gbc",$90255,$9026f - $90255 Function9026f: ; 9026f call Function9027c call Function9027c callba Function1060d3 ret ; 9027c ; known jump sources: 9026f (24:426f), 90272 (24:4272) Function9027c: ; 9027c (24:427c) call Function9033f call Function90357 call Function90292 call Function90357 call Function90375 call Function90357 call Function90292 ret ; known jump sources: 90282 (24:4282), 9028e (24:428e) Function90292: ; 90292 (24:4292) ld a, [$dbf9] ld b, a call Function90363 ret Function9029a:: ; 9029a ld a, b ld [DefaultFlypoint], a ld a, e ld [$d003], a ld a, d ld [$d004], a call Function902b3 call Function902b3 callba Function1060d3 ret ; 902b3 Function902b3: ; 902b3 call Function9033f call Function90357 call Function902c9 call Function90357 call Function90375 call Function90357 call Function902c9 ret ; 902c9 Function902c9: ; 902c9 call Function90375 ld hl, $c4c9 ld [hl], $62 inc hl inc hl ld a, [DefaultFlypoint] ld b, a ld a, [$d003] ld e, a ld a, [$d004] ld d, a call Function90069 ret ; 902e3 ; no known jump sources Function902e3: ; 902e3 (24:42e3) ld de, SFX_NO_SIGNAL call PlaySFX jr Function902f1 Function902eb:: ; 902eb call Function9031d call Function90355 Function902f1: call Function9032f call Function90355 call Function9033b call Function90355 call Function9032f call Function90355 call Function9033b call Function90355 call Function9032f call Function90355 call Function9033b call Function90355 ret ; 90316 INCBIN "baserom.gbc",$90316,$9031d - $90316 Function9031d: ; 9031d ld hl, UnknownText_0x9032a call PrintText ld de, SFX_HANG_UP call PlaySFX ret ; 9032a UnknownText_0x9032a: ; 9032a text_jump UnknownText_0x1c5580 db "@" ; 9032f Function9032f: ; 9032f ld hl, UnknownText_0x90336 call PrintText ret ; 90336 UnknownText_0x90336: ; 0x90336 text_jump UnknownText_0x1c5588 db "@" ; 0x9033b Function9033b: ; 9033b call SpeechTextBox ret ; 9033f Function9033f: ; 9033f call WaitSFX ld de, SFX_CALL call PlaySFX call Function90375 call Function1ad2 callba Function4d188 ret ; 90355 Function90355: ; 90355 jr Function90357 Function90357 ld c, $14 call DelayFrames callba Function4d188 ret ; 90363 ; known jump sources: 90296 (24:4296) Function90363: ; 90363 (24:4363) push bc call Function90375 ld hl, $c4b5 ld [hl], $62 inc hl inc hl ld d, h ld e, l pop bc call Function90380 ret Function90375: ; 90375 ld hl, TileMap ld b, $2 ld c, $12 call TextBox ret ; 90380 ; known jump sources: 90371 (24:4371), 9130b (24:530b) Function90380: ; 90380 (24:4380) ld h, d ld l, e ld a, b call Function9039a call Function903a9 ret ; no known jump sources Function9038a: ; 9038a (24:438a) ld a, c call Function9039a ld a, c ret nz ld a, b cp $1 ret z cp $4 ret z ld c, $1 ret Function9039a: ; 9039a push hl ld hl, $445f ld bc, $000c call AddNTimes ld a, [hli] ld b, [hl] ld c, a pop hl ret ; 903a9 ; known jump sources: 90386 (24:4386) Function903a9: ; 903a9 (24:43a9) ld a, c and a jr z, .asm_903c5 call Function90423 push hl push bc call PlaceString ld a, $9c ld [bc], a pop bc pop hl ld de, $17 add hl, de call Function9042e call PlaceString ret .asm_903c5 push hl ld c, b ld b, $0 ld hl, $43d6 add hl, bc add hl, bc ld a, [hli] ld e, a ld d, [hl] pop hl call PlaceString ret ; 903d6 (24:43d6) INCBIN "baserom.gbc",$903d6,$90423 - $903d6 ; known jump sources: 903ad (24:43ad) Function90423: ; 90423 (24:4423) push hl push bc callba Function3994c pop bc pop hl ret ; known jump sources: 903be (24:43be) Function9042e: ; 9042e (24:442e) push hl push bc callba Function3952d pop bc pop hl ret Function90439: ; 90439 ld a, [$dbf9] call Function9039a ld d, c ld e, b push de ld a, [$dbf9] ld hl, $4461 ld bc, $000c call AddNTimes ld b, [hl] inc hl ld c, [hl] push bc call GetWorldMapLocation ld e, a callba GetLandmarkName pop bc pop de ret ; 9045f INCBIN "baserom.gbc",$9045f,$90672 - $9045f ; no known jump sources Function90672: ; 90672 (24:4672) ld a, [$FF00+$aa] push af ld a, $1 ld [$FF00+$aa], a ld a, $0 ld [$c2ce], a ld a, $10 ld [MusicFade], a ; $c2a7 ld a, $0 ld [MusicFadeIDLo], a ; $c2a9 ld a, $0 ld [MusicFadeIDHi], a ; $c2aa ld c, $8 call DelayFrames call Function4dd call ClearTileMap call ClearSprites ld b, $8 call GetSGBLayout xor a ld [hBGMapMode], a ; $ff00+$d4 call Functione51 ld de, $48fb ld hl, $9000 ld bc, $2401 call Request1bpp ld de, $4903 ld hl, $9010 ld bc, $2401 call Request1bpp ld de, $490b ld hl, $9020 ld bc, $2401 call Request1bpp call Function90783 call WaitBGMap call Function4a3 ld hl, $4874 call PrintText ld hl, EnemyMoveAnimation ; $c608 (aliases: EnemyMoveStruct) ld bc, $32 xor a call ByteFill ld a, $a ld [$c61c], a .asm_906e8 ld hl, $4879 call PrintText ld hl, $c52f ld b, $2 ld c, $f call TextBox ld hl, $c537 ld [hl], $1 ld hl, $c573 ld [hl], $2 ld hl, $c558 call Function907de ld c, $a call DelayFrames .asm_9070d call Functiona57 call Function90795 jr nc, .asm_9070d ld a, [$c61c] ld [$d087], a call Function90783 ld hl, $4886 call PrintText call YesNoBox jr nc, .asm_9072e call Function90783 jr .asm_906e8 .asm_9072e ld hl, $489a call PrintText ld hl, $c537 ld bc, $207 call TextBox ld hl, $c53b ld [hl], $1 ld hl, $c577 ld [hl], $2 ld hl, $c560 call Function90859 ld c, $a call DelayFrames .asm_90752 call Functiona57 call Function90810 jr nc, .asm_90752 ld a, [$c626] ld [$d088], a call Function90783 ld hl, $48a4 call PrintText call YesNoBox jr nc, .asm_90773 call Function90783 jr .asm_9072e .asm_90773 call Function658 ld hl, $48b8 call PrintText call Functiona80 pop af ld [$FF00+$aa], a ret ; known jump sources: 906ca (24:46ca), 9071b (24:471b), 90729 (24:4729), 90760 (24:4760), 9076e (24:476e) Function90783: ; 90783 (24:4783) xor a ld [hBGMapMode], a ; $ff00+$d4 ld hl, TileMap ; $c4a0 (aliases: SpritesEnd) ld bc, $168 xor a call ByteFill ld a, $1 ld [hBGMapMode], a ; $ff00+$d4 ret ; known jump sources: 90710 (24:4710) Function90795: ; 90795 (24:4795) ld a, [hJoyPressed] ; $ff00+$a7 and $1 jr nz, .asm_907dc ld hl, $ffa9 ld a, [hl] and $40 jr nz, .asm_907ba ld a, [hl] and $80 jr nz, .asm_907ad call DelayFrame and a ret .asm_907ad ld hl, $c61c ld a, [hl] and a jr nz, .asm_907b6 ld a, $18 .asm_907b6 dec a ld [hl], a jr .asm_907c6 .asm_907ba ld hl, $c61c ld a, [hl] cp $17 jr c, .asm_907c4 ld a, $ff .asm_907c4 inc a ld [hl], a .asm_907c6 ld hl, $c558 ld a, $7f ld bc, $f call ByteFill ld hl, $c558 call Function907de call WaitBGMap and a ret .asm_907dc scf ret ; known jump sources: 90705 (24:4705), 907d4 (24:47d4), 9088e (24:488e) Function907de: ; 907de (24:47de) push hl ld a, [$c61c] ld c, a ld e, l ld d, h call Function90b3e inc hl ld de, $487e call PlaceString pop hl ret ; 907f1 (24:47f1) INCBIN "baserom.gbc",$907f1,$90810 - $907f1 ; known jump sources: 90755 (24:4755) Function90810: ; 90810 (24:4810) ld a, [hJoyPressed] ; $ff00+$a7 and $1 jr nz, .asm_90857 ld hl, $ffa9 ld a, [hl] and $40 jr nz, .asm_90835 ld a, [hl] and $80 jr nz, .asm_90828 call DelayFrame and a ret .asm_90828 ld hl, $c626 ld a, [hl] and a jr nz, .asm_90831 ld a, $3c .asm_90831 dec a ld [hl], a jr .asm_90841 .asm_90835 ld hl, $c626 ld a, [hl] cp $3b jr c, .asm_9083f ld a, $ff .asm_9083f inc a ld [hl], a .asm_90841 ld hl, $c560 ld a, $7f ld bc, $7 call ByteFill ld hl, $c560 call Function90859 call WaitBGMap and a ret .asm_90857 scf ret ; known jump sources: 9074a (24:474a), 9084f (24:484f), 908ac (24:48ac) Function90859: ; 90859 (24:4859) ld de, $c626 call Function90867 inc hl ld de, $489f call PlaceString ret ; known jump sources: 9085c (24:485c), 90b54 (24:4b54) Function90867: ; 90867 (24:4867) push hl ld a, $7f ld [hli], a ld [hl], a pop hl ld bc, $4102 call PrintNum ret ; 90874 (24:4874) INCBIN "baserom.gbc",$90874,$9088b - $90874 ld hl, $c5e1 call Function907de ld hl, $4895 ret ; 90895 (24:4895) INCBIN "baserom.gbc",$90895,$908a9 - $90895 ld hl, $c5bf call Function90859 ld hl, $48b3 ret ; 908b3 (24:48b3) INCBIN "baserom.gbc",$908b3,$908b9 - $908b3 ld de, $c5b9 ld a, [$c61c] ld c, a call Function90b3e ld [hl], $9c inc hl ld de, $c626 ld bc, $8102 call PrintNum ld b, h ld c, l ld a, [$c61c] cp $4 jr c, .asm_908e0 cp $b jr c, .asm_908e4 cp $12 jr c, .asm_908e8 .asm_908e0 ld hl, $48f6 ret .asm_908e4 ld hl, $48ec ret .asm_908e8 ld hl, $48f1 ret ; 908ec (24:48ec) INCBIN "baserom.gbc",$908ec,$90913 - $908ec Function90913: ; 90913 ld a, [$ffaa] push af ld a, $1 ld [$ffaa], a ld de, $4903 ld hl, $8ef0 ld bc, $2401 call Request1bpp ld de, $490b ld hl, $8f50 ld bc, $2401 call Request1bpp xor a ld [DefaultFlypoint], a .asm_90936 ld hl, $c590 ld bc, $0412 call TextBox call Function1d6e ld hl, $4a3f call PrintText ld hl, $c4e5 ld b, $2 ld c, $9 call TextBox ld hl, $c4ea ld [hl], $ef ld hl, $c526 ld [hl], $f5 ld hl, $c50e call Function909de call Function321c ld c, $a call DelayFrames .asm_9096a call Functiona57 call Function90993 jr nc, .asm_9096a call Function1c07 call Function1ad2 ld hl, $4a44 call PrintText call YesNoBox jr c, .asm_90936 ld a, [DefaultFlypoint] ld [StringBuffer2], a call Function663 call Functione51 pop af ld [$ffaa], a ret ; 90993 Function90993: ; 90993 ld a, [hJoyPressed] and $1 jr z, .asm_9099b scf ret .asm_9099b ld hl, $ffa9 ld a, [hl] and $40 jr nz, .asm_909ba ld a, [hl] and $80 jr nz, .asm_909ad call DelayFrame and a ret .asm_909ad ld hl, DefaultFlypoint ld a, [hl] and a jr nz, .asm_909b6 ld a, $7 .asm_909b6 dec a ld [hl], a jr .asm_909c6 .asm_909ba ld hl, DefaultFlypoint ld a, [hl] cp $6 jr c, .asm_909c4 ld a, $ff .asm_909c4 inc a ld [hl], a .asm_909c6 xor a ld [hBGMapMode], a ld hl, $c4fa ld b, $2 ld c, $9 call ClearBox ld hl, $c50e call Function909de call WaitBGMap and a ret ; 909de Function909de: ; 909de push hl ld a, [DefaultFlypoint] ld e, a ld d, $0 ld hl, $49f2 add hl, de add hl, de ld a, [hli] ld d, [hl] ld e, a pop hl call PlaceString ret ; 909f2 dw Sunday dw Monday dw Tuesday dw Wednesday dw Thursday dw Friday dw Saturday dw Sunday Sunday: db " SUNDAY@" Monday: db " MONDAY@" Tuesday: db " TUESDAY@" Wednesday: db "WEDNESDAY@" Thursday: db "THURSDAY@" Friday: db " FRIDAY@" Saturday: db "SATURDAY@" INCBIN "baserom.gbc",$90a3f,$90a45 - $90a3f ld hl, $c5b9 call Function909de ld hl, $4a4f ret ; 90a4f (24:4a4f) INCBIN "baserom.gbc",$90a4f,$90a54 - $90a4f Function90a54: ; 90a54 ld a, [$d4c2] set 7, a ld [$d4c2], a ld hl, $c5b9 ld bc, $0312 call ClearBox ld hl, $4a6c call Function13e5 ret ; 90a6c INCBIN "baserom.gbc",$90a6c,$90a6d - $90a6c call UpdateTime ld a, [hHours] ; $ff00+$94 ld b, a ld a, [hMinutes] ; $ff00+$96 ld c, a ld de, $c5b9 callba Function1dd6bb ld hl, $4a83 ret ; 90a83 (24:4a83) INCBIN "baserom.gbc",$90a83,$90a88 - $90a83 Function90a88: ; 90a88 ld a, [$d4c2] res 7, a ld [$d4c2], a ld hl, $c5b9 ld bc, $0312 call ClearBox ld hl, $4aa0 call Function13e5 ret ; 90aa0 INCBIN "baserom.gbc",$90aa0,$90b3e - $90aa0 ; known jump sources: 907e5 (24:47e5), 908c0 (24:48c0) Function90b3e: ; 90b3e (24:4b3e) ld l, e ld h, d push bc call Function90b58 call PlaceString ld l, c ld h, b inc hl pop bc call Function90b7f ld [$d265], a ld de, $d265 call Function90867 ret ; known jump sources: 90b41 (24:4b41) Function90b58: ; 90b58 (24:4b58) ld a, c cp $4 jr c, .asm_90b65 cp $a jr c, .asm_90b69 cp $12 jr c, .asm_90b6d .asm_90b65 ld de, $4b71 ret .asm_90b69 ld de, $4b76 ret .asm_90b6d ld de, $4b7b ret ; 90b71 (24:4b71) INCBIN "baserom.gbc",$90b71,$90b7f - $90b71 ; known jump sources: 90b4b (24:4b4b) Function90b7f: ; 90b7f (24:4b7f) ld a, c or a jr z, .asm_90b8a cp $c ret c ret z sub $c ret .asm_90b8a ld a, $c ret Function90b8d: ; 90b8d (24:4b8d) ld hl, Options ; $cfcc ld a, [hl] push af set 4, [hl] ld a, [$FF00+$aa] push af ld a, $1 ld [$FF00+$aa], a ld a, [VramState] ; $d0ed push af xor a ld [VramState], a ; $d0ed call Function90bea call DelayFrame .asm_90ba9 call UpdateTime call Functiona57 ld a, [$cf63] bit 7, a jr nz, .asm_90bc4 call Function90f04 callba Function8cf69 call DelayFrame jr .asm_90ba9 .asm_90bc4 ld de, SFX_READ_TEXT_2 call PlaySFX call WaitSFX pop af ld [VramState], a ; $d0ed pop af ld [$FF00+$aa], a pop af ld [Options], a ; $cfcc call WhiteBGMap xor a ld [hBGMapAddress], a ; $ff00+$d6 ld a, $98 ld [$FF00+$d7], a ld a, $90 ld [hWY], a ; $ff00+$d2 call Function91492 ret ; known jump sources: 90ba3 (24:4ba3) Function90bea: ; 90bea (24:4bea) call WhiteBGMap call ClearTileMap call ClearSprites call DisableLCD xor a ld [hSCY], a ; $ff00+$d0 ld [hSCX], a ; $ff00+$cf ld a, $7 ld [hWX], a ; $ff00+$d1 call Function90c4e callba Function8cf53 call Function90d32 ld a, $8 call Function3cb4 ld a, $e3 ld [rLCDC], a ; $ff00+$40 call Function90d70 xor a ld [$cf63], a ld [$cf64], a ld [$cf65], a ld [$cf66], a ld [PlayerEvaLevel], a ; $c6d2 ld [PlayerAccLevel], a ; $c6d1 ld [$c6d3], a ld [EnemyAccLevel], a ; $c6d9 ld [EnemyEvaLevel], a ; $c6da ld [$c6db], a call Function90d9e call Function90da8 ld b, $2 call GetSGBLayout call Function32f9 ld a, [hCGB] ; $ff00+$e6 and a ret z ld a, $e4 call Functioncf8 ret Function90c4e: ; 90c4e call Functiond79 ld hl, TownMapGFX ld de, VTiles2 ld a, BANK(TownMapGFX) call FarDecompress ld hl, PokegearGFX ld de, $9300 ld a, BANK(PokegearGFX) call FarDecompress ld hl, PokegearSpritesGFX ld de, VTiles0 ld a, BANK(PokegearSpritesGFX) call Decompress ld a, [MapGroup] ld b, a ld a, [MapNumber] ld c, a call GetWorldMapLocation cp FAST_SHIP jr z, .ssaqua callba GetPlayerIcon push de ld h, d ld l, e ld a, b push af ld de, $8100 ld bc, $40 call FarCopyBytes pop af pop hl ld de, $c0 add hl, de ld de, $8140 ld bc, $40 call FarCopyBytes ret .ssaqua ld hl, FastShipGFX ld de, $8100 ld bc, $80 call CopyBytes ret ; 90cb2 FastShipGFX: ; 90cb2 INCBIN "gfx/misc/fast_ship.2bpp" ; 90d32 ; known jump sources: 90c08 (24:4c08) Function90d32: ; 90d32 (24:4d32) ld de, $2410 ld a, $d call Function3b2a ld hl, $3 add hl, bc ld [hl], $0 ret ; no known jump sources Function90d41: ; 90d41 (24:4d41) ld hl, $cf64 ld e, [hl] ld d, $0 ld hl, $4d52 add hl, de ld a, [hl] ld hl, $6 add hl, bc ld [hl], a ret ; 90d52 (24:4d52) INCBIN "baserom.gbc",$90d52,$90d56 - $90d52 Function90d56: ; 90d56 ld a, [MapGroup] ld b, a ld a, [MapNumber] ld c, a call GetWorldMapLocation cp SPECIAL_MAP ret nz ld a, [BackupMapGroup] ld b, a ld a, [BackupMapNumber] ld c, a call GetWorldMapLocation ret ; 90d70 ; known jump sources: 90c14 (24:4c14) Function90d70: ; 90d70 (24:4d70) ld a, [MapGroup] ; $dcb5 ld b, a ld a, [MapNumber] ; $dcb6 ld c, a call GetWorldMapLocation cp FAST_SHIP jr z, .asm_90d95 cp SPECIAL_MAP jr nz, .asm_90d8e ld a, [BackupMapGroup] ; $dcad ld b, a ld a, [BackupMapNumber] ; $dcae ld c, a call GetWorldMapLocation .asm_90d8e ld [$c6d8], a ld [$c6d7], a ret .asm_90d95 ld [$c6d8], a ld a, 1 ld [$c6d7], a ret ; known jump sources: 90c36 (24:4c36) Function90d9e: ; 90d9e (24:4d9e) ld a, $0 ld [$cf63], a xor a ld [$cf64], a ret ; known jump sources: 90c39 (24:4c39), 90f2d (24:4f2d), 90fcd (24:4fcd), 910f9 (24:50f9), 91164 (24:5164) Function90da8: ; 90da8 (24:4da8) xor a ld [hBGMapMode], a ; $ff00+$d4 ld hl, TileMap ld bc, TileMapEnd - TileMap ld a, $4f call ByteFill ld a, [$cf64] and $3 add a ld e, a ld d, 0 ld hl, Jumptable_90e12 add hl, de ld a, [hli] ld h, [hl] ld l, a ld de, .asm_90dcb push de jp [hl] .asm_90dcb call Function90eb0 callba TownMapPals ld a, [$cf65] and a jr nz, .asm_90de8 xor a ld [hBGMapAddress], a ; $ff00+$d6 ld a, $98 ld [$FF00+$d7], a call Function90e00 ld a, $90 jr .asm_90df3 .asm_90de8 xor a ld [hBGMapAddress], a ; $ff00+$d6 ld a, $9c ld [$FF00+$d7], a call Function90e00 xor a .asm_90df3 ld [hWY], a ; $ff00+$d2 ld a, [$cf65] and 1 xor 1 ld [$cf65], a ret ; known jump sources: 90de1 (24:4de1), 90def (24:4def) Function90e00: ; 90e00 (24:4e00) ld a, [hCGB] ; $ff00+$e6 and a jr z, .asm_90e0e ld a, $2 ld [hBGMapMode], a ; $ff00+$d4 ld c, $3 call DelayFrames .asm_90e0e call WaitBGMap ret ; 90e12 (24:4e12) Jumptable_90e12: ; 90e12 dw Function90e1a dw Function90e3f dw Function90e82 dw Function90e72 ; 90e1a Function90e1a: ; 90e1a ld de, $55db call Function914bb ld hl, $c4c0 ld de, .switch call PlaceString ld hl, $c590 lb bc, 4, 18 call TextBox call Function90f86 ret ; 90e36 (24:4e36) .switch db " SWITCH▶@" ; 90e3f Function90e3f: ; 90e3f ld a, [$c6d8] cp FAST_SHIP jr z, .johto cp KANTO_LANDMARK jr nc, .kanto .johto ld e, 0 jr .asm_90e50 .kanto ld e, 1 .asm_90e50 callba Function91ae1 ld a, $7 ld bc, $12 ld hl, $c4c9 call ByteFill ld hl, $c4c8 ld [hl], $6 ld hl, $c4db ld [hl], $17 ld a, [$c6d7] call Function910b4 ret ; 90e72 Function90e72: ; 90e72 ld de, $550d call Function914bb ld hl, $c590 ld bc, $412 call TextBox ret ; 90e82 Function90e82: ; 90e82 ld de, $558a call Function914bb ld hl, $c590 ld bc, $412 call TextBox call Function90e98 call Function912d8 ret ; 90e98 ; known jump sources: 90e91 (24:4e91) Function90e98: ; 90e98 (24:4e98) ld hl, $c4c5 ld a, $3c ld [hli], a inc a ld [hl], a ld hl, $c4d9 inc a ld [hli], a call Function2d05 and a ret nz ld hl, $c4da ld [hl], $3f ret ; known jump sources: 90dcb (24:4dcb) Function90eb0: ; 90eb0 (24:4eb0) ld hl, TileMap ; $c4a0 (aliases: SpritesEnd) ld bc, $8 ld a, $4f call ByteFill ld hl, $c4b4 ld bc, $8 ld a, $4f call ByteFill ld de, $d957 ld a, [de] bit 0, a call nz, Function90ee4 ld a, [de] bit 2, a call nz, Function90eeb ld a, [de] bit 1, a call nz, Function90ef2 ld hl, TileMap ; $c4a0 (aliases: SpritesEnd) ld a, $46 call Function90ef7 ret ; known jump sources: 90ecc (24:4ecc) Function90ee4: ; 90ee4 (24:4ee4) ld hl, $c4a2 ld a, $40 jr Function90ef7 ; known jump sources: 90ed2 (24:4ed2) Function90eeb: ; 90eeb (24:4eeb) ld hl, $c4a4 ld a, $44 jr Function90ef7 ; known jump sources: 90ed8 (24:4ed8) Function90ef2: ; 90ef2 (24:4ef2) ld hl, $c4a6 ld a, $42 ; known jump sources: 90ee0 (24:4ee0), 90ee9 (24:4ee9), 90ef0 (24:4ef0) Function90ef7: ; 90ef7 (24:4ef7) ld [hli], a inc a ld [hld], a ld bc, $14 add hl, bc add $f ld [hli], a inc a ld [hld], a ret ; known jump sources: 90bb6 (24:4bb6) Function90f04: ; 90f04 (24:4f04) ld a, [$cf63] ld e, a ld d, 0 ld hl, Jumptable_90f13 add hl, de add hl, de ld a, [hli] ld h, [hl] ld l, a jp [hl] ; no known jump sources Jumptable_90f13: ; 90f13 (24:4f13) dw Function90f2d dw Function90f3e dw Function90fb4 dw Function90fcd dw Function90fee dw Function90fcd dw Function90fe9 dw Function91156 dw Function91171 dw Function911eb dw Function91256 dw Function910f9 dw Function91112 ; no known jump sources Function90f2d: ; 90f2d (24:4f2d) call Function90da8 ld hl, $54d3 call PrintText ld hl, $cf63 inc [hl] call Function91492 ret ; no known jump sources Function90f3e: ; 90f3e (24:4f3e) call Function90f7b ld hl, $ffa9 ld a, [hl] and $f jr nz, .asm_90f75 ld a, [hl] and $10 ret z ld a, [$d957] bit 0, a jr z, .asm_90f5a ld c, $2 ld b, $1 jr .asm_90f71 .asm_90f5a ld a, [$d957] bit 2, a jr z, .asm_90f67 ld c, $7 ld b, $2 jr .asm_90f71 .asm_90f67 ld a, [$d957] bit 1, a ret z ld c, $b ld b, $3 .asm_90f71 call Function91480 ret .asm_90f75 ld hl, $cf63 set 7, [hl] ret ; known jump sources: 90f3e (24:4f3e) Function90f7b: ; 90f7b (24:4f7b) xor a ld [hBGMapMode], a ; $ff00+$d4 call Function90f86 ld a, $1 ld [hBGMapMode], a ; $ff00+$d4 ret ; known jump sources: 90e32 (24:4e32), 90f7e (24:4f7e) Function90f86: ; 90f86 (24:4f86) ld hl, $c507 ld bc, $50e call ClearBox ld a, [hHours] ; $ff00+$94 ld b, a ld a, [hMinutes] ; $ff00+$96 ld c, a ld de, $c546 callba Function1dd6bb ld hl, $4faf ld bc, $c51e call Function13e5 ret ; 90fa8 (24:4fa8) INCBIN "baserom.gbc",$90fa8,$90fb4 - $90fa8 ; no known jump sources Function90fb4: ; 90fb4 (24:4fb4) ld a, [EnemySDefLevel] ; $c6d8 cp $5f jr z, .asm_90fbf cp $2f jr nc, .asm_90fc4 .asm_90fbf ld a, $3 jr .asm_90fc6 ; 90fc3 (24:4fc3) INCBIN "baserom.gbc",$90fc3,$90fc4 - $90fc3 .asm_90fc4 ld a, $5 .asm_90fc6 ld [$cf63], a call Function91492 ret ; no known jump sources Function90fcd: ; 90fcd (24:4fcd) call Function90da8 ld a, [EnemySDefLevel] ; $c6d8 call Function9106a ld a, [EnemySAtkLevel] ; $c6d7 call Function91098 ld a, c ld [EnemyDefLevel], a ; $c6d5 ld a, b ld [$c6d6], a ld hl, $cf63 inc [hl] ret ; no known jump sources Function90fe9: ; 90fe9 (24:4fe9) call Function910e8 jr asm_90ff2 ; no known jump sources Function90fee: ; 90fee (24:4fee) ld d, $2e ld e, $1 asm_90ff2: ; 90ff2 (24:4ff2) ld hl, $ffa9 ld a, [hl] and $2 jr nz, .asm_91029 ld a, [hl] and $10 jr nz, .asm_91008 ld a, [hl] and $20 jr nz, .asm_91021 call Function9102f ret .asm_91008 ld a, [$d957] bit 2, a jr z, .asm_91015 ld c, $7 ld b, $2 jr .asm_91025 .asm_91015 ld a, [$d957] bit 1, a ret z ld c, $b ld b, $3 jr .asm_91025 .asm_91021 ld c, $0 ld b, $0 .asm_91025 call Function91480 ret .asm_91029 ld hl, $cf63 set 7, [hl] ret ; known jump sources: 91004 (24:5004) Function9102f: ; 9102f (24:502f) ld hl, $ffa9 ld a, [hl] and $40 jr nz, .asm_9103d ld a, [hl] and $80 jr nz, .asm_9104a ret .asm_9103d ld hl, EnemySAtkLevel ; $c6d7 ld a, [hl] cp d jr c, .asm_91047 ld a, e dec a ld [hl], a .asm_91047 inc [hl] jr .asm_91055 .asm_9104a ld hl, EnemySAtkLevel ; $c6d7 ld a, [hl] cp e jr nz, .asm_91054 ld a, d inc a ld [hl], a .asm_91054 dec [hl] .asm_91055 ld a, [EnemySAtkLevel] ; $c6d7 call Function910b4 ld a, [EnemyDefLevel] ; $c6d5 ld c, a ld a, [$c6d6] ld b, a ld a, [EnemySAtkLevel] ; $c6d7 call Function910d4 ret Function9106a: ; 9106a push af ld de, $0000 ld b, $a ld a, [PlayerGender] bit 0, a jr z, .asm_91079 ld b, $1e .asm_91079 ld a, b call Function3b2a ld hl, $0003 add hl, bc ld [hl], $10 pop af ld e, a push bc callba GetLandmarkCoords pop bc ld hl, $0004 add hl, bc ld [hl], e ld hl, $0005 add hl, bc ld [hl], d ret ; 91098 Function91098: ; 91098 push af ld de, $0000 ld a, $d call Function3b2a ld hl, $0003 add hl, bc ld [hl], $4 ld hl, $0002 add hl, bc ld [hl], $0 pop af push bc call Function910d4 pop bc ret ; 910b4 Function910b4: ; 910b4 push af ld hl, $c4a8 ld bc, $020c call ClearBox pop af ld e, a push de callba GetLandmarkName pop de callba Function1de2c5 ld hl, $c4a8 ld [hl], $34 ret ; 910d4 Function910d4: ; 910d4 push bc ld e, a callba GetLandmarkCoords pop bc ld hl, $0004 add hl, bc ld [hl], e ld hl, $0005 add hl, bc ld [hl], d ret ; 910e8 Function910e8: ; 910e8 ld a, [StatusFlags] bit 6, a jr z, .asm_910f4 ld d, $5e ld e, $2f ret .asm_910f4 ld d, $5e ld e, $58 ret ; 910f9 ; no known jump sources Function910f9: ; 910f9 (24:50f9) call Function90da8 ld de, $2454 ld a, $14 call Function3b2a ld hl, $3 add hl, bc ld [hl], $8 call Function9163e ld hl, $cf63 inc [hl] ret ; no known jump sources Function91112: ; 91112 (24:5112) ld hl, $ffa9 ld a, [hl] and $2 jr nz, .asm_91150 ld a, [hl] and $20 jr nz, .asm_9112e ld a, [EnemyEvaLevel] ; $c6da ld l, a ld a, [$c6db] ld h, a ld a, [EnemyAccLevel] ; $c6d9 and a ret z rst FarCall ret .asm_9112e ld a, [$d957] bit 2, a jr z, .asm_9113b ld c, $7 ld b, $2 jr .asm_9114c .asm_9113b ld a, [$d957] bit 0, a jr z, .asm_91148 ld c, $2 ld b, $1 jr .asm_9114c .asm_91148 ld c, $0 ld b, $0 .asm_9114c call Function91480 ret .asm_91150 ld hl, $cf63 set 7, [hl] ret ; no known jump sources Function91156: ; 91156 (24:5156) ld hl, $cf63 inc [hl] xor a ld [PlayerEvaLevel], a ; $c6d2 ld [PlayerAccLevel], a ; $c6d1 ld [$c6d3], a call Function90da8 call Function91492 ld hl, $54ce call PrintText ret ; no known jump sources Function91171: ; 91171 (24:5171) ld hl, hJoyPressed ; $ffa7 ld a, [hl] and $2 jr nz, .asm_911b0 ld a, [hl] and $1 jr nz, .asm_911b6 ld hl, $ffa9 ld a, [hl] and $20 jr nz, .asm_9118f ld a, [hl] and $10 jr nz, .asm_911a2 call Function9126d ret .asm_9118f ld a, [$d957] bit 0, a jr z, .asm_9119c ld c, $2 ld b, $1 jr .asm_911ac .asm_9119c ld c, $0 ld b, $0 jr .asm_911ac .asm_911a2 ld a, [$d957] bit 1, a ret z ld c, $b ld b, $3 .asm_911ac call Function91480 ret .asm_911b0 ld hl, $cf63 set 7, [hl] ret .asm_911b6 ld hl, $dc7c ld a, [PlayerEvaLevel] ; $c6d2 ld e, a ld d, $0 add hl, de ld a, [PlayerAccLevel] ; $c6d1 ld e, a ld d, $0 add hl, de ld a, [hl] and a ret z ld [$c6d3], a ld hl, $c4f1 ld a, [PlayerAccLevel] ; $c6d1 ld bc, $28 call AddNTimes ld [hl], $ec call Function91342 jr c, .asm_911e5 ld hl, $cf63 inc [hl] ret .asm_911e5 ld a, $8 ld [$cf63], a ret ; no known jump sources Function911eb: ; 911eb (24:51eb) call Function2d05 and a jr nz, .asm_91234 ld hl, Options ; $cfcc res 4, [hl] xor a ld [$FF00+$aa], a ld de, $6a call PlaySFX ld hl, $524c call PrintText call WaitSFX ld de, $6a call PlaySFX ld hl, $524c call PrintText call WaitSFX ld a, [$c6d3] ld b, a call Function90199 ld c, $a call DelayFrames ld hl, Options ; $cfcc set 4, [hl] ld a, $1 ld [$FF00+$aa], a call Function912b7 ld hl, $cf63 inc [hl] ret .asm_91234 callba Function902e3 ld hl, $5251 call PrintText ld a, $8 ld [$cf63], a ld hl, $54ce call PrintText ret ; 9124c (24:524c) INCBIN "baserom.gbc",$9124c,$91256 - $9124c ; no known jump sources Function91256: ; 91256 (24:5256) ld a, [hJoyPressed] ; $ff00+$a7 and $3 ret z callba Function902eb ld a, $8 ld [$cf63], a ld hl, $54ce call PrintText ret ; known jump sources: 9118b (24:518b) Function9126d: ; 9126d (24:526d) ld hl, $ffa9 ld a, [hl] and $40 jr nz, .asm_9127b ld a, [hl] and $80 jr nz, .asm_9128e ret .asm_9127b ld hl, PlayerAccLevel ; $c6d1 ld a, [hl] and a jr z, .asm_91285 dec [hl] jr .asm_912a3 .asm_91285 ld hl, PlayerEvaLevel ; $c6d2 ld a, [hl] and a ret z dec [hl] jr .asm_912ad .asm_9128e ld hl, PlayerAccLevel ; $c6d1 ld a, [hl] cp $3 jr nc, .asm_91299 inc [hl] jr .asm_912a3 .asm_91299 ld hl, PlayerEvaLevel ; $c6d2 ld a, [hl] cp $6 ret nc inc [hl] jr .asm_912ad .asm_912a3 xor a ld [hBGMapMode], a ; $ff00+$d4 call Function912b7 call WaitBGMap ret .asm_912ad xor a ld [hBGMapMode], a ; $ff00+$d4 call Function912d8 call WaitBGMap ret ; known jump sources: 9122c (24:522c), 912a6 (24:52a6), 9131a (24:531a) Function912b7: ; 912b7 (24:52b7) ld a, $7f ld hl, $c4f1 ld [hl], a ld hl, $c519 ld [hl], a ld hl, $c541 ld [hl], a ld hl, $c569 ld [hl], a ld hl, $c4f1 ld a, [PlayerAccLevel] ; $c6d1 ld bc, $28 call AddNTimes ld [hl], $ed ret ; known jump sources: 90e94 (24:4e94), 912b0 (24:52b0), 913d7 (24:53d7) Function912d8: ; 912d8 (24:52d8) ld hl, $c4dd ld b, $9 ld a, $7f .asm_912df ld c, $12 .asm_912e1 ld [hli], a dec c jr nz, .asm_912e1 inc hl inc hl dec b jr nz, .asm_912df ld a, [PlayerEvaLevel] ; $c6d2 ld e, a ld d, $0 ld hl, $dc7c add hl, de xor a ld [PlayerSDefLevel], a ; $c6d0 .asm_912f8 ld a, [hli] push hl push af ld hl, $c4f2 ld a, [PlayerSDefLevel] ; $c6d0 ld bc, $28 call AddNTimes ld d, h ld e, l pop af ld b, a call Function90380 pop hl ld a, [PlayerSDefLevel] ; $c6d0 inc a ld [PlayerSDefLevel], a ; $c6d0 cp $4 jr c, .asm_912f8 call Function912b7 ret ; 9131e (24:531e) INCBIN "baserom.gbc",$9131e,$91342 - $9131e ; known jump sources: 911db (24:51db) Function91342: ; 91342 (24:5342) ld hl, $dc7c ld a, [PlayerEvaLevel] ; $c6d2 ld e, a ld d, $0 add hl, de ld a, [PlayerAccLevel] ; $c6d1 ld e, a ld d, $0 add hl, de ld c, [hl] callba Function9038a ld a, c and a jr z, .asm_91366 ld hl, $5455 ld de, $543f jr .asm_9136c .asm_91366 ld hl, $546a ld de, $545b .asm_9136c xor a ld [hBGMapMode], a ; $ff00+$d4 push hl push de ld a, [de] ld l, a inc de ld a, [de] ld h, a inc de push hl ld bc, $ffd7 add hl, bc ld a, [de] inc de sla a ld b, a ld c, $8 push de call TextBox pop de pop hl inc hl call PlaceString pop de xor a ld [EnemyAtkLevel], a ; $c6d4 (aliases: EnemyStatLevels, PlayerStatLevelsEnd) call Function9141d call WaitBGMap .asm_91398 push de call Functiona57 pop de ld hl, hJoyPressed ; $ffa7 ld a, [hl] and $40 jr nz, .asm_913b4 ld a, [hl] and $80 jr nz, .asm_913c1 ld a, [hl] and $3 jr nz, .asm_913d4 call DelayFrame jr .asm_91398 .asm_913b4 ld hl, EnemyAtkLevel ; $c6d4 (aliases: EnemyStatLevels, PlayerStatLevelsEnd) ld a, [hl] and a jr z, .asm_91398 dec [hl] call Function9141d jr .asm_91398 .asm_913c1 ld hl, $2 add hl, de ld a, [EnemyAtkLevel] ; $c6d4 (aliases: EnemyStatLevels, PlayerStatLevelsEnd) inc a cp [hl] jr nc, .asm_91398 ld [EnemyAtkLevel], a ; $c6d4 (aliases: EnemyStatLevels, PlayerStatLevelsEnd) call Function9141d jr .asm_91398 .asm_913d4 xor a ld [hBGMapMode], a ; $ff00+$d4 call Function912d8 ld a, $1 ld [hBGMapMode], a ; $ff00+$d4 pop hl ld a, [hJoyPressed] ; $ff00+$a7 and $2 jr nz, .asm_913f1 ld a, [EnemyAtkLevel] ; $c6d4 (aliases: EnemyStatLevels, PlayerStatLevelsEnd) ld e, a ld d, 0 add hl, de add hl, de ld a, [hli] ld h, [hl] ld l, a jp [hl] .asm_913f1 ld hl, $54ce call PrintText scf ret ; 913f9 (24:53f9) INCBIN "baserom.gbc",$913f9,$9141d - $913f9 ; known jump sources: 91392 (24:5392), 913bc (24:53bc), 913cf (24:53cf) Function9141d: ; 9141d (24:541d) push de ld a, [de] inc de ld l, a ld a, [de] inc de ld h, a ld a, [de] ld c, a push hl ld a, $7f ld de, $28 .asm_9142c ld [hl], a add hl, de dec c jr nz, .asm_9142c pop hl ld a, [EnemyAtkLevel] ; $c6d4 (aliases: EnemyStatLevels, PlayerStatLevelsEnd) ld bc, $28 call AddNTimes ld [hl], $ed pop de ret ; 9143f (24:543f) INCBIN "baserom.gbc",$9143f,$91480 - $9143f ; known jump sources: 90f71 (24:4f71), 91025 (24:5025), 9114c (24:514c), 911ac (24:51ac) Function91480: ; 91480 (24:5480) ld de, $8 call PlaySFX ld a, c ld [$cf63], a ld a, b ld [$cf64], a call Function914ab ret Function91492: ; 91492 ld a, [EnemyTurnsTaken] cp $fe jr z, .asm_914a3 cp $ff call z, Function3d03 xor a ld [EnemyTurnsTaken], a ret .asm_914a3 call Function3d47 xor a ld [EnemyTurnsTaken], a ret ; 914ab ; known jump sources: 9148e (24:548e) Function914ab: ; 914ab (24:54ab) ld hl, $c324 ld bc, $90 xor a call ByteFill ld a, $2 ld [$c3b4], a ret ; known jump sources: 90e1d (24:4e1d), 90e75 (24:4e75), 90e85 (24:4e85) Function914bb: ; 914bb (24:54bb) ld hl, TileMap ; $c4a0 (aliases: SpritesEnd) .asm_914be ld a, [de] cp $ff ret z ld b, a inc de ld a, [de] ld c, a inc de ld a, b .asm_914c8 ld [hli], a dec c jr nz, .asm_914c8 jr .asm_914be ; 914ce (24:54ce) INCBIN "baserom.gbc",$914ce,$914dd - $914ce PokegearSpritesGFX: ; 914dd INCBIN "gfx/misc/pokegear_sprites.2bpp.lz" ; 91508 INCBIN "baserom.gbc",$91508,$9163e - $91508 ; known jump sources: 9110a (24:510a) Function9163e: ; 9163e (24:563e) jr asm_9166f ; no known jump sources Function91640: ; 91640 (24:5640) push bc call Function9164e pop bc ld a, [$d958] ld hl, $6 add hl, bc ld [hl], a ret ; known jump sources: 91641 (24:5641) Function9164e: ; 9164e (24:564e) ld hl, $ffa9 ld a, [hl] and $80 jr nz, .asm_9165c ld a, [hl] and $40 jr nz, .asm_91666 ret .asm_9165c ld hl, $d958 ld a, [hl] and a ret z dec [hl] dec [hl] jr asm_9166f .asm_91666 ld hl, $d958 ld a, [hl] cp $50 ret nc inc [hl] inc [hl] asm_9166f: ; 9166f (24:566f) ld hl, $d958 ld d, [hl] ld hl, $56ad .asm_91676 ld a, [hli] cp $ff jr z, .asm_91682 cp d jr z, .asm_91686 inc hl inc hl jr .asm_91676 .asm_91682 call Function91888 ret .asm_91686 ld a, [hli] ld h, [hl] ld l, a ld de, .asm_9168e push de jp [hl] .asm_9168e ld a, [EnemyAccLevel] ; $c6d9 and a ret z xor a ld [hBGMapMode], a ; $ff00+$d4 ld hl, $c556 call PlaceString ld a, $1 ld [hBGMapMode], a ; $ff00+$d4 ret ; 916a1 (24:56a1) INCBIN "baserom.gbc",$916a1,$916c9 - $916a1 call Function91744 jr nc, .asm_91740 ld a, [TimeOfDay] ; $d269 and a jp z, Function91766 jp Function91753 call Function91744 jr nc, .asm_91740 jp Function9177b call Function91744 jr nc, .asm_91740 jp Function91790 call Function91744 jr nc, .asm_91740 jp Function917a5 ld a, [EnemySDefLevel] ; $c6d8 cp $9 jr nz, .asm_91740 jp Function917d5 call Function91744 jr c, .asm_91740 ld a, [$d957] bit 3, a jr z, .asm_91740 jp Function917ea call Function91744 jr c, .asm_91740 ld a, [$d957] bit 3, a jr z, .asm_91740 jp Function917ff call Function91744 jr c, .asm_91740 ld a, [$d957] bit 3, a jr z, .asm_91740 jp Function91829 ld a, [StatusFlags] ; $d84c bit 4, a jr z, .asm_91740 ld a, [EnemySDefLevel] ; $c6d8 cp $24 jr z, .asm_9173d cp $25 jr z, .asm_9173d cp $26 jr nz, .asm_91740 .asm_9173d jp Function9183e .asm_91740 call Function91888 ret ; known jump sources: 916c9 (24:56c9), 916d8 (24:56d8), 916e0 (24:56e0), 916e8 (24:56e8), 916fa (24:56fa), 91709 (24:5709), 91718 (24:5718) Function91744: ; 91744 (24:5744) ld a, [EnemySDefLevel] ; $c6d8 cp $5f jr z, .asm_91751 cp $2f jr c, .asm_91751 and a ret .asm_91751 scf ret ; known jump sources: 916d5 (24:56d5) Function91753: ; 91753 (24:5753) xor a ld [DefaultFlypoint], a ; $d002 ld [StartFlypoint], a ; $d005 ld a, $2e ld hl, $4612 call Function9187c ld de, $58bf ret ; known jump sources: 916d2 (24:56d2) Function91766: ; 91766 (24:5766) ld a, $1 ld [DefaultFlypoint], a ; $d002 xor a ld [StartFlypoint], a ; $d005 ld a, $2e ld hl, $4612 call Function9187c ld de, $58cc ret ; known jump sources: 916dd (24:56dd) Function9177b: ; 9177b (24:577b) ld a, $2 ld [DefaultFlypoint], a ; $d002 xor a ld [StartFlypoint], a ; $d005 ld a, $2e ld hl, $4612 call Function9187c ld de, $58d6 ret ; known jump sources: 916e5 (24:56e5) Function91790: ; 91790 (24:5790) ld a, $3 ld [DefaultFlypoint], a ; $d002 xor a ld [StartFlypoint], a ; $d005 ld a, $2e ld hl, $4612 call Function9187c ld de, $58e1 ret ; known jump sources: 916ed (24:56ed) Function917a5: ; 917a5 (24:57a5) ld a, $4 ld [DefaultFlypoint], a ; $d002 xor a ld [StartFlypoint], a ; $d005 ld a, $2e ld hl, $4612 call Function9187c ld de, $57d4 ld a, [StatusFlags2] ; $d84d bit 0, a ret z ld de, $57c3 ret ; 917c3 (24:57c3) INCBIN "baserom.gbc",$917c3,$917d5 - $917c3 ; known jump sources: 916f7 (24:56f7) Function917d5: ; 917d5 (24:57d5) ld a, $9 ld [DefaultFlypoint], a ; $d002 xor a ld [StartFlypoint], a ; $d005 ld a, $2e ld hl, $4612 call Function9187c ld de, $58ef ret ; known jump sources: 91706 (24:5706) Function917ea: ; 917ea (24:57ea) ld a, $5 ld [DefaultFlypoint], a ; $d002 xor a ld [StartFlypoint], a ; $d005 ld a, $2e ld hl, $4612 call Function9187c ld de, $58f5 ret ; known jump sources: 91715 (24:5715) Function917ff: ; 917ff (24:57ff) ld a, $6 ld [DefaultFlypoint], a ; $d002 xor a ld [StartFlypoint], a ; $d005 ld a, $2e ld hl, $4612 call Function9187c ld de, $5905 ret ; 91814 (24:5814) Function91814: ; 91814 ld a, $7 ld [DefaultFlypoint], a xor a ld [StartFlypoint], a ld a, $2e ld hl, $4612 call Function9187c ld de, $5905 ret ; 91829 ; known jump sources: 91724 (24:5724) Function91829: ; 91829 (24:5829) ld a, $8 ld [DefaultFlypoint], a ; $d002 xor a ld [StartFlypoint], a ; $d005 ld a, $2e ld hl, $4612 call Function9187c ld de, $5914 ret ; known jump sources: 9173d (24:573d) Function9183e: ; 9183e (24:583e) ld a, $a ld [DefaultFlypoint], a ; $d002 xor a ld [StartFlypoint], a ; $d005 ld a, $2e ld hl, $4612 call Function9187c ld de, $58ef ret ; 91853 (24:5853) INCBIN "baserom.gbc",$91853,$91854 - $91853 ; no known jump sources Function91854: ; 91854 (24:5854) push de ld a, e ld [EnemyTurnsTaken], a ; $c6dc ld de, $0 call PlayMusic pop de ld a, e ld [CurMusic], a ; $c2c0 call PlayMusic ret ; no known jump sources Function91868: ; 91868 (24:5868) push de ld a, $fe ld [EnemyTurnsTaken], a ; $c6dc ld de, $0 call PlayMusic pop de ld de, $3f call PlayMusic ret ; known jump sources: 9175f (24:575f), 91774 (24:5774), 91789 (24:5789), 9179e (24:579e), 917b3 (24:57b3), 917e3 (24:57e3), 917f8 (24:57f8), 9180d (24:580d), 91837 (24:5837), 9184c (24:584c) Function9187c: ; 9187c (24:587c) ld [EnemyAccLevel], a ; $c6d9 ld a, l ld [EnemyEvaLevel], a ; $c6da ld a, h ld [$c6db], a ret ; known jump sources: 91682 (24:5682), 91740 (24:5740) Function91888: ; 91888 (24:5888) call Function9189d call Function918a9 xor a ld [EnemyAccLevel], a ; $c6d9 ld [EnemyEvaLevel], a ; $c6da ld [$c6db], a ld a, $1 ld [hBGMapMode], a ; $ff00+$d4 ret ; known jump sources: 91888 (24:5888) Function9189d: ; 9189d (24:589d) ld de, $0 call PlayMusic ld a, $ff ld [EnemyTurnsTaken], a ; $c6dc ret ; known jump sources: 9188b (24:588b) Function918a9: ; 918a9 (24:58a9) xor a ld [hBGMapMode], a ; $ff00+$d4 ld hl, $c541 ld bc, $312 call ClearBox ld hl, $c590 ld bc, $412 call TextBox ret RadioChannels: ; 918bf ; Buena's Password is at 0x917c3 db "OAK's ", $e1, $e2, " Talk@" db "#DEX Show@" db "#MON Music@" db "Lucky Channel@" db "?????@" db "Places & People@" db "Let's All Sing!@" db "# FLUTE@" ; 9191c Function9191c: ; 9191c ld hl, Options ld a, [hl] push af set 4, [hl] ld a, [$ffaa] push af ld a, $1 ld [$ffaa], a ld a, [VramState] push af xor a ld [VramState], a call WhiteBGMap call ClearTileMap call ClearSprites call DisableLCD call Function90c4e callba Function8cf53 ld a, $8 call Function3cb4 ld a, $e3 ld [rLCDC], a call Function90d56 ld [DefaultFlypoint], a ld [$d003], a xor a ld [hBGMapMode], a call Function91a04 call Function3200 ld a, [DefaultFlypoint] call Function9106a ld a, [$d003] call Function91098 ld a, c ld [$d004], a ld a, b ld [StartFlypoint], a ld b, $2 call GetSGBLayout call Function32f9 ld a, [hCGB] and a jr z, .asm_9198b ld a, $e4 call Functioncf8 call DelayFrame .asm_9198b ld a, [DefaultFlypoint] cp $2f jr nc, .asm_9199b ld d, $2e ld e, $1 call Function919b0 jr .asm_919a1 .asm_9199b call Function910e8 call Function919b0 .asm_919a1 pop af ld [VramState], a pop af ld [$ffaa], a pop af ld [Options], a call WhiteBGMap ret ; 919b0 Function919b0: ; 919b0 .asm_919b0 call Functiona57 ld hl, hJoyPressed ld a, [hl] and $2 ret nz ld hl, $ffa9 ld a, [hl] and $40 jr nz, .asm_919d4 ld a, [hl] and $80 jr nz, .asm_919e1 .asm_919c7 push de callba Function8cf69 pop de call DelayFrame jr .asm_919b0 .asm_919d4 ld hl, $d003 ld a, [hl] cp d jr c, .asm_919de ld a, e dec a ld [hl], a .asm_919de inc [hl] jr .asm_919ec .asm_919e1 ld hl, $d003 ld a, [hl] cp e jr nz, .asm_919eb ld a, d inc a ld [hl], a .asm_919eb dec [hl] .asm_919ec push de ld a, [$d003] call Function910b4 ld a, [$d004] ld c, a ld a, [StartFlypoint] ld b, a ld a, [$d003] call Function910d4 pop de jr .asm_919c7 ; 91a04 Function91a04: ; 91a04 ld a, [DefaultFlypoint] cp $2f jr nc, .asm_91a0f ld e, $0 jr .asm_91a11 .asm_91a0f ld e, $1 .asm_91a11 callba Function91ae1 ld a, $7 ld bc, $0006 ld hl, $c4a1 call ByteFill ld hl, TileMap ld [hl], $6 ld hl, $c4a7 ld [hl], $17 ld hl, $c4bb ld [hl], $16 ld hl, $c4cf ld [hl], $26 ld a, $7 ld bc, $000b ld hl, $c4d0 call ByteFill ld hl, $c4db ld [hl], $17 ld a, [$d003] call Function910b4 callba TownMapPals ret ; 91a53 Function91a53: ; 91a53 ld hl, Options ld a, [hl] push af set 4, [hl] call Function91a87 ld c, $64 call DelayFrames .asm_91a62 call Functiona57 ld a, [hJoyPressed] and $3 jr nz, .asm_91a7f ld a, [EnemyEvaLevel] ld l, a ld a, [$c6db] ld h, a ld a, [EnemyAccLevel] and a jr z, .asm_91a7a rst FarCall .asm_91a7a call DelayFrame jr .asm_91a62 .asm_91a7f pop af ld [Options], a call Function91492 ret ; 91a87 Function91a87: ; 91a87 ld a, $ff ld [EnemyTurnsTaken], a ld hl, Jumptable_91ab9 ld d, $0 add hl, de add hl, de ld a, [hli] ld h, [hl] ld l, a ld de, .asm_91a9b push de jp [hl] .asm_91a9b push de ld hl, $c590 ld bc, $0412 call TextBox ld hl, $c5b9 ld [hl], $72 pop de ld hl, $c5ba call PlaceString ld h, b ld l, c ld [hl], $73 call WaitBGMap ret ; 91ab9 Jumptable_91ab9: ; 91ab9 dw Function91acb dw Function91753 dw Function91766 dw Function9177b dw Function91790 dw Function917d5 dw Function917ea dw Function917ff dw Function91814 ; 91acb Function91acb: ; 91acb call IsInJohto and a jr nz, .asm_91ade call UpdateTime ld a, [TimeOfDay] and a jp z, Function91766 jp Function91753 .asm_91ade jp Function917ea ; 91ae1 Function91ae1: ; 91ae1 ld a, e and a jr nz, .asm_91aec call Function91ff2 call FillJohtoMap ret .asm_91aec call Function91ff2 call FillKantoMap ret ; 91af3 Function91af3: ; 91af3 call WhiteBGMap call ClearTileMap call ClearSprites ld hl, $ffaa ld a, [hl] push af ld [hl], $1 xor a ld [hBGMapMode], a callba Function8cf53 call Function91ff2 ld de, GFX_922e1 ld hl, $9300 lb bc, BANK(GFX_922e1), 6 call Request1bpp call FlyMap call Function91c8f ld b, $2 call GetSGBLayout call Function32f9 .asm_91b29 call Functiona57 ld hl, hJoyPressed ld a, [hl] and $2 jr nz, .asm_91b4a ld a, [hl] and $1 jr nz, .asm_91b4e call Function91b73 call Function91c17 callba Function8cf69 call DelayFrame jr .asm_91b29 .asm_91b4a ld a, $ff jr .asm_91b5a .asm_91b4e ld a, [DefaultFlypoint] ld l, a ld h, $0 add hl, hl ld de, $5c5f add hl, de ld a, [hl] .asm_91b5a ld [DefaultFlypoint], a pop af ld [$ffaa], a call WhiteBGMap ld a, $90 ld [hWY], a xor a ld [hBGMapAddress], a ld a, $98 ld [$ffd7], a ld a, [DefaultFlypoint] ld e, a ret ; 91b73 Function91b73: ; 91b73 ld a, [StartFlypoint] ld e, a ld a, [EndFlypoint] ld d, a ld hl, $ffa9 ld a, [hl] and $40 jr nz, .asm_91b89 ld a, [hl] and $80 jr nz, .asm_91b9b ret .asm_91b89 ld hl, DefaultFlypoint ld a, [hl] cp d jr nz, .asm_91b93 ld a, e dec a ld [hl], a .asm_91b93 inc [hl] call Function91c3c jr z, .asm_91b89 jr .asm_91bab .asm_91b9b ld hl, DefaultFlypoint ld a, [hl] cp e jr nz, .asm_91ba5 ld a, d inc a ld [hl], a .asm_91ba5 dec [hl] call Function91c3c jr z, .asm_91b9b .asm_91bab call TownMapBubble call WaitBGMap xor a ld [hBGMapMode], a ret ; 91bb5 TownMapBubble: ; 91bb5 ; Draw the bubble containing the location text in the town map HUD ; Top-left corner ld hl, TileMap + 1 ; (1,0) ld a, $30 ld [hli], a ; Top row ld bc, 16 ld a, " " call ByteFill ; Top-right corner ld a, $31 ld [hl], a ld hl, TileMap + 1 + 20 ; (1,1) ; Middle row ld bc, 18 ld a, " " call ByteFill ; Bottom-left corner ld hl, TileMap + 1 + 40 ; (1,2) ld a, $32 ld [hli], a ; Bottom row ld bc, 16 ld a, " " call ByteFill ; Bottom-right corner ld a, $33 ld [hl], a ; Print "Where?" ld hl, TileMap + 2 ; (2,0) ld de, .Where call PlaceString ; Print the name of the default flypoint call .Name ; Up/down arrows ld hl, TileMap + 18 + 20 ; (18,1) ld [hl], $34 ret .Where db "Where?@" .Name ; We need the map location of the default flypoint ld a, [DefaultFlypoint] ld l, a ld h, 0 add hl, hl ; two bytes per flypoint ld de, Flypoints add hl, de ld e, [hl] callba GetLandmarkName ld hl, TileMap + 2 + 20 ; (2,1) ld de, StringBuffer1 call PlaceString ret ; 91c17 Function91c17: ; 91c17 ld a, [DefaultFlypoint] ld l, a ld h, $0 add hl, hl ld de, Flypoints add hl, de ld e, [hl] callba GetLandmarkCoords ld a, [$d003] ld c, a ld a, [$d004] ld b, a ld hl, $0004 add hl, bc ld [hl], e ld hl, $0005 add hl, bc ld [hl], d ret ; 91c3c Function91c3c: ; 91c3c push bc push de push hl ld l, [hl] ld h, 0 add hl, hl ld de, Flypoints + 1 add hl, de ld c, [hl] call HasVisitedSpawn pop hl pop de pop bc and a ret ; 91c50 HasVisitedSpawn: ; 91c50 ; Check if spawn point c has been visited. ld hl, VisitedSpawns ld b, CHECK_FLAG ld d, 0 ld a, PREDEF_FLAG call Predef ld a, c ret ; 91c5e Flypoints: ; 91c5e ; landmark, spawn point const_def ; Johto const FLY_NEW_BARK const FLY_CHERRYGROVE const FLY_VIOLET const FLY_AZALEA const FLY_GOLDENROD const FLY_ECRUTEAK const FLY_OLIVINE const FLY_CIANWOOD const FLY_MAHOGANY const FLY_LAKE const FLY_BLACKTHORN const FLY_MT_SILVER db NEW_BARK_TOWN, SPAWN_NEW_BARK db CHERRYGROVE_CITY, SPAWN_CHERRYGROVE db VIOLET_CITY, SPAWN_VIOLET db AZALEA_TOWN, SPAWN_AZALEA db GOLDENROD_CITY, SPAWN_GOLDENROD db ECRUTEAK_CITY, SPAWN_ECRUTEAK db OLIVINE_CITY, SPAWN_OLIVINE db CIANWOOD_CITY, SPAWN_CIANWOOD db MAHOGANY_TOWN, SPAWN_MAHOGANY db LAKE_OF_RAGE, SPAWN_LAKE db BLACKTHORN_CITY, SPAWN_BLACKTHORN db SILVER_CAVE, SPAWN_MT_SILVER ; Kanto const FLY_PALLET const FLY_VIRIDIAN const FLY_PEWTER const FLY_CERULEAN const FLY_VERMILION const FLY_ROCK_TUNNEL const FLY_LAVENDER const FLY_CELADON const FLY_SAFFRON const FLY_FUCHSIA const FLY_CINNABAR const FLY_INDIGO_PLATEAU db PALLET_TOWN, SPAWN_PALLET db VIRIDIAN_CITY, SPAWN_VIRIDIAN db PEWTER_CITY, SPAWN_PEWTER db CERULEAN_CITY, SPAWN_CERULEAN db VERMILION_CITY, SPAWN_VERMILION db ROCK_TUNNEL, SPAWN_ROCK_TUNNEL db LAVENDER_TOWN, SPAWN_LAVENDER db CELADON_CITY, SPAWN_CELADON db SAFFRON_CITY, SPAWN_SAFFRON db FUCHSIA_CITY, SPAWN_FUCHSIA db CINNABAR_ISLAND, SPAWN_CINNABAR db INDIGO_PLATEAU, SPAWN_INDIGO_PLATEAU db -1 ; 91c8f Function91c8f: ; 91c8f ret ; 91c90 FlyMap: ; 91c90 ld a, [MapGroup] ld b, a ld a, [MapNumber] ld c, a call GetWorldMapLocation ; If we're not in a valid location, i.e. Pokecenter floor 2F, ; the backup map information is used cp SPECIAL_MAP jr nz, .CheckRegion ld a, [BackupMapGroup] ld b, a ld a, [BackupMapNumber] ld c, a call GetWorldMapLocation .CheckRegion ; The first 46 locations are part of Johto. The rest are in Kanto cp KANTO_LANDMARK jr nc, .KantoFlyMap .JohtoFlyMap ; Note that .NoKanto should be modified in tandem with this branch push af ; Start from New Bark Town ld a, FLY_NEW_BARK ld [DefaultFlypoint], a ; Flypoints begin at New Bark Town... ld [StartFlypoint], a ; ..and end at Silver Cave ld a, FLY_MT_SILVER ld [EndFlypoint], a ; Fill out the map call FillJohtoMap call .MapHud pop af call TownMapPlayerIcon ret .KantoFlyMap ; The event that there are no flypoints enabled in a map is not ; accounted for. As a result, if you attempt to select a flypoint ; when there are none enabled, the game will crash. Additionally, ; the flypoint selection has a default starting point that ; can be flown to even if none are enabled ; To prevent both of these things from happening when the player ; enters Kanto, fly access is restricted until Indigo Plateau is ; visited and its flypoint enabled push af ld c, SPAWN_INDIGO_PLATEAU call HasVisitedSpawn and a jr z, .NoKanto ; Kanto's map is only loaded if we've visited Indigo Plateau ; Flypoints begin at Pallet Town... ld a, FLY_PALLET ld [StartFlypoint], a ; ...and end at Indigo Plateau ld a, FLY_INDIGO_PLATEAU ld [EndFlypoint], a ; Because Indigo Plateau is the first flypoint the player ; visits, it's made the default flypoint ld [DefaultFlypoint], a ; Fill out the map call FillKantoMap call .MapHud pop af call TownMapPlayerIcon ret .NoKanto ; If Indigo Plateau hasn't been visited, we use Johto's map instead ; Start from New Bark Town ld a, FLY_NEW_BARK ld [DefaultFlypoint], a ; Flypoints begin at New Bark Town... ld [StartFlypoint], a ; ..and end at Silver Cave ld a, FLY_MT_SILVER ld [EndFlypoint], a call FillJohtoMap pop af .MapHud call TownMapBubble call TownMapPals ld hl, VBGMap0 ; BG Map 0 call TownMapBGUpdate call TownMapMon ld a, c ld [$d003], a ld a, b ld [$d004], a ret ; 91d11 Function91d11: ; 91d11 ld a, [DefaultFlypoint] push af ld a, [$d003] push af ld a, e ld [DefaultFlypoint], a call ClearSprites xor a ld [hBGMapMode], a ld a, $1 ld [$ffaa], a ld de, GFX_922d1 ld hl, $87f0 lb bc, BANK(GFX_922d1), 1 call Request2bpp call Function91ed0 ld hl, $8780 ld c, $4 call Request2bpp call Function91ff2 call FillKantoMap call Function91de9 call TownMapPals ld hl, VBGMap1 call TownMapBGUpdate call FillJohtoMap call Function91de9 call TownMapPals ld hl, VBGMap0 call TownMapBGUpdate ld b, $2 call GetSGBLayout call Function32f9 xor a ld [hBGMapMode], a xor a call Function91e1e .asm_91d6e call Functiona57 ld hl, hJoyPressed ld a, [hl] and $3 jr nz, .asm_91d8f ld a, [hJoypadDown] and $4 jr nz, .asm_91d87 call Function91d9b call Function91dcd jr .asm_91d8a .asm_91d87 call Function91e5a .asm_91d8a call DelayFrame jr .asm_91d6e .asm_91d8f call ClearSprites pop af ld [$d003], a pop af ld [DefaultFlypoint], a ret ; 91d9b Function91d9b: ; 91d9b ld a, [hl] and $20 jr nz, .asm_91da6 ld a, [hl] and $10 jr nz, .asm_91db7 ret .asm_91da6 ld a, [hWY] cp $90 ret z call ClearSprites ld a, $90 ld [hWY], a xor a call Function91e1e ret .asm_91db7 ld a, [StatusFlags] bit 6, a ret z ld a, [hWY] and a ret z call ClearSprites xor a ld [hWY], a ld a, $1 call Function91e1e ret ; 91dcd Function91dcd: ; 91dcd ld a, [$ff9b] ld e, a and $f ret nz ld a, e and $10 jr nz, .asm_91ddc call ClearSprites ret .asm_91ddc ld hl, TileMap ld de, Sprites ld bc, $00a0 call CopyBytes ret ; 91de9 Function91de9: ; 91de9 ld hl, TileMap ld bc, $0014 ld a, $7f call ByteFill ld hl, $c4b4 ld a, $6 ld [hli], a ld bc, $0012 ld a, $7 call ByteFill ld [hl], $17 call GetPokemonName ld hl, $c4a2 call PlaceString ld h, b ld l, c ld de, $5e16 call PlaceString ret ; 91e16 INCBIN "baserom.gbc",$91e16,$91e1e - $91e16 Function91e1e: ; 91e1e ld [$d003], a ld e, a callba Function2a01f ld de, TileMap ld hl, Sprites .asm_91e2e ld a, [de] and a jr z, .asm_91e4d push de ld e, a push hl callba GetLandmarkCoords pop hl ld a, d sub $4 ld [hli], a ld a, e sub $4 ld [hli], a ld a, $7f ld [hli], a xor a ld [hli], a pop de inc de jr .asm_91e2e .asm_91e4d ld hl, Sprites ld de, TileMap ld bc, $00a0 call CopyBytes ret ; 91e5a Function91e5a: ; 91e5a call Function91ea9 ret c ld a, [DefaultFlypoint] ld e, a callba GetLandmarkCoords ld c, e ld b, d ld de, $5e9c ld hl, Sprites .asm_91e70 ld a, [de] cp $80 jr z, .asm_91e91 add b ld [hli], a inc de ld a, [de] add c ld [hli], a inc de ld a, [de] add $78 ld [hli], a inc de push bc ld c, $0 ld a, [PlayerGender] bit 0, a jr z, .asm_91e8c inc c .asm_91e8c ld a, c ld [hli], a pop bc jr .asm_91e70 .asm_91e91 ld hl, $c410 ld bc, $0090 xor a call ByteFill ret ; 91e9c INCBIN "baserom.gbc",$91e9c,$91ea9 - $91e9c Function91ea9: ; 91ea9 ld a, [DefaultFlypoint] cp $5f jr z, .asm_91ebc cp $2f jr c, .asm_91ebc ld a, [$d003] and a jr z, .asm_91ec4 jr .asm_91ec2 .asm_91ebc ld a, [$d003] and a jr nz, .asm_91ec4 .asm_91ec2 and a ret .asm_91ec4 ld hl, Sprites ld bc, $00a0 xor a call ByteFill scf ret ; 91ed0 Function91ed0: ; 91ed0 ld a, [DefaultFlypoint] cp $5f jr z, .asm_91ede callba GetPlayerIcon ret .asm_91ede ld de, $4cb2 ld b, $24 ret ; 91ee4 TownMapBGUpdate: ; 91ee4 ; Update BG Map tiles and attributes ; BG Map address ld a, l ld [hBGMapAddress], a ld a, h ld [$ffd7], a ; Only update palettes on CGB ld a, [hCGB] and a jr z, .tiles ; BG Map mode 2 (palettes) ld a, 2 ld [hBGMapMode], a ; The BG Map is updated in thirds, so we wait ; 3 frames to update the whole screen's palettes. ld c, 3 call DelayFrames .tiles ; Update BG Map tiles call WaitBGMap ; Turn off BG Map update xor a ld [hBGMapMode], a ret ; 91eff FillJohtoMap: ; 91eff ld de, JohtoMap jr FillTownMap FillKantoMap: ; 91f04 ld de, KantoMap FillTownMap: ; 91f07 ld hl, TileMap .loop ld a, [de] cp $ff ret z ld a, [de] ld [hli], a inc de jr .loop ; 91f13 TownMapPals: ; 91f13 ; Assign palettes based on tile ids ld hl, TileMap ld de, AttrMap ld bc, 360 .loop ; Current tile ld a, [hli] push hl ; HP/borders use palette 0 cp $60 jr nc, .pal0 ; The palette data is condensed to nybbles, ; least-significant first. ld hl, .Pals srl a jr c, .odd ; Even-numbered tile ids take the bottom nybble... add l ld l, a ld a, h adc 0 ld h, a ld a, [hl] and %111 jr .update .odd ; ...and odd ids take the top. add l ld l, a ld a, h adc 0 ld h, a ld a, [hl] swap a and %111 jr .update .pal0 xor a .update pop hl ld [de], a inc de dec bc ld a, b or c jr nz, .loop ret .Pals db $11, $21, $22, $00, $11, $13, $54, $54, $11, $21, $22, $00 db $11, $10, $01, $00, $11, $21, $22, $00, $00, $00, $00, $00 db $00, $00, $44, $04, $00, $00, $00, $00, $33, $33, $33, $33 db $33, $33, $33, $03, $33, $33, $33, $33, $00, $00, $00, $00 ; 91f7b TownMapMon: ; 91f7b ; Draw the FlyMon icon at town map location in ; Get FlyMon species ld a, [CurPartyMon] ld hl, PartySpecies ld e, a ld d, $0 add hl, de ld a, [hl] ld [$d265], a ; Get FlyMon icon ld e, 8 ; starting tile in VRAM callba GetSpeciesIcon ; Animation/palette ld de, $0000 ld a, $0 call Function3b2a ld hl, 3 add hl, bc ld [hl], 8 ld hl, 2 add hl, bc ld [hl], 0 ret ; 91fa6 TownMapPlayerIcon: ; 91fa6 ; Draw the player icon at town map location in a push af callba GetPlayerIcon ; Standing icon ld hl, $8100 ld c, 4 ; # tiles call Request2bpp ; Walking icon ld hl, $00c0 add hl, de ld d, h ld e, l ld hl, $8140 ld c, 4 ; # tiles ld a, $30 call Request2bpp ; Animation/palette ld de, $0000 ld b, $0a ; Male ld a, [PlayerGender] bit 0, a jr z, .asm_91fd3 ld b, $1e ; Female .asm_91fd3 ld a, b call Function3b2a ld hl, $0003 add hl, bc ld [hl], $10 pop af ld e, a push bc callba GetLandmarkCoords pop bc ld hl, 4 add hl, bc ld [hl], e ld hl, 5 add hl, bc ld [hl], d ret ; 0x91ff2 Function91ff2: ; 91ff2 ld hl, TownMapGFX ld de, VTiles2 lb bc, BANK(TownMapGFX), $30 call Functione73 ret ; 91fff JohtoMap: ; 91fff INCBIN "gfx/misc/johto.bin" ; 92168 KantoMap: ; 92168 INCBIN "gfx/misc/kanto.bin" ; 922d1 GFX_922d1: ; 922d1 INCBIN "baserom.gbc", $922d1, $922e1 - $922d1 GFX_922e1: ; 922e1 INCBIN "baserom.gbc", $922e1, $92301 - $922e1 INCBIN "baserom.gbc",$92301,$92402 - $92301 INCLUDE "stats/wild/fish.asm" Function926c7: ld hl, Options ; $cfcc set 4, [hl] call Function926f7 call DelayFrame .asm_926d2 call Function927af jr nc, .asm_926d2 call WaitSFX ld de, SFX_QUIT_SLOTS call PlaySFX call WaitSFX call WhiteBGMap callba Function105fd0 ld hl, Options ; $cfcc res 4, [hl] ld hl, rLCDC ; $ff40 res 2, [hl] ret ; known jump sources: 926cc (24:66cc) Function926f7: ; 926f7 (24:66f7) call WhiteBGMap call ClearTileMap call ClearSprites ld de, MUSIC_NONE call PlayMusic call DelayFrame call DisableLCD ld hl, $9800 ld bc, $400 ld a, $7f call ByteFill ld b, $5 call GetSGBLayout callab Function8cf53 ld hl, PlayerSDefLevel ; $c6d0 ld bc, $48 xor a call ByteFill ld hl, Slots2LZ ld de, $8000 call Decompress ld hl, Slots3LZ ld de, $8400 call Decompress ld hl, Slots1LZ ld de, $9000 call Decompress ld hl, Slots2LZ ld de, $9250 call Decompress ld hl, SlotsTilemap ld de, TileMap ; $c4a0 (aliases: SpritesEnd) ld bc, 20 * 12 call CopyBytes ld hl, rLCDC ; $ff40 set 2, [hl] call EnableLCD ld hl, PlayerSDefLevel ; $c6d0 ld bc, $64 xor a call ByteFill call Function92a98 call Function9279b ld a, $7 ld hl, $c300 ld [hli], a ld [hl], $40 xor a ld [$cf63], a ld a, $ff ld [$c709], a ld de, MUSIC_GAME_CORNER call PlayMusic xor a ld [DefaultFlypoint], a ; $d002 call Random and $2a ret nz ld a, $1 ld [DefaultFlypoint], a ; $d002 ret ; known jump sources: 92771 (24:6771) Function9279b: ; 9279b (24:679b) ld a, $e4 call DmgToCgbBGPals ld de, $e4e4 ld a, [hCGB] ; $ff00+$e6 and a jr nz, .asm_927ab ld de, $c0e4 .asm_927ab call DmgToCgbObjPals ret ; known jump sources: 926d2 (24:66d2) Function927af: ; 927af (24:67af) ld a, [$cf63] bit 7, a jr nz, .asm_927d1 call Function92844 call Function92b0f xor a ld [$c3b5], a callab Function8cfa8 call Function927f8 call Function927d3 call DelayFrame and a ret .asm_927d1 scf ret ; known jump sources: 927c9 (24:67c9) Function927d3: ; 927d3 (24:67d3) ret ; 927d4 (24:67d4) INCBIN "baserom.gbc",$927d4,$927f8 - $927d4 ; known jump sources: 927c6 (24:67c6) Function927f8: ; 927f8 (24:67f8) ld hl, $c4b9 ld de, Coins ; $d855 ld bc, $8204 call PrintNum ld hl, $c4bf ld de, $c711 ld bc, $8204 call PrintNum ret ; 92811 (24:6811) INCBIN "baserom.gbc",$92811,$92844 - $92811 ; known jump sources: 927b6 (24:67b6) Function92844: ; 92844 (24:6844) ld a, [$cf63] ld e, a ld d, 0 ld hl, Jumptable_92853 add hl, de add hl, de ld a, [hli] ld h, [hl] ld l, a jp [hl] ; 92853 (24:6853) ; no known jump sources Jumptable_92853: ; 92853 (24:6853) dw Function9287e dw Function9288e dw Function928c6 dw Function928d6 dw Function928e6 dw Function92900 dw Function92910 dw Function9292a dw Function9293a dw Function92879 dw Function92879 dw Function92879 dw Function92955 dw Function9296b dw Function92987 dw Function9299e dw Function929a4 dw Function929d9 dw Function929f0 ; known jump sources: 9287e (24:687e), 92899 (24:6899), 928cf (24:68cf), 928dd (24:68dd), 928fa (24:68fa), 92907 (24:6907), 92924 (24:6924), 92931 (24:6931), 9294e (24:694e), 9295c (24:695c), 9295f (24:695f), 92963 (24:6963), 92983 (24:6983), 9299a (24:699a), 929a1 (24:69a1), 929d5 (24:69d5) Function92879: ; 92879 (24:6879) ld hl, $cf63 inc [hl] ret ; no known jump sources Function9287e: ; 9287e (24:687e) call Function92879 xor a ld [WeatherCount], a ; $c70b ld [LoweredStat], a ; $c70c ld a, $ff ld [EffectFailed], a ; $c70d ret ; no known jump sources Function9288e: ; 9288e (24:688e) call Function9307c jr nc, .asm_92899 ld a, $12 ld [$cf63], a ret .asm_92899 call Function92879 call Function9303f call Function93002 ld a, $20 ld [$cf64], a ld a, $4 ld [PlayerSDefLevel], a ; $c6d0 ld [$c6e0], a ld [$c6f0], a ld a, $4 ld [EnemyAccLevel], a ; $c6d9 ld [CurEnemyMoveNum], a ; $c6e9 ld [LastPlayerCounterMove], a ; $c6f9 call WaitSFX ld a, $2c call Function9331e ret ; no known jump sources Function928c6: ; 928c6 (24:68c6) ld hl, $cf64 ld a, [hl] and a jr z, .asm_928cf dec [hl] ret .asm_928cf call Function92879 xor a ld [hJoypadSum], a ; $ff00+$a5 ret ; no known jump sources Function928d6: ; 928d6 (24:68d6) ld hl, hJoypadSum ; $ffa5 ld a, [hl] and $1 ret z call Function92879 call Function92a2b ld [PlayerSDefLevel], a ; $c6d0 ; no known jump sources Function928e6: ; 928e6 (24:68e6) ld a, [PlayerSDefLevel] ; $c6d0 cp $0 ret nz ld a, $ba call Function9331e ld bc, PlayerSDefLevel ; $c6d0 ld de, EnemyScreens ; $c700 call Function929f6 call Function92879 xor a ld [hJoypadSum], a ; $ff00+$a5 ; no known jump sources Function92900: ; 92900 (24:6900) ld hl, hJoypadSum ; $ffa5 ld a, [hl] and $1 ret z call Function92879 call Function92a2e ld [$c6e0], a ; no known jump sources Function92910: ; 92910 (24:6910) ld a, [$c6e0] cp $0 ret nz ld a, $ba call Function9331e ld bc, $c6e0 ld de, PlayerReflectCount ; $c703 call Function929f6 call Function92879 xor a ld [hJoypadSum], a ; $ff00+$a5 ; no known jump sources Function9292a: ; 9292a (24:692a) ld hl, hJoypadSum ; $ffa5 ld a, [hl] and $1 ret z call Function92879 call Function92a60 ld [$c6f0], a ; no known jump sources Function9293a: ; 9293a (24:693a) ld a, [$c6f0] cp $0 ret nz ld a, $ba call Function9331e ld bc, $c6f0 ld de, EnemyLightScreenCount ; $c706 call Function929f6 call Function92879 xor a ld [hJoypadSum], a ; $ff00+$a5 ret ; no known jump sources Function92955: ; 92955 (24:6955) ld a, [EffectFailed] ; $c70d cp $ff jr nz, .asm_92963 call Function92879 call Function92879 ret .asm_92963 call Function92879 ld a, $10 ld [$cf64], a ; no known jump sources Function9296b: ; 9296b (24:696b) ld hl, $cf64 ld a, [hl] and a jr z, .asm_92980 dec [hl] srl a ret z ld a, [rOBP0] ; $ff00+$48 xor $ff ld e, a ld d, a call DmgToCgbObjPals ret .asm_92980 call Function9279b call Function92879 ret ; no known jump sources Function92987: ; 92987 (24:6987) xor a ld [WeatherCount], a ; $c70b ld [LoweredStat], a ; $c70c ld a, $e4 call DmgToCgbBGPals call Function93124 xor a ld [$cf64], a call Function92879 ret ; no known jump sources Function9299e: ; 9299e (24:699e) call Function93158 call Function92879 ; no known jump sources Function929a4: ; 929a4 (24:69a4) ld hl, $cf64 ld a, [hl] inc [hl] and $1 ret z ld hl, $c711 ld a, [hli] ld d, a or [hl] jr z, .asm_929d5 ld e, [hl] dec de ld [hl], e dec hl ld [hl], d ld hl, Coins ; $d855 ld d, [hl] inc hl ld e, [hl] call Function92a04 jr c, .asm_929c5 inc de .asm_929c5 ld [hl], e dec hl ld [hl], d ld a, [$cf64] and $7 ret z ld de, $67 call PlaySFX ret .asm_929d5 call Function92879 ret ; no known jump sources Function929d9: ; 929d9 (24:69d9) call Function9304c call Functiona80 call Function930e9 jr c, .asm_929ea ld a, $0 ld [$cf63], a ret .asm_929ea ld a, $12 ld [$cf63], a ret ; no known jump sources Function929f0: ; 929f0 (24:69f0) ld hl, $cf63 set 7, [hl] ret ; known jump sources: 928f7 (24:68f7), 92921 (24:6921), 9294b (24:694b) Function929f6: ; 929f6 (24:69f6) push de call Function92a12 pop de ld a, [hli] ld [de], a inc de ld a, [hli] ld [de], a inc de ld a, [hli] ld [de], a ret ; known jump sources: 929bf (24:69bf) Function92a04: ; 92a04 (24:6a04) ld a, d cp $27 jr c, .asm_92a10 ld a, e cp $f jr c, .asm_92a10 scf ret .asm_92a10 and a ret ; known jump sources: 929f7 (24:69f7) Function92a12: ; 92a12 (24:6a12) ld hl, $3 add hl, bc ld a, [hl] and a jr nz, .asm_92a1c ld a, $f .asm_92a1c dec a and $f ld e, a ld d, $0 ld hl, $1 add hl, bc ld a, [hli] ld h, [hl] ld l, a add hl, de ret ; known jump sources: 928e0 (24:68e0) Function92a2b: ; 92a2b (24:6a2b) ld a, $7 ret ; known jump sources: 9290a (24:690a) Function92a2e: ; 92a2e (24:6a2e) ld a, [Weather] ; $c70a cp $2 jr c, .asm_92a4e ld a, [$c709] and a jr z, .asm_92a3f cp $ff jr nz, .asm_92a4e .asm_92a3f call Function92a51 jr nz, .asm_92a4e call Random cp $50 jr nc, .asm_92a4e ld a, $a ret .asm_92a4e ld a, $8 ret ; known jump sources: 92a3f (24:6a3f) Function92a51: ; 92a51 (24:6a51) ld a, [EnemyScreens] ; $c700 and a ret z ld a, [$c701] and a ret z ld a, [PlayerLightScreenCount] ; $c702 and a ret ; known jump sources: 92934 (24:6934) Function92a60: ; 92a60 (24:6a60) ld a, [WeatherCount] ; $c70b and a jr z, .asm_92a95 ld a, [LoweredStat] ; $c70c and a jr z, .asm_92a95 ld a, [$c709] and a jr nz, .asm_92a84 call Random cp $b4 jr nc, .asm_92a95 cp $78 jr nc, .asm_92a92 cp $3c jr nc, .asm_92a8f ld a, $15 ret .asm_92a84 call Random cp $a0 jr nc, .asm_92a95 cp $50 jr nc, .asm_92a92 .asm_92a8f ld a, $12 ret .asm_92a92 ld a, $10 ret .asm_92a95 ld a, $9 ret ; known jump sources: 9276e (24:676e) Function92a98: ; 92a98 (24:6a98) ld bc, PlayerSDefLevel ; $c6d0 ld hl, $6 add hl, bc ld de, $c440 ld [hl], e inc hl ld [hl], d ld hl, $1 add hl, bc ld de, Unknown_93327 ld [hl], e inc hl ld [hl], d ld hl, $8 add hl, bc ld [hl], $30 call Function92af9 ld bc, $c6e0 ld hl, $6 add hl, bc ld de, $c460 ld [hl], e inc hl ld [hl], d ld hl, $1 add hl, bc ld de, Unknown_93339 ld [hl], e inc hl ld [hl], d ld hl, $8 add hl, bc ld [hl], $50 call Function92af9 ld bc, $c6f0 ld hl, $6 add hl, bc ld de, $c480 ld [hl], e inc hl ld [hl], d ld hl, $1 add hl, bc ld de, Unknown_9334b ld [hl], e inc hl ld [hl], d ld hl, $8 add hl, bc ld [hl], $70 call Function92af9 ret ; known jump sources: 92ab5 (24:6ab5), 92ad5 (24:6ad5), 92af5 (24:6af5) Function92af9: ; 92af9 (24:6af9) ld hl, $0 add hl, bc ld [hl], $0 ld hl, $3 add hl, bc ld [hl], $e ld hl, $4 add hl, bc ld [hl], $0 call Function92b53 ret ; known jump sources: 927b9 (24:67b9) Function92b0f: ; 92b0f (24:6b0f) ld bc, PlayerSDefLevel ; $c6d0 call Function92b22 ld bc, $c6e0 call Function92b22 ld bc, $c6f0 call Function92b22 ret ; known jump sources: 92b12 (24:6b12), 92b18 (24:6b18), 92b1e (24:6b1e) Function92b22: ; 92b22 (24:6b22) ld hl, $4 add hl, bc ld a, [hl] and $f jr nz, .asm_92b2e call Function92bd4 .asm_92b2e ld hl, $5 add hl, bc ld a, [hl] and a ret z ld d, a ld hl, $4 add hl, bc add [hl] ld [hl], a and $f jr z, Function92b53 ld hl, $6 add hl, bc ld a, [hli] ld h, [hl] ld l, a ld e, $8 .asm_92b49 ld a, [hl] add d ld [hli], a inc hl inc hl inc hl dec e jr nz, .asm_92b49 ret ; known jump sources: 92b0b (24:6b0b), 92b3e (24:6b3e) Function92b53: ; 92b53 (24:6b53) ld hl, $8 add hl, bc ld a, [hl] ld [$c713], a ld a, $50 ld [$c714], a ld hl, $3 add hl, bc ld e, [hl] ld d, $0 ld hl, $1 add hl, bc ld a, [hli] ld h, [hl] ld l, a add hl, de ld e, l ld d, h call Function92b83 ld hl, $3 add hl, bc ld a, [hl] inc a and $f cp $f jr nz, .asm_92b81 xor a .asm_92b81 ld [hl], a ret ; known jump sources: 92b71 (24:6b71) Function92b83: ; 92b83 (24:6b83) ld hl, $6 add hl, bc ld a, [hli] ld h, [hl] ld l, a .asm_92b8a ld a, [$c714] ld [hli], a ld a, [$c713] ld [hli], a ld a, [de] ld [hli], a srl a srl a set 7, a ld [hli], a ld a, [$c714] ld [hli], a ld a, [$c713] add $8 ld [hli], a ld a, [de] inc a inc a ld [hli], a srl a srl a set 7, a ld [hli], a inc de ld a, [$c714] sub $10 ld [$c714], a cp $10 jr nz, .asm_92b8a ret ; 92bbe (24:6bbe) INCBIN "baserom.gbc",$92bbe,$92bd4 - $92bbe ; known jump sources: 92b2b (24:6b2b) Function92bd4: ; 92bd4 (24:6bd4) ld hl, $0 add hl, bc ld e, [hl] ld d, 0 ld hl, Jumptable_92be4 add hl, de add hl, de ld a, [hli] ld h, [hl] ld l, a jp [hl] ; 92be4 (24:6be4) Jumptable_92be4: ; 92be4 dw Function92c16 dw Function92c4c dw Function92c17 dw Function92c1e dw Function92c25 dw Function92c2c dw Function92c33 dw Function92c5e dw Function92c86 dw Function92ca9 dw Function92cd2 dw Function92cf8 dw Function92d13 dw Function92df7 dw Function92e10 dw Function92e31 dw Function92e47 dw Function92e64 dw Function92d20 dw Function92d4f dw Function92d6e dw Function92d7e dw Function92da4 dw Function92db3 dw Function92dca ; 92c16 Function92c16: ; 92c16 ret ; 92c17 Function92c17: ; 92c17 ld hl, $0005 add hl, bc ld [hl], $10 ret ; 92c1e Function92c1e: ; 92c1e ld hl, $0005 add hl, bc ld [hl], $8 ret ; 92c25 Function92c25: ; 92c25 ld hl, $0005 add hl, bc ld [hl], $4 ret ; 92c2c Function92c2c: ; 92c2c ld hl, $0005 add hl, bc ld [hl], $2 ret ; 92c33 Function92c33: ; 92c33 ld hl, $0005 add hl, bc ld [hl], $1 ret ; 92c3a Function92c3a: ; 92c3a ld hl, $0005 add hl, bc ld [hl], $0 ld hl, $0000 add hl, bc ld [hl], $1 ld hl, $000f add hl, bc ld [hl], $3 Function92c4c: ; 92c4c ld hl, $000f add hl, bc ld a, [hl] and a jr z, .asm_92c56 dec [hl] ret .asm_92c56 ld hl, $0000 add hl, bc ld a, $0 ld [hl], a ret ; 92c5e Function92c5e: ; 92c5e ld a, [$c709] cp $ff jr z, .asm_92c72 ld hl, $0009 add hl, bc ld a, [hl] and a jr z, .asm_92c72 dec [hl] call Function92c76 ret nz .asm_92c72 call Function92c3a ret ; 92c76 Function92c76: ; 92c76 call Function92a12 ld a, [$c709] ld e, a ld a, [hli] cp e ret z ld a, [hli] cp e ret z ld a, [hl] cp e ret ; 92c86 Function92c86: ; 92c86 call Function92e94 jr nc, .asm_92c94 ld a, [$c717] ld hl, $c709 cp [hl] jr z, .asm_92ca5 .asm_92c94 ld a, [$c709] cp $ff jr z, .asm_92ca5 ld hl, $0009 add hl, bc ld a, [hl] and a jr z, .asm_92ca5 dec [hl] ret .asm_92ca5 call Function92c3a ret ; 92ca9 Function92ca9: ; 92ca9 call Function92f1d jr nc, .asm_92cbd ld hl, $c709 cp [hl] jr z, .asm_92cce ld hl, $0009 add hl, bc ld a, [hl] and a ret z dec [hl] ret .asm_92cbd ld a, [$c709] cp $ff jr z, .asm_92cce ld hl, $0009 add hl, bc ld a, [hl] and a jr z, .asm_92cce dec [hl] ret .asm_92cce call Function92c3a ret ; 92cd2 Function92cd2: ; 92cd2 call Function92e94 jr nc, .asm_92ce1 ld a, [LoweredStat] and a jr z, .asm_92ce1 call Function92c3a ret .asm_92ce1 ld a, $ba call Function9331e ld hl, $0000 add hl, bc inc [hl] ld hl, $000a add hl, bc ld [hl], $20 ld hl, $0005 add hl, bc ld [hl], $0 ret ; 92cf8 Function92cf8: ; 92cf8 ld hl, $000a add hl, bc ld a, [hl] and a jr z, .asm_92d02 dec [hl] ret .asm_92d02 ld a, $28 call Function9331e ld hl, $0000 add hl, bc inc [hl] ld hl, $0005 add hl, bc ld [hl], $8 ret ; 92d13 Function92d13: ; 92d13 call Function92e94 ret nc ld a, [LoweredStat] and a ret z call Function92c3a ret ; 92d20 Function92d20: ; 92d20 call Function92f1d ret c ld a, $ba call Function9331e call Function93316 ld hl, $0000 add hl, bc inc [hl] ld hl, $0005 add hl, bc ld [hl], $0 call Function92fc0 push bc push af ld de, $6068 ld a, $6 call Function3b2a ld hl, $000e add hl, bc pop af ld [hl], a pop bc xor a ld [$cf64], a Function92d4f: ; 92d4f ld a, [$cf64] cp $2 jr z, .asm_92d5b cp $1 jr z, .asm_92d62 ret .asm_92d5b call Function92f1d call Function92c3a ret .asm_92d62 ld hl, $0000 add hl, bc inc [hl] ld hl, $0005 add hl, bc ld [hl], $8 ret ; 92d6e Function92d6e: ; 92d6e xor a ld [$cf64], a ld hl, $0000 add hl, bc dec [hl] ld hl, $0005 add hl, bc ld [hl], $0 ret ; 92d7e Function92d7e: ; 92d7e call Function92f1d ret c ld a, $ba call Function9331e call Function93316 ld hl, $0000 add hl, bc inc [hl] ld hl, $0005 add hl, bc ld [hl], $0 push bc ld de, $6000 ld a, $7 call Function3b2a pop bc xor a ld [$cf64], a ret ; 92da4 Function92da4: ; 92da4 ld a, [$cf64] and a ret z ld hl, $0000 add hl, bc inc [hl] ld a, $2 ld [$cf64], a Function92db3: ; 92db3 ld a, [$cf64] cp $4 ret c ld hl, $0000 add hl, bc inc [hl] ld hl, $0005 add hl, bc ld [hl], $10 ld hl, $000a add hl, bc ld [hl], $11 Function92dca: ; 92dca ld hl, $000a add hl, bc ld a, [hl] and a jr z, .asm_92dd4 dec [hl] ret .asm_92dd4 call Function92f1d jr nc, .asm_92de5 and a jr nz, .asm_92de5 ld a, $5 ld [$cf64], a call Function92c3a ret .asm_92de5 ld hl, $0005 add hl, bc ld [hl], $0 ld hl, $0000 add hl, bc dec [hl] dec [hl] ld a, $1 ld [$cf64], a ret ; 92df7 Function92df7: ; 92df7 call Function92f1d ret c ld a, $ba call Function9331e call Function93316 ld hl, $0000 add hl, bc inc [hl] call Function92fc0 ld hl, $000a add hl, bc ld [hl], a Function92e10: ; 92e10 ld hl, $000a add hl, bc ld a, [hl] and a jr nz, .asm_92e1f call Function92f1d call Function92c3a ret .asm_92e1f dec [hl] ld hl, $0000 add hl, bc inc [hl] ld hl, $000b add hl, bc ld [hl], $20 ld hl, $0005 add hl, bc ld [hl], $0 Function92e31: ; 92e31 ld hl, $000b add hl, bc ld a, [hl] and a jr z, .asm_92e3b dec [hl] ret .asm_92e3b ld hl, $0000 add hl, bc dec [hl] ld hl, $0005 add hl, bc ld [hl], $8 ret ; 92e47 Function92e47: ; 92e47 call Function92f1d ret c ld a, $ba call Function9331e call Function93316 ld hl, $0005 add hl, bc ld [hl], $1 ld hl, $0000 add hl, bc inc [hl] ld hl, $000a add hl, bc ld [hl], $10 Function92e64: ; 92e64 ld hl, $000a add hl, bc ld a, [hl] and a jr z, .asm_92e73 dec [hl] .asm_92e6d ld a, $c call Function9331e ret .asm_92e73 ld a, [$c709] and a jr nz, .asm_92e88 call Function92f1d jr nc, .asm_92e6d and a jr nz, .asm_92e6d call Function92c3a call WaitSFX ret .asm_92e88 call Function92f1d jr c, .asm_92e6d call Function92c3a call WaitSFX ret ; 92e94 Function92e94: ; 92e94 xor a ld [WeatherCount], a ld [LoweredStat], a call Function92a12 call Function92fb4 ld a, [Weather] and 3 ld e, a ld d, 0 ld hl, Jumptable_92ebd add hl, de add hl, de ld a, [hli] ld h, [hl] ld l, a ld de, .asm_92eb6 push de jp [hl] .asm_92eb6 ld a, [WeatherCount] and a ret z scf ret ; 92ebd Jumptable_92ebd: ; 92ebd dw Function92ed4 dw Function92ed1 dw Function92ecb dw Function92ec5 ; 92ec5 Function92ec5: ; 92ec5 call Function92ee0 call Function92ef6 Function92ecb: ; 92ecb call Function92ed5 call Function92f01 Function92ed1: ; 92ed1 call Function92eeb Function92ed4: ; 92ed4 ret ; 92ed5 Function92ed5: ; 92ed5 ld hl, FailedMessage ld a, [EnemyScreens] cp [hl] call z, Function92f0c ret ; 92ee0 Function92ee0: ; 92ee0 ld hl, $c70f ld a, [EnemyScreens] cp [hl] call z, Function92f0c ret ; 92eeb Function92eeb: ; 92eeb ld hl, $c70f ld a, [$c701] cp [hl] call z, Function92f0c ret ; 92ef6 Function92ef6: ; 92ef6 ld hl, $c70f ld a, [PlayerLightScreenCount] cp [hl] call z, Function92f0c ret ; 92f01 Function92f01: ; 92f01 ld hl, $c710 ld a, [PlayerLightScreenCount] cp [hl] call z, Function92f0c ret ; 92f0c Function92f0c: ; 92f0c ld [$c717], a and a jr nz, .asm_92f17 ld a, $1 ld [LoweredStat], a .asm_92f17 ld a, $1 ld [WeatherCount], a ret ; 92f1d Function92f1d: ; 92f1d ld a, $ff ld [EffectFailed], a call Function92a12 call Function92fb4 ld a, [Weather] and 3 ld e, a ld d, 0 ld hl, Jumptable_92f48 add hl, de add hl, de ld a, [hli] ld h, [hl] ld l, a ld de, .asm_92f3d push de jp [hl] .asm_92f3d ld a, [EffectFailed] cp $ff jr nz, .asm_92f46 and a ret .asm_92f46 scf ret ; 92f48 Jumptable_92f48: ; 92f48 dw Function92f5f dw Function92f5c dw Function92f56 dw Function92f50 ; 92f50 Function92f50: ; 92f50 call Function92f70 call Function92f90 Function92f56: ; 92f56 call Function92f60 call Function92fa0 Function92f5c: ; 92f5c call Function92f80 Function92f5f: ; 92f5f ret ; 92f60 Function92f60: ; 92f60 ld hl, FailedMessage ld a, [EnemyScreens] cp [hl] ret nz ld hl, PlayerReflectCount cp [hl] call z, Function92fb0 ret ; 92f70 Function92f70: ; 92f70 ld hl, $c710 ld a, [EnemyScreens] cp [hl] ret nz ld hl, $c704 cp [hl] call z, Function92fb0 ret ; 92f80 Function92f80: ; 92f80 ld hl, $c70f ld a, [$c701] cp [hl] ret nz ld hl, $c704 cp [hl] call z, Function92fb0 ret ; 92f90 Function92f90: ; 92f90 ld hl, FailedMessage ld a, [PlayerLightScreenCount] cp [hl] ret nz ld hl, $c704 cp [hl] call z, Function92fb0 ret ; 92fa0 Function92fa0: ; 92fa0 ld hl, $c710 ld a, [PlayerLightScreenCount] cp [hl] ret nz ld hl, $c705 cp [hl] call z, Function92fb0 ret ; 92fb0 Function92fb0: ; 92fb0 ld [EffectFailed], a ret ; 92fb4 Function92fb4: ; 92fb4 ld de, FailedMessage ld a, [hli] ld [de], a inc de ld a, [hli] ld [de], a inc de ld a, [hl] ld [de], a ret ; 92fc0 Function92fc0: ; 92fc0 ld hl, $0003 add hl, bc ld a, [hl] push af push hl call Function92fcf pop hl pop af ld [hl], a ld a, e ret ; 92fcf Function92fcf: ; 92fcf ld a, [$c709] and a jr nz, .asm_92fe8 ld e, $0 .asm_92fd7 ld hl, $0003 add hl, bc inc [hl] inc e push de call Function92f1d pop de jr nc, .asm_92fd7 and a jr nz, .asm_92fd7 ret .asm_92fe8 call Random and $7 cp $4 jr c, .asm_92fe8 ld e, a .asm_92ff2 ld a, e inc e ld hl, $0003 add hl, bc add [hl] ld [hl], a push de call Function92f1d pop de jr c, .asm_92ff2 ret ; 93002 ; known jump sources: 9289f (24:689f) Function93002: ; 93002 (24:7002) ld a, [$c709] and a ret z ld hl, Unknown_93023 ld a, [ScriptVar] ; $c2dd and a jr z, .asm_93013 ld hl, Unknown_93031 .asm_93013 call Random ld c, a .asm_93017 ld a, [hli] cp c jr nc, .asm_9301e inc hl jr .asm_93017 .asm_9301e ld a, [hl] ld [$c709], a ret ; 93023 (24:7023) Unknown_93023: ; 93023 INCBIN "baserom.gbc", $93023, $93031 - $93023 ; 93031 Unknown_93031: ; 93031 INCBIN "baserom.gbc", $93031, $9303f - $93031 ; 9303f ; known jump sources: 9289c (24:689c) Function9303f: ; 9303f (24:703f) ld b, $14 ld a, [Weather] ; $c70a dec a jr z, asm_93066 dec a jr z, asm_9305a jr asm_9304e ; known jump sources: 929d9 (24:69d9) Function9304c: ; 9304c (24:704c) ld b, $23 asm_9304e: ; 9304e (24:704e) ld hl, $c4cb call Function93069 ld hl, $c56b call Function93069 asm_9305a: ; 9305a (24:705a) ld hl, $c4f3 call Function93069 ld hl, $c543 call Function93069 asm_93066: ; 93066 (24:7066) ld hl, $c51b ; known jump sources: 93051 (24:7051), 93057 (24:7057), 9305d (24:705d), 93063 (24:7063) Function93069: ; 93069 (24:7069) ld a, b ld [hl], a ld de, $d add hl, de ld [hl], a ld de, $7 add hl, de inc a ld [hl], a ld de, $d add hl, de ld [hl], a ret ; known jump sources: 9288e (24:688e), 930ab (24:70ab) Function9307c: ; 9307c (24:707c) ld hl, UnknownText_0x930c7 call PrintText ld hl, MenuDataHeader_0x930d6 call LoadMenuDataHeader call Function1d81 call Function1c17 ret c ld a, [$cfa9] ld b, a ld a, $4 sub b ld [Weather], a ; $c70a ld hl, Coins ; $d855 ld c, a ld a, [hli] and a jr nz, .asm_930ad ld a, [hl] cp c jr nc, .asm_930ad ld hl, UnknownText_0x930d1 call PrintText jr Function9307c .asm_930ad ld hl, $d856 ld a, [hl] sub c ld [hld], a jr nc, .asm_930b6 dec [hl] .asm_930b6 call WaitSFX ld de, $68 call PlaySFX ld hl, UnknownText_0x930cc call PrintText and a ret ; 930c7 (24:70c7) UnknownText_0x930c7: ; 0x930c7 ; Bet how many coins? text_jump UnknownText_0x1c5049 db "@" ; 0x930cc UnknownText_0x930cc: ; 0x930cc ; Start! text_jump UnknownText_0x1c505e db "@" ; 0x930d1 UnknownText_0x930d1: ; 0x930d1 ; Not enough coins. text_jump UnknownText_0x1c5066 db "@" ; 0x930d6 MenuDataHeader_0x930d6: ; 0x930d6 db $40 ; flags db 10, 14 ; start coords db 17, 19 ; end coords dw MenuData2_0x930de db 1 ; default option ; 0x930de MenuData2_0x930de: ; 0x930de db $80 ; flags db 3 ; items db " 3@" db " 2@" db " 1@" ; 0x930e9 ; known jump sources: 929df (24:69df) Function930e9: ; 930e9 (24:70e9) ld hl, Coins ; $d855 ld a, [hli] or [hl] jr nz, .asm_930fd ld hl, UnknownText_9311a call PrintText ld c, $3c call DelayFrames jr .asm_93118 .asm_930fd ld hl, UnknownText_9311f call PrintText call Function1d58 lb bc, 14, 12 call PlaceYesNoBox ld a, [$cfa9] dec a call Function1c17 and a jr nz, .asm_93118 and a ret .asm_93118 scf ret ; 9311a (24:711a) UnknownText_9311a: ; 9311a TX_FAR UnknownText_0x1c5079 db "@" UnknownText_9311f: ; 9311f TX_FAR UnknownText_0x1c5092 db "@" ; known jump sources: 92993 (24:6993) Function93124: ; 93124 (24:7124) ld a, [EffectFailed] ; $c70d cp $ff jr z, .asm_93151 srl a ld e, a ld d, 0 ld hl, .data_93145 add hl, de ld a, [hli] ld [PlayerUsedMoves], a ; $c712 ld e, a ld a, [hl] ld [$c711], a ld d, a callba Function105fe3 ret .data_93145 db $2c, $01 db $32, $00 db $06, $00 db $08, $00 db $0a, $00 db $0f, $00 .asm_93151 ld hl, $c711 xor a ld [hli], a ld [hl], a ret ; known jump sources: 9299e (24:699e) Function93158: ; 93158 (24:7158) ld a, [EffectFailed] ; $c70d cp $ff jr nz, .asm_9316c ld hl, UnknownText_0x931e0 call PrintText callba Function105fd0 ret .asm_9316c srl a ld e, a ld d, 0 ld hl, Unknown_93195 add hl, de add hl, de add hl, de ld de, StringBuffer2 ; $d086 ld bc, $4 call CopyBytes ld a, [hli] ld h, [hl] ld l, a ld de, .asm_93188 push de jp [hl] .asm_93188 ld hl, UnknownText_0x931b9 call PrintText callba Function105f9f ret ; 93195 (24:7195) Unknown_93195: ; 93195 db "300@" dw Function931e5 db "50@@" dw Function9320b db "6@@@" dw Function93214 db "8@@@" dw Function93214 db "10@@" dw Function93214 db "15@@" dw Function93214 ; 931b9 UnknownText_0x931b9: ; 0x931b9 start_asm ; 0x931ba Function931ba: ; 931ba ld a, [EffectFailed] add $25 ld [$c5a6], a inc a ld [$c5ba], a inc a ld [$c5a7], a inc a ld [$c5bb], a ld hl, $c606 ld [hl], $ee ld hl, UnknownText_0x931db inc bc inc bc inc bc inc bc ret ; 931db UnknownText_0x931db: ; 0x931db ; lined up! Won @ coins! text_jump UnknownText_0x1c509f db "@" ; 0x931e0 UnknownText_0x931e0: ; 0x931e0 ; Darn! text_jump UnknownText_0x1c50bb db "@" ; 0x931e5 Function931e5: ; 931e5 ld a, SFX_2ND_PLACE call Function9331e call WaitSFX ld a, [DefaultFlypoint] and a jr nz, .asm_931ff call Random and $14 ret z ld a, $ff ld [$c709], a ret .asm_931ff call Random and $1c ret z ld a, $ff ld [$c709], a ret ; 9320b Function9320b: ; 9320b ld a, SFX_3RD_PLACE call Function9331e call WaitSFX ret ; 93214 Function93214: ; 93214 ld a, SFX_PRESENT call Function9331e call WaitSFX ret ; 9321d ; no known jump sources Function9321d: ; 9321d (24:721d) ld hl, $b add hl, bc ld e, [hl] ld d, 0 ld hl, Jumptable_9322d add hl, de add hl, de ld a, [hli] ld h, [hl] ld l, a jp [hl] ; no known jump sources Jumptable_9322d: ; 9322d (24:722d) dw Function93233 dw Function93259 dw Function93289 ; no known jump sources Function93233: ; 93233 (24:7233) ld hl, $e add hl, bc ld a, [hl] and a jr nz, .asm_93247 ld a, $2 ld [$cf64], a ld hl, $0 add hl, bc ld [hl], $0 ret .asm_93247 dec [hl] ld hl, $b add hl, bc inc [hl] ld hl, $c add hl, bc ld [hl], $30 ld hl, $6 add hl, bc ld [hl], $0 ; no known jump sources Function93259: ; 93259 (24:7259) ld hl, $c add hl, bc ld a, [hl] cp $20 jr c, .asm_93273 dec [hl] ld e, a ld d, $70 callba Functionce765 ld a, e ld hl, $7 add hl, bc ld [hl], a ret .asm_93273 ld hl, $b add hl, bc inc [hl] ld hl, $d add hl, bc ld [hl], $2 ld a, $1 ld [$cf64], a ld a, $1e call Function9331e ret ; no known jump sources Function93289: ; 93289 (24:7289) ld hl, $6 add hl, bc ld a, [hl] inc [hl] inc [hl] cp $48 jr nc, .asm_932a3 and $3 ret nz ld hl, $d add hl, bc ld a, [hl] xor $ff inc a ld [hl], a ld [hSCY], a ; $ff00+$d0 ret .asm_932a3 ld hl, $b add hl, bc xor a ld [hl], a ld [hSCY], a ; $ff00+$d0 ret ; no known jump sources Function932ac: ; 932ac (24:72ac) ld hl, $b add hl, bc ld e, [hl] ld d, 0 ld hl, Jumptable_932bc add hl, de add hl, de ld a, [hli] ld h, [hl] ld l, a jp [hl] ; no known jump sources Jumptable_932bc: ; 932bc (24:72bc) dw Function932c2 dw Function932e0 dw Function932fc ; no known jump sources Function932c2: ; 932c2 (24:72c2) ld hl, $4 add hl, bc ld a, [hl] inc [hl] cp $68 jr z, .asm_932d6 and $f ret nz ld de, SFX_JUMP_OVER_LEDGE call PlaySFX ret .asm_932d6 ld hl, $b add hl, bc inc [hl] ld a, $1 ld [$cf64], a ; no known jump sources Function932e0: ; 932e0 (24:72e0) ld a, [$cf64] cp $2 jr z, .asm_932f1 cp $5 ret nz ld hl, $0 add hl, bc ld [hl], $0 ret .asm_932f1 ld hl, $b add hl, bc inc [hl] ld hl, $c add hl, bc ld [hl], $8 ; no known jump sources Function932fc: ; 932fc (24:72fc) ld hl, $c add hl, bc ld a, [hl] and a jr z, .asm_93306 dec [hl] ret .asm_93306 ld hl, $b add hl, bc dec [hl] push bc ld de, $606c ld a, $8 call Function3b2a pop bc ret ; 93316 (24:7316) Function93316: ; 93316 push bc ld c, $10 call DelayFrames pop bc ret ; 9331e ; known jump sources: 93285 (24:7285) Function9331e: ; 9331e (24:731e) push de ld e, a ld d, 0 call PlaySFX pop de ret ; 93327 (24:7327) Unknown_93327: ; 93327 db $00, $08, $14, $0c, $10, $00, $08, $14, $0c, $10, $04, $08, $14, $0c, $10, $00, $08, $14 Unknown_93339: ; 93339 db $00, $0c, $08, $10, $14, $04, $0c, $08, $10, $14, $04, $0c, $08, $10, $14, $00, $0c, $08 Unknown_9334b: ; 9334b db $00, $0c, $08, $10, $14, $0c, $08, $10, $14, $0c, $04, $08, $10, $14, $0c, $00, $0c, $08 ; 9335d SlotsTilemap: ; 9335d INCBIN "gfx/slots.tilemap" ; 9344d Slots1LZ: ; 9344d INCBIN "gfx/slots_1.2bpp.lz" ; 935cd Slots2LZ: ; 935cd INCBIN "gfx/slots_2.2bpp.lz" ; 9382d Slots3LZ: ; 9382d INCBIN "gfx/slots_3.2bpp.lz" ; 93a3d SECTION "bank28", ROMX, BANK[$28] INCBIN "baserom.gbc",$a0000,$a0c28 - $a0000 INCLUDE "text/buena.asm" SECTION "bank29", ROMX, BANK[$29] INCLUDE "text/phone/extra2.asm" SECTION "Tileset Data 5", ROMX, BANK[TILESETS_5] INCLUDE "tilesets/data_5.asm" SECTION "bank2E", ROMX, BANK[$2E] Functionb8000:: ; b8000 xor a ld [hBGMapMode], a callba Functionb800a ret ; b800a Functionb800a: ; b800a ld a, [MapGroup] ld b, a ld a, [MapNumber] ld c, a call GetWorldMapLocation ld [$c2d9], a call Functionb8089 jr z, .asm_b8024 call GetMapPermission cp $6 jr nz, .asm_b8029 .asm_b8024 ld a, $ff ld [$c2d9], a .asm_b8029 ld hl, $d83e bit 1, [hl] res 1, [hl] jr nz, .asm_b8054 call Functionb8064 jr z, .asm_b8054 ld a, [$c2d9] ld [$c2d8], a call Functionb8070 jr z, .asm_b8054 ld a, $3c ld [$c2da], a call Functionb80c6 call Functionb80d3 callba Function104303 ret .asm_b8054 ld a, [$c2d9] ld [$c2d8], a ld a, $90 ld [rWY], a ld [hWY], a xor a ld [hLCDStatCustom], a ret ; b8064 Functionb8064: ; b8064 ld a, [$c2d9] ld c, a ld a, [$c2d8] cp c ret z cp $0 ret ; b8070 Functionb8070: ; b8070 cp -1 ret z cp SPECIAL_MAP ret z cp RADIO_TOWER ret z cp LAV_RADIO_TOWER ret z cp UNDERGROUND ret z cp INDIGO_PLATEAU ret z cp POWER_PLANT ret z ld a, $1 and a ret ; b8089 Functionb8089: ; b8089 ld a, [MapGroup] cp GROUP_ROUTE_35_NATIONAL_PARK_GATE ret nz ld a, [MapNumber] cp MAP_ROUTE_35_NATIONAL_PARK_GATE ret z cp MAP_ROUTE_36_NATIONAL_PARK_GATE ret ; b8098 ; no known jump sources Functionb8098:: ; b8098 (2e:4098) ld hl, $c2da ld a, [hl] and a jr z, .asm_b80bc dec [hl] cp $3c ret z cp $3b jr nz, .asm_b80b3 call Functionb80d3 call Functionb80e1 callba Function104303 .asm_b80b3 ld a, $80 ld a, $70 ld [rWY], a ; $ff00+$4a ld [hWY], a ; $ff00+$d2 ret .asm_b80bc ld a, $90 ld [rWY], a ; $ff00+$4a ld [hWY], a ; $ff00+$d2 xor a ld [hLCDStatCustom], a ; $ff00+$c6 ret Functionb80c6: ; b80c6 ld de, GFX_f9344 ld hl, $9600 lb bc, BANK(GFX_f9344), $e call Get2bpp ret ; b80d3 Functionb80d3: ; b80d3 ld hl, TileMap ld b, $2 ld c, $12 call Functionb8115 call Functionb812f ret ; b80e1 ; known jump sources: b80aa (2e:40aa) Functionb80e1: ; b80e1 (2e:40e1) ld a, [$c2d9] ld e, a callba GetLandmarkName call Functionb8101 ld a, $14 sub c srl a ld b, $0 ld c, a ld hl, $c4c8 add hl, bc ld de, StringBuffer1 ; $d073 call PlaceString ret ; known jump sources: b80eb (2e:40eb) Functionb8101: ; b8101 (2e:4101) ld c, $0 push hl ld hl, StringBuffer1 ; $d073 .asm_b8107 ld a, [hli] cp $50 jr z, .asm_b8113 cp $25 jr z, .asm_b8107 inc c jr .asm_b8107 .asm_b8113 pop hl ret Functionb8115: ; b8115 ld de, $0939 add hl, de inc b inc b inc c inc c ld a, $87 .asm_b811f push bc push hl .asm_b8121 ld [hli], a dec c jr nz, .asm_b8121 pop hl ld de, $0014 add hl, de pop bc dec b jr nz, .asm_b811f ret ; b812f Functionb812f: ; b812f ld hl, TileMap ld a, $61 ld [hli], a ld a, $62 call Functionb8164 ld a, $64 ld [hli], a ld a, $65 ld [hli], a call Functionb815b ld a, $6b ld [hli], a ld a, $66 ld [hli], a call Functionb815b ld a, $6c ld [hli], a ld a, $67 ld [hli], a ld a, $68 call Functionb8164 ld a, $6a ld [hl], a ret ; b815b Functionb815b: ; b815b ld c, $12 ld a, $6d .asm_b815f ld [hli], a dec c jr nz, .asm_b815f ret ; b8164 Functionb8164: ; b8164 ld c, $5 jr .asm_b816a .asm_b8168 ld [hli], a ld [hli], a .asm_b816a inc a ld [hli], a ld [hli], a dec a dec c jr nz, .asm_b8168 ret ; b8172 Functionb8172: ; b8172 call GetMapScriptHeaderBank ld [MagikarpLength], a ld a, [XCoord] add $5 ld [$d1ed], a ld a, [YCoord] add $4 ld [$d1ec], a ld hl, $dc02 ld a, [hli] ld h, [hl] ld l, a ld a, [$dc01] and a jr z, .asm_b81dd .asm_b8194 ld [Buffer2], a push hl call Functionb81e2 ld e, a ld a, [$d1ec] sub e jr c, .asm_b81d2 cp $9 jr nc, .asm_b81d2 call Functionb81e2 ld d, a ld a, [$d1ed] sub d jr c, .asm_b81d2 cp $a jr nc, .asm_b81d2 call Functionb81e2 cp $7 jr nz, .asm_b81d2 ld a, [MagikarpLength] call GetFarHalfword ld a, [MagikarpLength] call GetFarHalfword ld d, h ld e, l ld b, $2 call EventFlagAction ld a, c and a jr z, .asm_b81df .asm_b81d2 pop hl ld bc, $0005 add hl, bc ld a, [Buffer2] dec a jr nz, .asm_b8194 .asm_b81dd xor a ret .asm_b81df pop hl scf ret ; b81e2 Functionb81e2: ; b81e2 ld a, [MagikarpLength] call GetFarByte inc hl ret ; b81ea Functionb81ea: ; b81ea callba Function1060ef xor a ld [$d22e], a ld [CurPartyLevel], a ld hl, $425e call GetTreeMonEncounterTable jr nc, .asm_b8214 call LoadTreeMonData jr nc, .asm_b8214 call Functionb83e5 jr nc, .asm_b8214 ld a, $8 ld [BattleType], a ld a, $1 ld [ScriptVar], a ret .asm_b8214 xor a ld [ScriptVar], a ret ; b8219 Functionb8219: ; b8219 ; get a RockMon encounter xor a ld [$d22e], a ld [CurPartyLevel], a ld hl, RockMonMaps call GetTreeMonEncounterTable jr nc, .quit call LoadTreeMonData jr nc, .quit ld a, 10 call Function2fb1 cp 4 jr nc, .quit call Functionb841f jr nc, .quit ret .quit xor a ret ; b823e db $05 ; ???? GetTreeMonEncounterTable: ; b823f ; Return carry and table id in a ; if MapGroup and MapNumber are in table hl ld a, [MapNumber] ld e, a ld a, [MapGroup] ld d, a .loop ld a, [hli] cp $ff jr z, .quit cp d jr nz, .skip2 ld a, [hli] cp e jr nz, .skip1 jr .end .skip2 inc hl .skip1 inc hl jr .loop .quit xor a ret .end ld a, [hl] scf ret ; b825e INCBIN "baserom.gbc",$b825e,$b82c5 - $b825e RockMonMaps: ; b82c5 db GROUP_CIANWOOD_CITY, MAP_CIANWOOD_CITY, 7 db GROUP_ROUTE_40, MAP_ROUTE_40, 7 db GROUP_DARK_CAVE_VIOLET_ENTRANCE, MAP_DARK_CAVE_VIOLET_ENTRANCE, 7 db GROUP_SLOWPOKE_WELL_B1F, MAP_SLOWPOKE_WELL_B1F, 7 db $ff ; end ; b82d2 LoadTreeMonData: ; b82d2 ; Return TreeMon pointer a in hl ; Return carry on success ; only 7 tables cp 8 jr nc, .quit and a jr z, .quit ld e, a ld d, 0 ld hl, TreeMonPointers add hl, de add hl, de ld a, [hli] ld h, [hl] ld l, a scf ret .quit xor a ret ; b82e8 TreeMonPointers: ; b82e8 ; seems to point to "normal" tree encounter data ; so only odd-numbered tables are used dw TreeMons1 ; filler dw TreeMons1 ; 1 dw TreeMons3 ; 2 dw TreeMons5 ; 3 dw TreeMons7 ; 4 dw TreeMons9 ; 5 dw TreeMons11 ; 6 dw RockMons ; 7 dw TreeMons1 ; filler ; b82fa ; structure: % species level TreeMons1: ; b82fa db 50, SPEAROW, 10 db 15, SPEAROW, 10 db 15, SPEAROW, 10 db 10, AIPOM, 10 db 5, AIPOM, 10 db 5, AIPOM, 10 db $ff ; end ; b830d TreeMons2 ; b830d ; unused db 50, SPEAROW, 10 db 15, HERACROSS, 10 db 15, HERACROSS, 10 db 10, AIPOM, 10 db 5, AIPOM, 10 db 5, AIPOM, 10 db $ff ; end ; b8320 TreeMons3: ; b8320 db 50, SPEAROW, 10 db 15, EKANS, 10 db 15, SPEAROW, 10 db 10, AIPOM, 10 db 5, AIPOM, 10 db 5, AIPOM, 10 db $ff ; end ; b8333 TreeMons4: ; b8333 ; unused db 50, SPEAROW, 10 db 15, HERACROSS, 10 db 15, HERACROSS, 10 db 10, AIPOM, 10 db 5, AIPOM, 10 db 5, AIPOM, 10 db $ff ; end ; b8346 TreeMons5: ; b8346 db 50, HOOTHOOT, 10 db 15, SPINARAK, 10 db 15, LEDYBA, 10 db 10, EXEGGCUTE, 10 db 5, EXEGGCUTE, 10 db 5, EXEGGCUTE, 10 db $ff ; end ; b8359 TreeMons6: ; b8359 ; unused db 50, HOOTHOOT, 10 db 15, PINECO, 10 db 15, PINECO, 10 db 10, EXEGGCUTE, 10 db 5, EXEGGCUTE, 10 db 5, EXEGGCUTE, 10 db $ff ; end ; b836c TreeMons7: ; b836c db 50, HOOTHOOT, 10 db 15, EKANS, 10 db 15, HOOTHOOT, 10 db 10, EXEGGCUTE, 10 db 5, EXEGGCUTE, 10 db 5, EXEGGCUTE, 10 db $ff ; end ; b837f TreeMons8: ; b837f ; unused db 50, HOOTHOOT, 10 db 15, PINECO, 10 db 15, PINECO, 10 db 10, EXEGGCUTE, 10 db 5, EXEGGCUTE, 10 db 5, EXEGGCUTE, 10 db $ff ; end ; b8392 TreeMons9: ; b8392 db 50, HOOTHOOT, 10 db 15, VENONAT, 10 db 15, HOOTHOOT, 10 db 10, EXEGGCUTE, 10 db 5, EXEGGCUTE, 10 db 5, EXEGGCUTE, 10 db $ff ; end ; b83a5 TreeMons10: ; b83a5 ; unused db 50, HOOTHOOT, 10 db 15, PINECO, 10 db 15, PINECO, 10 db 10, EXEGGCUTE, 10 db 5, EXEGGCUTE, 10 db 5, EXEGGCUTE, 10 db $ff ; end ; b83b8 TreeMons11: ; b83b8 db 50, HOOTHOOT, 10 db 15, PINECO, 10 db 15, PINECO, 10 db 10, NOCTOWL, 10 db 5, BUTTERFREE, 10 db 5, BEEDRILL, 10 db $ff ; end ; b83cb TreeMons12; b83cb ; unused db 50, HOOTHOOT, 10 db 15, CATERPIE, 10 db 15, WEEDLE, 10 db 10, HOOTHOOT, 10 db 5, METAPOD, 10 db 5, KAKUNA, 10 db $ff ; end ; b83de RockMons: ; b83de db 90, KRABBY, 15 db 10, SHUCKLE, 15 db $ff ; end ; b83e5 Functionb83e5: ; b83e5 push hl call Functionb8443 pop hl and a jr z, .asm_b83f6 cp $1 jr z, .asm_b8400 cp $2 jr z, .asm_b840b ret .asm_b83f6 ld a, $a call Function2fb1 and a jr nz, Functionb843b jr Functionb841f .asm_b8400 ld a, $a call Function2fb1 cp $5 jr nc, Functionb843b jr Functionb841f .asm_b840b ld a, $a call Function2fb1 cp $8 jr nc, Functionb843b jr .asm_b8416 .asm_b8416 ld a, [hli] cp $ff jr nz, .asm_b8416 call Functionb841f ret ; b841f Functionb841f: ; b841f ; Read a TreeMons table. ld a, 100 call Function2fb1 .asm_b8424 sub [hl] jr c, .asm_b842c inc hl inc hl inc hl jr .asm_b8424 .asm_b842c ld a, [hli] cp $ff jr z, Functionb843b ld a, [hli] ld [$d22e], a ld a, [hl] ld [CurPartyLevel], a scf ret Functionb843b: ; b843b xor a ld [$d22e], a ld [CurPartyLevel], a ret ; b8443 Functionb8443: ; b8443 call Functionb8466 ld [Buffer1], a call Functionb849d ld [Buffer2], a ld c, a ld a, [Buffer1] sub c jr z, .asm_b8463 jr nc, .asm_b845a add $a .asm_b845a cp $5 jr c, .asm_b8460 xor a ret .asm_b8460 ld a, $1 ret .asm_b8463 ld a, $2 ret ; b8466 Functionb8466: ; b8466 call GetFacingTileCoord ld hl, $0000 ld c, e ld b, $0 ld a, d and a jr z, .asm_b8477 .asm_b8473 add hl, bc dec a jr nz, .asm_b8473 .asm_b8477 add hl, bc ld c, d add hl, bc ld a, h ld [hProduct], a ld a, l ld [hMultiplicand], a ld a, $5 ld [hMultiplier], a ld b, $2 call Divide ld a, [$ffb5] ld [hProduct], a ld a, [$ffb6] ld [hMultiplicand], a ld a, $a ld [hMultiplier], a ld b, $2 call Divide ld a, [hMultiplier] ret ; b849d Functionb849d: ; b849d ld a, [PlayerID] ld [hProduct], a ld a, [$d47c] ld [hMultiplicand], a ld a, $a ld [hMultiplier], a ld b, $2 call Divide ld a, [hMultiplier] ret ; b84b3 Functionb84b3: ; b84b3 ld a, [rVBK] push af ld a, $1 ld [rVBK], a ld de, FishingGFX ld a, [PlayerGender] bit 0, a jr z, .asm_b84c7 ld de, KrisFishingGFX .asm_b84c7 ld hl, $8020 call Functionb84e3 ld hl, $8060 call Functionb84e3 ld hl, $80a0 call Functionb84e3 ld hl, $8fc0 call Functionb84e3 pop af ld [rVBK], a ret ; b84e3 Functionb84e3: ; b84e3 ld bc, $2e02 push de call Get2bpp pop de ld hl, $0020 add hl, de ld d, h ld e, l ret ; b84f2 FishingGFX: ; b84f2 INCBIN "baserom.gbc",$b84f2,$b8582 - $b84f2 ; b8582 KrisFishingGFX: ; b8582 INCBIN "baserom.gbc",$b8582,$b8612 - $b8582 ; b8612 ld a, [DefaultFlypoint] ; $d002 cp $8 jr nc, .asm_b862b ld a, [StatusFlags2] ; $d84d bit 0, a jr z, .asm_b862b call IsInJohto and a jr nz, .asm_b862b ld a, $7 ld [DefaultFlypoint], a ; $d002 .asm_b862b ld a, [DefaultFlypoint] ; $d002 ld e, a ld d, $0 ld hl, $463a add hl, de add hl, de ld a, [hli] ld h, [hl] ld l, a jp [hl] ; no known jump sources Jumptable_b863a: ; b863a (2e:463a) dw Functionb8742 dw Functionb8a46 dw Functionb8b35 dw Functionb8bdc dw Functionb8f12 dw Functionb8cbf dw Functionb8b50 dw Functionb8e72 dw Functionb8ef7 dw Functionb8f00 dw Functionb8f09 dw Functionb8752 dw Functionb875a dw Functionb8762 dw Functionb8810 dw Functionb8818 dw Functionb883e dw Functionb8854 dw Functionb88d9 dw Functionb8a6c dw Functionb8aa4 dw Functionb8aac dw Functionb8ab4 dw Functionb8b40 dw Functionb8b48 dw Functionb8b63 dw Functionb8b6b dw Functionb8b7d dw Functionb8b8f dw Functionb8b5b dw Functionb8bf5 dw Functionb8bfd dw Functionb8c05 dw Functionb8c0d dw Functionb8c15 dw Functionb8c1d dw Functionb8c25 dw Functionb8c3e dw Functionb8c46 dw Functionb8c4e dw Functionb8c56 dw Functionb8c5e dw Functionb8c6e dw Functionb8c76 dw Functionb8cca dw Functionb8cd2 dw Functionb8cf2 dw Functionb8d56 dw Functionb8ded dw Functionb8e28 dw Functionb8e7d dw Functionb8e85 dw Functionb8e8d dw Functionb8e95 dw Functionb8e9d dw Functionb8ea5 dw Functionb8ead dw Functionb8eb5 dw Functionb8ebd dw Functionb896e dw Functionb8994 dw Functionb89a9 dw Functionb89c6 dw Functionb89d7 dw Functionb8f3f dw Functionb8f47 dw Functionb8f55 dw Functionb909c dw Functionb90a4 dw Functionb90ac dw Functionb90c5 dw Functionb90d2 dw Functionb90da dw Functionb90e2 dw Functionb90ea dw Functionb90f2 dw Functionb90fa dw Functionb9102 dw Functionb910a dw Functionb9112 dw Functionb911a dw Functionb9122 dw Functionb912a dw Functionb9152 dw Functionb8728 dw Functionb8abc dw Functionb8ac4 dw Functionb8acc ; known jump sources: b87e9 (2e:47e9), b87ef (2e:47ef), b8aa1 (2e:4aa1), b8aa9 (2e:4aa9), b8ab1 (2e:4ab1), b8ab9 (2e:4ab9), b8ac1 (2e:4ac1), b8ac9 (2e:4ac9), b8ad1 (2e:4ad1), b8e4f (2e:4e4f), b9226 (2e:5226) Functionb86ea: ; b86ea (2e:46ea) ld [$d003], a ld hl, $d00c ld a, [StartFlypoint] ; $d005 cp $2 jr nc, .asm_b870a inc hl ld [hl], $0 inc a ld [StartFlypoint], a ; $d005 cp $2 jr nz, .asm_b870a ld bc, $c5e1 call Function13e5 jr .asm_b870d .asm_b870a call PrintTextBoxText .asm_b870d ld a, $54 ld [DefaultFlypoint], a ; $d002 ld a, $64 ld [$d004], a ret ; b8718 (2e:4718) INCBIN "baserom.gbc",$b8718,$b8728 - $b8718 ; no known jump sources Functionb8728: ; b8728 (2e:4728) ld hl, $d004 ld a, [hl] and a jr z, .asm_b8731 dec [hl] ret .asm_b8731 ld a, [$d003] ld [DefaultFlypoint], a ; $d002 ld a, [StartFlypoint] ; $d005 cp $1 call nz, Functionb8a0b jp Functionb8a17 ; no known jump sources Functionb8742: ; b8742 (2e:4742) ld a, $5 ld [EndFlypoint], a ; $d006 call Functionb91eb ld hl, $4820 ld a, $b jp Functionb9221 ; no known jump sources Functionb8752: ; b8752 (2e:4752) ld hl, $4825 ld a, $c jp Functionb9221 ; no known jump sources Functionb875a: ; b875a (2e:475a) ld hl, $482a ld a, $d jp Functionb9221 ; known jump sources: b8769 (2e:4769) Functionb8762: ; b8762 (2e:4762) call Random and $1f cp $f jr nc, Functionb8762 ld hl, $47f2 ld c, a ld b, $0 add hl, bc add hl, bc ld b, [hl] inc hl ld c, [hl] push bc ld hl, $65e9 .asm_b877a ld a, $a call GetFarByte cp $ff jr z, .asm_b87ec inc hl cp b jr nz, .asm_b878f ld a, $a call GetFarByte cp c jr z, .asm_b8796 .asm_b878f dec hl ld de, $2f add hl, de jr .asm_b877a .asm_b8796 inc hl inc hl inc hl inc hl .asm_b879a call Random and $3 cp $3 jr z, .asm_b879a ld bc, $e call AddNTimes .asm_b87a9 call Random and $7 cp $2 jr c, .asm_b87a9 cp $5 jr nc, .asm_b87a9 ld e, a ld d, $0 add hl, de add hl, de inc hl ld a, $a call GetFarByte ld [$d265], a ld [CurPartySpecies], a ; $d108 call GetPokemonName ld hl, StringBuffer1 ; $d073 ld de, $d050 ld bc, $b call CopyBytes pop bc call GetWorldMapLocation ld e, a callba GetLandmarkName ld hl, $482f call Functionb91dc ld a, $e jp Functionb86ea .asm_b87ec pop bc ld a, $0 jp Functionb86ea ; b87f2 (2e:47f2) INCBIN "baserom.gbc",$b87f2,$b8810 - $b87f2 ; no known jump sources Functionb8810: ; b8810 (2e:4810) ld hl, $4834 ld a, $f jp Functionb9221 ; no known jump sources Functionb8818: ; b8818 (2e:4818) ld hl, $4839 ld a, $10 jp Functionb9221 ; b8820 (2e:4820) INCBIN "baserom.gbc",$b8820,$b883e - $b8820 ; no known jump sources Functionb883e: ; b883e (2e:483e) ld a, [CurPartySpecies] ; $d108 ld [$d265], a call GetPokemonName ld hl, $484f ld a, $11 jp Functionb9221 ; b884f (2e:484f) INCBIN "baserom.gbc",$b884f,$b8854 - $b884f ; no known jump sources Functionb8854: ; b8854 (2e:4854) call Random and $f ld e, a ld d, $0 ld hl, $4869 add hl, de add hl, de ld a, [hli] ld h, [hl] ld l, a ld a, $12 jp Functionb9221 ; b8869 (2e:4869) INCBIN "baserom.gbc",$b8869,$b88d9 - $b8869 ; no known jump sources Functionb88d9: ; b88d9 (2e:48d9) call Random and $f ld e, a ld d, $0 ld hl, $48fe add hl, de add hl, de ld a, [hli] ld h, [hl] ld l, a ld a, [EndFlypoint] ; $d006 dec a ld [EndFlypoint], a ; $d006 ld a, $d jr nz, .asm_b88fb ld a, $5 ld [EndFlypoint], a ; $d006 ld a, $3b .asm_b88fb jp Functionb9221 ; b88fe (2e:48fe) INCBIN "baserom.gbc",$b88fe,$b896e - $b88fe ; no known jump sources Functionb896e: ; b896e (2e:496e) callba Function91868 ld hl, $4993 call PrintText call WaitBGMap ld hl, $498e call PrintText ld a, $3c ld [DefaultFlypoint], a ; $d002 ld a, $64 ld [$d004], a ret ; b898e (2e:498e) INCBIN "baserom.gbc",$b898e,$b8994 - $b898e ; no known jump sources Functionb8994: ; b8994 (2e:4994) ld hl, $d004 dec [hl] ret nz ld hl, $c5c1 ld de, $49a4 ld a, $3d jp Functionb8a00 ; b89a4 (2e:49a4) INCBIN "baserom.gbc",$b89a4,$b89a9 - $b89a4 ; no known jump sources Functionb89a9: ; b89a9 (2e:49a9) ld hl, $d004 dec [hl] ret nz ld hl, $c5e1 ld de, $49b9 ld a, $3e jp Functionb8a00 ; b89b9 (2e:49b9) INCBIN "baserom.gbc",$b89b9,$b89c6 - $b89b9 ; no known jump sources Functionb89c6: ; b89c6 (2e:49c6) ld hl, $d004 dec [hl] ret nz ld hl, $c5ec ld de, $49d6 ld a, $3f jp Functionb8a00 ; b89d6 (2e:49d6) INCBIN "baserom.gbc",$b89d6,$b89d7 - $b89d6 ; no known jump sources Functionb89d7: ; b89d7 (2e:49d7) ld hl, $d004 dec [hl] ret nz ld de, $1d callab Function91854 ld hl, $49ff call PrintText ld a, $d ld [$d003], a xor a ld [StartFlypoint], a ; $d005 ld a, $54 ld [DefaultFlypoint], a ; $d002 ld a, $a ld [$d004], a ret ; b89ff (2e:49ff) INCBIN "baserom.gbc",$b89ff,$b8a00 - $b89ff ; known jump sources: b89a1 (2e:49a1), b89b6 (2e:49b6), b89d3 (2e:49d3) Functionb8a00: ; b8a00 (2e:4a00) ld [DefaultFlypoint], a ; $d002 ld a, $64 ld [$d004], a jp PlaceString ; known jump sources: b873c (2e:473c) Functionb8a0b: ; b8a0b (2e:4a0b) ld hl, $c5cc ld de, $c5a4 ld bc, $28 jp CopyBytes ; known jump sources: b873f (2e:473f) Functionb8a17: ; b8a17 (2e:4a17) ld hl, $c5cd ld bc, $12 ld a, $7f call ByteFill ld hl, $c5e1 ld bc, $12 ld a, $7f jp ByteFill ; known jump sources: b8a7d (2e:4a7d) Functionb8a2d: ; b8a2d (2e:4a2d) push hl push de ld a, [CurPartySpecies] ; $d108 dec a rlca rlca and $3 ld hl, $4a42 ld d, $0 ld e, a add hl, de ld a, [hl] pop de pop hl ret ; b8a42 (2e:4a42) INCBIN "baserom.gbc",$b8a42,$b8a46 - $b8a42 ; no known jump sources Functionb8a46: ; b8a46 (2e:4a46) call Functionb91eb .asm_b8a49 call Random cp $fb jr nc, .asm_b8a49 ld c, a push bc ld a, c call CheckCaughtMon pop bc jr z, .asm_b8a49 inc c ld a, c ld [CurPartySpecies], a ; $d108 ld [$d265], a call GetPokemonName ld hl, $4b30 ld a, $13 jp Functionb9221 ; no known jump sources Functionb8a6c: ; b8a6c (2e:4a6c) ld a, [CurPartySpecies] ; $d108 dec a ld hl, $4378 ld c, a ld b, $0 add hl, bc add hl, bc ld a, $11 call GetFarHalfword call Functionb8a2d push af push hl call Functionb8af3 dec hl ld [hl], $57 ld hl, $d26b call Functionb91dc pop hl pop af call Functionb8b11 inc hl inc hl inc hl inc hl ld a, l ld [$d26b], a ld a, h ld [$d26c], a ld a, $14 jp Functionb86ea ; no known jump sources Functionb8aa4: ; b8aa4 (2e:4aa4) call Functionb8ad4 ld a, $15 jp Functionb86ea ; no known jump sources Functionb8aac: ; b8aac (2e:4aac) call Functionb8ad4 ld a, $16 jp Functionb86ea ; no known jump sources Functionb8ab4: ; b8ab4 (2e:4ab4) call Functionb8ad4 ld a, $55 jp Functionb86ea ; no known jump sources Functionb8abc: ; b8abc (2e:4abc) call Functionb8ad4 ld a, $56 jp Functionb86ea ; no known jump sources Functionb8ac4: ; b8ac4 (2e:4ac4) call Functionb8ad4 ld a, $57 jp Functionb86ea ; no known jump sources Functionb8acc: ; b8acc (2e:4acc) call Functionb8ad4 ld a, $1 jp Functionb86ea ; known jump sources: b8aa4 (2e:4aa4), b8aac (2e:4aac), b8ab4 (2e:4ab4), b8abc (2e:4abc), b8ac4 (2e:4ac4), b8acc (2e:4acc) Functionb8ad4: ; b8ad4 (2e:4ad4) ld a, [$d26b] ld l, a ld a, [$d26c] ld h, a ld a, [$d26d] push af push hl call Functionb8af3 dec hl ld [hl], $57 ld hl, $d26b call Functionb91dc pop hl pop af call Functionb8b11 ret ; known jump sources: b8a82 (2e:4a82), b8ae1 (2e:4ae1) Functionb8af3: ; b8af3 (2e:4af3) ld de, $d26d ld bc, $13 call FarCopyBytes ld hl, $d26b ld [hl], $0 inc hl ld [hl], $4f inc hl .asm_b8b05 ld a, [hli] cp $50 ret z cp $4e ret z cp $5f ret z jr .asm_b8b05 ; known jump sources: b8a90 (2e:4a90), b8aef (2e:4aef) Functionb8b11: ; b8b11 (2e:4b11) ld d, a .asm_b8b12 ld a, d call GetFarByte inc hl cp $50 jr z, .asm_b8b23 cp $4e jr z, .asm_b8b23 cp $5f jr nz, .asm_b8b12 .asm_b8b23 ld a, l ld [$d26b], a ld a, h ld [$d26c], a ld a, d ld [$d26d], a ret ; b8b30 (2e:4b30) INCBIN "baserom.gbc",$b8b30,$b8b35 - $b8b30 ; no known jump sources Functionb8b35: ; b8b35 (2e:4b35) call Functionb8b90 ld hl, $4baa ld a, $17 jp Functionb9221 ; no known jump sources Functionb8b40: ; b8b40 (2e:4b40) ld hl, $4baf ld a, $18 jp Functionb9221 ; no known jump sources Functionb8b48: ; b8b48 (2e:4b48) ld hl, $4bb4 ld a, $19 jp Functionb9221 ; no known jump sources Functionb8b50: ; b8b50 (2e:4b50) call Functionb8b90 ld hl, $4bb9 ld a, $1d jp Functionb9221 ; no known jump sources Functionb8b5b: ; b8b5b (2e:4b5b) ld hl, $4bbe ld a, $19 jp Functionb9221 ; no known jump sources Functionb8b63: ; b8b63 (2e:4b63) ld hl, $4bc3 ld a, $1a jp Functionb9221 ; no known jump sources Functionb8b6b: ; b8b6b (2e:4b6b) call GetWeekday and $1 ld hl, $4bc8 jr z, .asm_b8b78 ld hl, $4bcd .asm_b8b78 ld a, $1b jp Functionb9221 ; no known jump sources Functionb8b7d: ; b8b7d (2e:4b7d) call GetWeekday and $1 ld hl, $4bd2 jr z, .asm_b8b8a ld hl, $4bd7 .asm_b8b8a ld a, $1c jp Functionb9221 ; no known jump sources Functionb8b8f: ; b8b8f (2e:4b8f) ret ; known jump sources: b8b35 (2e:4b35), b8b50 (2e:4b50) Functionb8b90: ; b8b90 (2e:4b90) call Function1052 call PrintText ld de, $51 call GetWeekday and $1 jr z, .asm_b8ba3 ld de, $50 .asm_b8ba3 callab Function91854 ret ; b8baa (2e:4baa) INCBIN "baserom.gbc",$b8baa,$b8bdc - $b8baa ; no known jump sources Functionb8bdc: ; b8bdc (2e:4bdc) call Functionb91eb callab Functionc434 jr nc, .asm_b8bed callab Functionc422 .asm_b8bed ld hl, $4c7e ld a, $1e jp Functionb9221 ; no known jump sources Functionb8bf5: ; b8bf5 (2e:4bf5) ld hl, $4c83 ld a, $1f jp Functionb9221 ; no known jump sources Functionb8bfd: ; b8bfd (2e:4bfd) ld hl, $4c88 ld a, $20 jp Functionb9221 ; no known jump sources Functionb8c05: ; b8c05 (2e:4c05) ld hl, $4c8d ld a, $21 jp Functionb9221 ; no known jump sources Functionb8c0d: ; b8c0d (2e:4c0d) ld hl, $4c92 ld a, $22 jp Functionb9221 ; no known jump sources Functionb8c15: ; b8c15 (2e:4c15) ld hl, $4c97 ld a, $23 jp Functionb9221 ; no known jump sources Functionb8c1d: ; b8c1d (2e:4c1d) ld hl, $4c9c ld a, $24 jp Functionb9221 ; no known jump sources Functionb8c25: ; b8c25 (2e:4c25) ld hl, StringBuffer1 ; $d073 ld de, $dc9f ld bc, $8205 call PrintNum ld a, $50 ld [$d078], a ld hl, $4ca1 ld a, $25 jp Functionb9221 ; no known jump sources Functionb8c3e: ; b8c3e (2e:4c3e) ld hl, $4ca6 ld a, $26 jp Functionb9221 ; no known jump sources Functionb8c46: ; b8c46 (2e:4c46) ld hl, $4c9c ld a, $27 jp Functionb9221 ; no known jump sources Functionb8c4e: ; b8c4e (2e:4c4e) ld hl, $4ca1 ld a, $28 jp Functionb9221 ; no known jump sources Functionb8c56: ; b8c56 (2e:4c56) ld hl, $4cab ld a, $29 jp Functionb9221 ; no known jump sources Functionb8c5e: ; b8c5e (2e:4c5e) ld hl, $4cb0 call Random and a ld a, $3 jr nz, .asm_b8c6b ld a, $2a .asm_b8c6b jp Functionb9221 ; no known jump sources Functionb8c6e: ; b8c6e (2e:4c6e) ld hl, $4cb5 ld a, $2b jp Functionb9221 ; no known jump sources Functionb8c76: ; b8c76 (2e:4c76) ld hl, $4cba ld a, $3 jp Functionb9221 ; b8c7e (2e:4c7e) INCBIN "baserom.gbc",$b8c7e,$b8cbf - $b8c7e ; no known jump sources Functionb8cbf: ; b8cbf (2e:4cbf) call Functionb91eb ld hl, $4ce3 ld a, $2c jp Functionb9221 ; no known jump sources Functionb8cca: ; b8cca (2e:4cca) ld hl, $4ce8 ld a, $2d jp Functionb9221 ; no known jump sources Functionb8cd2: ; b8cd2 (2e:4cd2) ld hl, $4ced call Random cp $7b ld a, $2e jr c, .asm_b8ce0 ld a, $30 .asm_b8ce0 jp Functionb9221 ; b8ce3 (2e:4ce3) INCBIN "baserom.gbc",$b8ce3,$b8cf2 - $b8ce3 ; known jump sources: b8cfa (2e:4cfa), b8d1e (2e:4d1e) Functionb8cf2: ; b8cf2 (2e:4cf2) call Random and $7f inc a cp $43 jr nc, Functionb8cf2 push af ld hl, $4d3e ld a, [StatusFlags] ; $d84c bit 6, a jr z, .asm_b8d14 ld hl, $4d43 ld a, [KantoBadges] ; $d858 cp $ff jr nz, .asm_b8d14 ld hl, $4d4b .asm_b8d14 pop af ld c, a ld de, $1 push bc call IsInArray pop bc jr c, Functionb8cf2 push bc callab Function3952d ld de, StringBuffer1 ; $d073 call CopyName1 pop bc ld b, $1 callab Function3994c ld hl, $4d51 ld a, $2f jp Functionb9221 ; b8d3e (2e:4d3e) INCBIN "baserom.gbc",$b8d3e,$b8d56 - $b8d3e ; no known jump sources Functionb8d56: ; b8d56 (2e:4d56) call Random and $f ld e, a ld d, $0 ld hl, $4d7d add hl, de add hl, de ld a, [hli] ld h, [hl] ld l, a call Random cp $a ld a, $5 jr c, .asm_b8d7a call Random cp $7b ld a, $2e jr c, .asm_b8d7a ld a, $30 .asm_b8d7a jp Functionb9221 ; b8d7d (2e:4d7d) INCBIN "baserom.gbc",$b8d7d,$b8ded - $b8d7d ; known jump sources: b8df2 (2e:4df2) Functionb8ded: ; b8ded (2e:4ded) call Random cp $9 jr nc, Functionb8ded ld hl, $4e11 ld c, a ld b, $0 add hl, bc add hl, bc ld b, [hl] inc hl ld c, [hl] call GetWorldMapLocation ld e, a callba GetLandmarkName ld hl, $4e23 ld a, $31 jp Functionb9221 ; b8e11 (2e:4e11) INCBIN "baserom.gbc",$b8e11,$b8e28 - $b8e11 ; no known jump sources Functionb8e28: ; b8e28 (2e:4e28) call Random and $f ld e, a ld d, $0 ld hl, $4e52 add hl, de add hl, de ld a, [hli] ld h, [hl] ld l, a call Functionb91dc call Random cp $a ld a, $5 jr c, .asm_b8e4f call Random cp $7b ld a, $2e jr c, .asm_b8e4f ld a, $30 .asm_b8e4f jp Functionb86ea ; b8e52 (2e:4e52) INCBIN "baserom.gbc",$b8e52,$b8e72 - $b8e52 ; no known jump sources Functionb8e72: ; b8e72 (2e:4e72) call Functionb91eb ld hl, $4ec5 ld a, $32 jp Functionb9221 ; no known jump sources Functionb8e7d: ; b8e7d (2e:4e7d) ld hl, $4eca ld a, $33 jp Functionb9221 ; no known jump sources Functionb8e85: ; b8e85 (2e:4e85) ld hl, $4ecf ld a, $34 jp Functionb9221 ; no known jump sources Functionb8e8d: ; b8e8d (2e:4e8d) ld hl, $4ed4 ld a, $35 jp Functionb9221 ; no known jump sources Functionb8e95: ; b8e95 (2e:4e95) ld hl, $4ed9 ld a, $36 jp Functionb9221 ; no known jump sources Functionb8e9d: ; b8e9d (2e:4e9d) ld hl, $4ede ld a, $37 jp Functionb9221 ; no known jump sources Functionb8ea5: ; b8ea5 (2e:4ea5) ld hl, $4ee3 ld a, $38 jp Functionb9221 ; no known jump sources Functionb8ead: ; b8ead (2e:4ead) ld hl, $4ee8 ld a, $39 jp Functionb9221 ; no known jump sources Functionb8eb5: ; b8eb5 (2e:4eb5) ld hl, $4eed ld a, $3a jp Functionb9221 ; no known jump sources Functionb8ebd: ; b8ebd (2e:4ebd) ld hl, $4ef2 ld a, $7 jp Functionb9221 ; b8ec5 (2e:4ec5) INCBIN "baserom.gbc",$b8ec5,$b8ef7 - $b8ec5 ; no known jump sources Functionb8ef7: ; b8ef7 (2e:4ef7) call Functionb91eb ld a, $1 ld [StartFlypoint], a ; $d005 ret ; no known jump sources Functionb8f00: ; b8f00 (2e:4f00) call Functionb91eb ld a, $1 ld [StartFlypoint], a ; $d005 ret ; no known jump sources Functionb8f09: ; b8f09 (2e:4f09) call Functionb91eb ld a, $1 ld [StartFlypoint], a ; $d005 ret ; known jump sources: b915e (2e:515e) Functionb8f12: ; b8f12 (2e:4f12) call Functionb9169 jp nc, Functionb8f22 ld a, [StartFlypoint] ; $d005 and a jp z, Functionb912a jp Functionb90c5 ; known jump sources: b8f15 (2e:4f15) Functionb8f22: ; b8f22 (2e:4f22) call Functionb91eb ld a, [hBGMapMode] ; $ff00+$d4 push af xor a ld [hBGMapMode], a ; $ff00+$d4 ld de, $5171 ld hl, $c556 call PlaceString pop af ld [hBGMapMode], a ; $ff00+$d4 ld hl, $5182 ld a, $40 jp Functionb9221 ; no known jump sources Functionb8f3f: ; b8f3f (2e:4f3f) ld hl, $5187 ld a, $41 jp Functionb9221 ; no known jump sources Functionb8f47: ; b8f47 (2e:4f47) call Functionb9169 ld hl, $518c jp c, Functionb90b9 ld a, $42 jp Functionb9221 ; no known jump sources Functionb8f55: ; b8f55 (2e:4f55) call Functionb9169 jp c, Functionb90c5 ld a, [$dc4a] ld hl, $dc1f bit 7, [hl] jr nz, .asm_b8f83 .asm_b8f65 call Random and $f cp $b jr nc, .asm_b8f65 swap a ld e, a .asm_b8f71 call Random and $3 cp $3 jr nc, .asm_b8f71 add e ld [$dc4a], a ld hl, $dc1f set 7, [hl] .asm_b8f83 ld c, a call Functionb8f8f ld hl, $5191 ld a, $43 jp Functionb9221 Functionb8f8f: ; b8f8f ld a, c swap a and $f ld hl, $4ff9 ld d, $0 ld e, a add hl, de add hl, de ld a, [hli] ld h, [hl] ld l, a ld a, [hli] ld b, a push hl inc hl ld a, c and $f ld c, a push hl ld hl, $4fb8 ld e, b add hl, de add hl, de ld a, [hli] ld h, [hl] ld l, a pop de call _hl_ pop hl ld c, [hl] ret ; b8fb8 ; no known jump sources Jumptable_b8fb8: ; b8fb8 (2e:4fb8) dw Functionb8fc0 dw Functionb8fc7 dw Functionb8fce dw Functionb8fde ; no known jump sources Functionb8fc0: ; b8fc0 (2e:4fc0) call Functionb8fd5 call GetPokemonName ret ; no known jump sources Functionb8fc7: ; b8fc7 (2e:4fc7) call Functionb8fd5 call GetItemName ret ; no known jump sources Functionb8fce: ; b8fce (2e:4fce) call Functionb8fd5 call GetMoveName ret ; known jump sources: b8fc0 (2e:4fc0), b8fc7 (2e:4fc7), b8fce (2e:4fce) Functionb8fd5: ; b8fd5 (2e:4fd5) ld h, $0 ld l, c add hl, de ld a, [hl] ld [$d265], a ret ; no known jump sources Functionb8fde: ; b8fde (2e:4fde) ld a, c and a jr z, .asm_b8feb .asm_b8fe2 ld a, [de] inc de cp $50 jr nz, .asm_b8fe2 dec c jr nz, .asm_b8fe2 .asm_b8feb ld hl, StringBuffer1 ; $d073 .asm_b8fee ld a, [de] inc de ld [hli], a cp $50 jr nz, .asm_b8fee ld de, StringBuffer1 ; $d073 ret ; b8ff9 (2e:4ff9) INCBIN "baserom.gbc",$b8ff9,$b909c - $b8ff9 ; no known jump sources Functionb909c: ; b909c (2e:509c) ld hl, $5196 ld a, $44 jp Functionb9221 ; no known jump sources Functionb90a4: ; b90a4 (2e:50a4) ld hl, $519b ld a, $45 jp Functionb9221 ; no known jump sources Functionb90ac: ; b90ac (2e:50ac) call Functionb9169 ld hl, $51a0 jr c, Functionb90b9 ld a, $4 jp Functionb9221 ; known jump sources: b8f4d (2e:4f4d), b90b2 (2e:50b2) Functionb90b9: ; b90b9 (2e:50b9) push hl ld hl, $dc1f res 7, [hl] pop hl ld a, $46 jp Functionb9221 ; known jump sources: b8f1f (2e:4f1f), b8f58 (2e:4f58) Functionb90c5: ; b90c5 (2e:50c5) ld hl, $dc1f res 7, [hl] ld hl, $51d2 ld a, $47 jp Functionb9221 ; no known jump sources Functionb90d2: ; b90d2 (2e:50d2) ld hl, $51a5 ld a, $48 jp Functionb9221 ; no known jump sources Functionb90da: ; b90da (2e:50da) ld hl, $51aa ld a, $49 jp Functionb9221 ; no known jump sources Functionb90e2: ; b90e2 (2e:50e2) ld hl, $51af ld a, $4a jp Functionb9221 ; no known jump sources Functionb90ea: ; b90ea (2e:50ea) ld hl, $51b4 ld a, $4b jp Functionb9221 ; no known jump sources Functionb90f2: ; b90f2 (2e:50f2) ld hl, $51b9 ld a, $4c jp Functionb9221 ; no known jump sources Functionb90fa: ; b90fa (2e:50fa) ld hl, $51be ld a, $4d jp Functionb9221 ; no known jump sources Functionb9102: ; b9102 (2e:5102) ld hl, $51c3 ld a, $4e jp Functionb9221 ; no known jump sources Functionb910a: ; b910a (2e:510a) ld hl, $51c8 ld a, $4f jp Functionb9221 ; no known jump sources Functionb9112: ; b9112 (2e:5112) ld hl, $51cd ld a, $50 jp Functionb9221 ; no known jump sources Functionb911a: ; b911a (2e:511a) ld hl, $51d2 ld a, $51 jp Functionb9221 ; no known jump sources Functionb9122: ; b9122 (2e:5122) ld hl, $51d2 ld a, $52 jp Functionb9221 ; known jump sources: b8f1c (2e:4f1c) Functionb912a: ; b912a (2e:512a) ld a, [hBGMapMode] ; $ff00+$d4 push af callba Function9189d callba Function918a9 pop af ld [hBGMapMode], a ; $ff00+$d4 ld hl, $dc1f res 7, [hl] ld a, $4 ld [DefaultFlypoint], a ; $d002 xor a ld [StartFlypoint], a ; $d005 ld hl, $51d7 ld a, $53 jp Functionb9221 ; no known jump sources Functionb9152: ; b9152 (2e:5152) ld a, $4 ld [DefaultFlypoint], a ; $d002 xor a ld [StartFlypoint], a ; $d005 call Functionb9169 jp nc, Functionb8f12 ld hl, $51d7 ld a, $53 jp Functionb9221 ; known jump sources: b8f12 (2e:4f12), b8f47 (2e:4f47), b8f55 (2e:4f55), b90ac (2e:50ac), b915b (2e:515b) Functionb9169: ; b9169 (2e:5169) call UpdateTime ld a, [hHours] ; $ff00+$94 cp $12 ret ; b9171 (2e:5171) INCBIN "baserom.gbc",$b9171,$b91dc - $b9171 ; known jump sources: b87e4 (2e:47e4), b8a8b (2e:4a8b), b8aea (2e:4aea), b8e38 (2e:4e38), b9222 (2e:5222) Functionb91dc: ; b91dc (2e:51dc) ld a, [hl] cp $16 jp z, Function3a90 ld de, $d00c ld bc, $28 jp CopyBytes ; known jump sources: b8747 (2e:4747), b8a46 (2e:4a46), b8bdc (2e:4bdc), b8cbf (2e:4cbf), b8e72 (2e:4e72), b8ef7 (2e:4ef7), b8f00 (2e:4f00), b8f09 (2e:4f09), b8f22 (2e:4f22) Functionb91eb: ; b91eb (2e:51eb) ld a, [StartFlypoint] ; $d005 and a ret nz call Function1052 call PrintText ld hl, $520b ld a, [DefaultFlypoint] ; $d002 ld c, a ld b, $0 add hl, bc add hl, bc ld e, [hl] inc hl ld d, [hl] callab Function91854 ret ; b920b (2e:520b) INCBIN "baserom.gbc",$b920b,$b9221 - $b920b ; known jump sources: b874f (2e:474f), b8757 (2e:4757), b875f (2e:475f), b8815 (2e:4815), b881d (2e:481d), b884c (2e:484c), b8866 (2e:4866), b88fb (2e:48fb), b8a69 (2e:4a69), b8b3d (2e:4b3d), b8b45 (2e:4b45), b8b4d (2e:4b4d), b8b58 (2e:4b58), b8b60 (2e:4b60), b8b68 (2e:4b68), b8b7a (2e:4b7a), b8b8c (2e:4b8c), b8bf2 (2e:4bf2), b8bfa (2e:4bfa), b8c02 (2e:4c02), b8c0a (2e:4c0a), b8c12 (2e:4c12), b8c1a (2e:4c1a), b8c22 (2e:4c22), b8c3b (2e:4c3b), b8c43 (2e:4c43), b8c4b (2e:4c4b), b8c53 (2e:4c53), b8c5b (2e:4c5b), b8c6b (2e:4c6b), b8c73 (2e:4c73), b8c7b (2e:4c7b), b8cc7 (2e:4cc7), b8ccf (2e:4ccf), b8ce0 (2e:4ce0), b8d3b (2e:4d3b), b8d7a (2e:4d7a), b8e0e (2e:4e0e), b8e7a (2e:4e7a), b8e82 (2e:4e82), b8e8a (2e:4e8a), b8e92 (2e:4e92), b8e9a (2e:4e9a), b8ea2 (2e:4ea2), b8eaa (2e:4eaa), b8eb2 (2e:4eb2), b8eba (2e:4eba), b8ec2 (2e:4ec2), b8f3c (2e:4f3c), b8f44 (2e:4f44), b8f52 (2e:4f52), b8f8c (2e:4f8c), b90a1 (2e:50a1), b90a9 (2e:50a9), b90b6 (2e:50b6), b90c2 (2e:50c2), b90cf (2e:50cf), b90d7 (2e:50d7), b90df (2e:50df), b90e7 (2e:50e7), b90ef (2e:50ef), b90f7 (2e:50f7), b90ff (2e:50ff), b9107 (2e:5107), b910f (2e:510f), b9117 (2e:5117), b911f (2e:511f), b9127 (2e:5127), b914f (2e:514f), b9166 (2e:5166) Functionb9221: ; b9221 (2e:5221) push af call Functionb91dc pop af jp Functionb86ea Functionb9229: ; b9229 ld a, [CurPartyMon] ld hl, $a600 ld bc, $002f call AddNTimes ld d, h ld e, l Functionb9237: ; b9237 push de call WhiteBGMap call ClearSprites call ClearTileMap call DisableLCD call Functione5f pop de push de ld a, $0 call GetSRAMBank callba Function1de5c8 call CloseSRAM ld a, c ld de, $65e6 or a jr z, .asm_b9268 ld de, $69e6 sub $3 jr c, .asm_b9268 ld de, $6de6 .asm_b9268 ld hl, VTiles1 ld bc, $7780 call Get1bpp pop de call Functionb92b8 call EnableLCD call WaitBGMap ld a, [$d1ec] ld e, a callba Function8cb4 call Function32f9 xor a ld [hJoyPressed], a call Functionb929a call WhiteBGMap call DisableLCD call Functione51 jp EnableLCD ; b929a Functionb929a: ; b929a .asm_b929a call GetJoypad ld a, [hJoyPressed] and $b jr z, .asm_b929a and $8 jr nz, .asm_b92a8 ret .asm_b92a8 ld a, [$cf63] push af callab Function845d4 pop af ld [$cf63], a jr .asm_b929a ; b92b8 Functionb92b8: ; b92b8 ld h, d ld l, e push hl ld a, $0 call GetSRAMBank ld de, $002b add hl, de ld a, [hli] ld [Buffer1], a ld a, [hli] ld [Buffer2], a ld a, [hli] ld [CurPartySpecies], a ld b, [hl] call CloseSRAM ld hl, $52f8 ld c, $0 .asm_b92d9 ld a, [hli] cp b jr z, .asm_b92ea cp $ff jr z, .asm_b92e6 inc c inc hl inc hl jr .asm_b92d9 .asm_b92e6 ld hl, $52f8 inc hl .asm_b92ea ld a, c ld [$d1ec], a ld a, [hli] ld h, [hl] ld l, a ld de, $52f7 pop bc push de jp [hl] ; b92f7 INCBIN "baserom.gbc",$b92f7,$b9e76 - $b92f7 ItemIsMail: ; b9e76 ld a, d ld hl, .items ld de, 1 jp IsInArray ; b9e80 .items db FLOWER_MAIL db SURF_MAIL db LITEBLUEMAIL db PORTRAITMAIL db LOVELY_MAIL db EON_MAIL db MORPH_MAIL db BLUESKY_MAIL db MUSIC_MAIL db MIRAGE_MAIL db $ff ; b9e8b SECTION "bank2F", ROMX, BANK[$2F] INCLUDE "engine/std_scripts.asm" INCBIN "baserom.gbc",$bd0d0,$be66a - $bd0d0 UnknownScript_0xbe66a:: ; 0xbe66a faceplayer trainerstatus $2 iftrue $6698 loadtrainerdata playrammusic 2jump UnknownScript_0xbe68a ; 0xbe675 UnknownScript_0xbe675:: ; 0xbe675 loadtrainerdata playrammusic showemote $0, $fe, 30 3callasm Function831e applymovement2 $d007 writepersonxy $fe faceperson $0, $fe 2jump UnknownScript_0xbe68a ; 0xbe68a UnknownScript_0xbe68a: ; 0xbe68a loadfont trainertext $0 closetext loadmovesprites loadtrainerdata startbattle returnafterbattle trainerstatus $1 loadvar $d04d, $ff scripttalkafter ; 0xbe699 SECTION "bank30", ROMX, BANK[$30] INCLUDE "gfx/overworld/sprites_1.asm" SECTION "bank31", ROMX, BANK[$31] INCLUDE "gfx/overworld/sprites_2.asm" SECTION "bank32", ROMX, BANK[$32] INCLUDE "battle/bg_effects.asm" INCLUDE "battle/anims.asm" Functioncbcdd: ; cbcdd call Functioncbce5 ld a, [hCGB] and a ret nz ret ; cbce5 Functioncbce5: ; cbce5 ld a, [hCGB] and a jr nz, .asm_cbd06 ld a, [TimeOfDayPal] and $3 cp $3 ld a, $0 jr z, .asm_cbcf7 ld a, $aa .asm_cbcf7 call DmgToCgbBGPals ld c, $4 call DelayFrames callba _UpdateTimePals ret .asm_cbd06 ld a, [rSVBK] push af ld a, $5 ld [rSVBK], a ld hl, BGPals ld c, $20 .asm_cbd12 ld a, $bc ld [hli], a ld a, $7e ld [hli], a dec c jr nz, .asm_cbd12 pop af ld [rSVBK], a ld a, $1 ld [hCGBPalUpdate], a ld c, $4 call DelayFrames callba _UpdateTimePals ret ; cbd2e TheEndGFX:: ; cbd2e INCBIN "gfx/credits/theend.w64.2bpp" ; cbe2e SECTION "bank33", ROMX, BANK[$33] Functioncc000: ; cc000 call WhiteBGMap call ClearTileMap call ClearSprites call Functione58 ld hl, Options ld a, [hl] push af set 4, [hl] hlcoord 0, 0 ld b, 4 ld c, 13 call TextBox hlcoord 0, 6 ld b, 4 ld c, 13 call TextBox hlcoord 2, 0 ld de, .Stock call PlaceString hlcoord 2, 6 ld de, .This call PlaceString hlcoord 5, 4 ld de, .Health call PlaceString hlcoord 5, 10 ld de, .Health call PlaceString ld a, [$df9c] ld [$d265], a call GetPokemonName ld de, StringBuffer1 hlcoord 1, 2 call PlaceString ld h, b ld l, c ld a, [$dfbb] ld [TempMonLevel], a call PrintLevel ld de, EnemyMonNick hlcoord 1, 8 call PlaceString ld h, b ld l, c ld a, [EnemyMonLevel] ld [TempMonLevel], a call PrintLevel hlcoord 11, 4 ld de, $dfc0 ld bc, $0203 call PrintNum hlcoord 11, 10 ld de, EnemyMonMaxHPHi call PrintNum ld hl, SwitchMonText call PrintText pop af ld [Options], a call WaitBGMap ld b, $8 call GetSGBLayout call Function32f9 ret ; cc0a7 .Health db "HEALTH@" .Stock db " STOCK ", $4a, " @" .This db " THIS ", $4a, " @" SwitchMonText: ; cc0c2 ; Switch #MON? text_jump UnknownText_0x1c10cf db "@" ; cc0c7 Functioncc0c7: ; cc0c7 call GetPokemonName ld hl, AlreadyCaughtText jp PrintText ; cc0d0 AlreadyCaughtText: ; 0xcc0d0 ; You already caught a @ . text_jump UnknownText_0x1c10dd db "@" ; 0xcc0d5 Predef2F: Predef38: Predef39: ; cc0d5 ret ; cc0d6 INCLUDE "battle/anim_commands.asm" INCLUDE "battle/anim_objects.asm" SECTION "Pic Animations 1", ROMX, BANK[$34] INCLUDE "gfx/pics/animation.asm" ; Pic animations are assembled in 3 parts: ; Top-level animations: ; frame #, duration: Frame 0 is the original pic (no change) ; setrepeat #: Sets the number of times to repeat ; dorepeat #: Repeats from command # (starting from 0) ; end ; Bitmasks: ; Layered over the pic to designate affected tiles ; Frame definitions: ; first byte is the bitmask used for this frame ; following bytes are tile ids mapped to each bit in the mask ; Main animations (played everywhere) INCLUDE "gfx/pics/anim_pointers.asm" INCLUDE "gfx/pics/anims.asm" ; Extra animations, appended to the main animation ; Used in the status screen (blinking, tail wags etc.) INCLUDE "gfx/pics/extra_pointers.asm" INCLUDE "gfx/pics/extras.asm" ; Unown has its own animation data despite having an entry in the main tables INCLUDE "gfx/pics/unown_anim_pointers.asm" INCLUDE "gfx/pics/unown_anims.asm" INCLUDE "gfx/pics/unown_extra_pointers.asm" INCLUDE "gfx/pics/unown_extras.asm" ; Bitmasks INCLUDE "gfx/pics/bitmask_pointers.asm" INCLUDE "gfx/pics/bitmasks.asm" INCLUDE "gfx/pics/unown_bitmask_pointers.asm" INCLUDE "gfx/pics/unown_bitmasks.asm" SECTION "Pic Animations 2", ROMX, BANK[$35] INCLUDE "gfx/pics/frame_pointers.asm" INCLUDE "gfx/pics/kanto_frames.asm" SECTION "bank36", ROMX, BANK[$36] FontInversed: INCBIN "gfx/misc/font_inversed.w128.1bpp" SECTION "Pic Animations 3", ROMX, BANK[$36] INCLUDE "gfx/pics/johto_frames.asm" INCLUDE "gfx/pics/unown_frame_pointers.asm" INCLUDE "gfx/pics/unown_frames.asm" SECTION "Tileset Data 6", ROMX, BANK[TILESETS_6] INCLUDE "tilesets/data_6.asm" SECTION "bank38", ROMX, BANK[$38] Functione0000: ; e0000 push de xor a call GetSRAMBank ld hl, $a000 ld bc, $0000 .asm_e000b push bc push hl push bc ld de, DefaultFlypoint call Functione004e call Functione0057 ld hl, Unknown_e008b pop bc add hl, bc add hl, bc ld a, [hli] ld e, a ld d, [hl] ld hl, $d012 call Functione004e pop hl ld bc, $0010 add hl, bc pop bc inc c ld a, c cp $31 jr c, .asm_e000b ld hl, OverworldMap ld de, $a000 ld bc, $0310 call CopyBytes pop hl ld de, $a000 ld c, $31 ld a, [hROMBank] ld b, a call Get2bpp call CloseSRAM ret ; e004e Functione004e: ; e004e ld c, $10 .asm_e0050 ld a, [hli] ld [de], a inc de dec c jr nz, .asm_e0050 ret ; e0057 Functione0057: ; e0057 ld hl, $d012 ld e, $80 ld d, $8 .asm_e005e push hl ld hl, DefaultFlypoint call Functione0078 pop hl ld a, b ld [hli], a push hl ld hl, $d003 call Functione0078 pop hl ld a, b ld [hli], a srl e dec d jr nz, .asm_e005e ret ; e0078 Functione0078: ; e0078 ld b, $0 ld c, $8 .asm_e007c ld a, [hli] and e jr z, .asm_e0083 scf jr .asm_e0084 .asm_e0083 and a .asm_e0084 rr b inc hl dec c jr nz, .asm_e007c ret ; e008b Unknown_e008b: ; e008b INCBIN "baserom.gbc",$e008b,$e00ed - $e008b ; no known jump sources Functione00ed: ; e00ed (38:40ed) ret ; e00ee (38:40ee) Functione00ee: ; e00ee (38:40ee) ld hl, Options ; $cfcc set 4, [hl] call WhiteBGMap call ClearTileMap call ClearSprites ld de, $0 call PlayMusic call DelayFrame call DisableLCD call Functione51 call Functione5f ld hl, $4d16 ld de, $9000 call Decompress ld hl, $4ea8 ld de, $93e0 call Decompress ld hl, $4cdb ld de, $8000 call Decompress ld hl, $4cf6 ld de, $8ef0 ld bc, $10 call CopyBytes ld hl, $4d06 ld de, $8f50 ld bc, $10 call CopyBytes call Functione0521 call Functione04c1 call Functione0c37 call EnableLCD call Function3200 ld a, $e4 call DmgToCgbBGPals ld de, $e4e4 call DmgToCgbObjPals call DelayFrame xor a ld [$cf63], a ld a, $2 ld [$cf64], a ld [$cf65], a ld de, MUSIC_GAME_CORNER call PlayMusic .asm_e0170 ld a, [$cf63] bit 7, a jr nz, .asm_e017c call Functione0191 jr .asm_e0170 .asm_e017c call WaitSFX ld de, SFX_QUIT_SLOTS call PlaySFX call WaitSFX call WhiteBGMap ld hl, Options ; $cfcc res 4, [hl] ret ; known jump sources: e0177 (38:4177) Functione0191: ; e0191 (38:4191) ld a, [$cf63] ld e, a ld d, 0 ld hl, Jumptable_e01a0 add hl, de add hl, de ld a, [hli] ld h, [hl] ld l, a jp [hl] ; e01a0 (38:41a0) Jumptable_e01a0: ; e01a0 dw Functione01b5 dw Functione01d2 dw Functione0217 dw Functione02b7 dw Functione02da dw Functione0314 dw Functione031e dw Functione0360 ; e01b0 Functione01b0: ; e01b0 ld hl, $cf63 inc [hl] ret ; e01b5 Functione01b5: ; e01b5 ld hl, UnknownText_0xe01cd call Functione0489 call YesNoBox jr c, .asm_e01c7 call Functione0366 call Functione01b0 ret .asm_e01c7 ld a, $7 ld [$cf63], a ret ; e01cd UnknownText_0xe01cd: ; 0xe01cd ; Play with three coins? text_jump UnknownText_0x1c5793 db "@" ; 0xe01d2 Functione01d2: ; e01d2 ld a, [Coins] ld h, a ld a, [Coins + 1] ld l, a ld a, h and a jr nz, .asm_e01ef ld a, l cp 3 jr nc, .asm_e01ef ld hl, UnknownText_0xe0212 call Functione0489 ld a, $7 ld [$cf63], a ret .asm_e01ef ld de, -3 add hl, de ld a, h ld [Coins], a ld a, l ld [$d856], a ld de, SFX_TRANSACTION call PlaySFX xor a ld [hBGMapMode], a call Functione049c ld a, $1 ld [hBGMapMode], a call WaitSFX call Functione01b0 ret ; e0212 UnknownText_0xe0212: ; 0xe0212 ; Not enough coins… text_jump UnknownText_0x1c57ab db "@" ; 0xe0217 Functione0217: ; e0217 xor a ld [hBGMapMode], a ld hl, TileMap ld bc, $0c09 call Functione04e5 ld hl, $c4a9 ld bc, $0014 ld a, [$c6e8] call AddNTimes ld [hl], $f5 ld a, $1 ld [hBGMapMode], a ld c, $14 call DelayFrames ld hl, $c4a2 call Functione03c1 ld a, $1 ld [hBGMapMode], a ld c, $14 call DelayFrames ld hl, $c51a call Functione03c1 call WaitBGMap ld hl, UnknownText_0xe02b2 call Functione0489 xor a ld [$cf66], a .asm_e025c call Functiona57 ld a, [$ffa9] and $1 jr nz, .asm_e027c ld de, SFX_KINESIS call PlaySFX call Functione0849 ld c, $4 call DelayFrames ld hl, $cf66 ld a, [hl] xor $1 ld [hl], a jr .asm_e025c .asm_e027c ld de, SFX_SLOT_MACHINE_START call PlaySFX ld a, $3 .asm_e0284 push af call Functione0849 ld c, $4 call DelayFrames call ClearSprites ld c, $4 call DelayFrames pop af dec a jr nz, .asm_e0284 ld hl, $cf66 ld a, [hl] push af xor $1 ld [hl], a call Functione03ac ld bc, $0605 call Functione04e5 pop af ld [$cf66], a call Functione01b0 ret ; e02b2 UnknownText_0xe02b2: ; 0xe02b2 ; Choose a card. text_jump UnknownText_0x1c57be db "@" ; 0xe02b7 Functione02b7: ; e02b7 ld hl, UnknownText_0xe02d5 call Functione0489 .asm_e02bd call Functiona57 ld a, [$ffa9] and $1 jr nz, .asm_e02d1 call Functione089c call Functione0960 call DelayFrame jr .asm_e02bd .asm_e02d1 call Functione01b0 ret ; e02d5 UnknownText_0xe02d5: ; 0xe02d5 ; Place your bet. text_jump UnknownText_0x1c57ce db "@" ; 0xe02da Functione02da: ; e02da xor a ld [$ff9b], a call Functione0960 call WaitSFX ld de, SFX_CHOOSE_A_CARD call PlaySFX call WaitSFX ld a, [$c6e8] ld e, a ld d, $0 ld hl, PlayerSDefLevel add hl, de add hl, de ld a, [$cf66] ld e, a add hl, de ld a, [hl] ld [CurEnemyMoveNum], a ld e, a ld hl, $c6ea add hl, de ld [hl], $1 call Functione03ac call Functione03ec call Function3200 call Functione01b0 ret ; e0314 Functione0314: ; e0314 call Functione0637 call Functiona80 call Functione01b0 ret ; e031e Functione031e: ; e031e call ClearSprites ld hl, UnknownText_0xe0356 call Functione0489 call YesNoBox jr nc, .asm_e0330 call Functione01b0 ret .asm_e0330 ld a, [$c6e8] inc a ld [$c6e8], a cp $c jr c, .asm_e034d call Functione04c1 ld a, $1 ld [hBGMapMode], a call Functione0366 ld hl, UnknownText_0xe035b call PrintText jr .asm_e0350 .asm_e034d call Functione0534 .asm_e0350 ld a, $1 ld [$cf63], a ret ; e0356 UnknownText_0xe0356: ; 0xe0356 ; Want to play again? text_jump UnknownText_0x1c57df db "@" ; 0xe035b UnknownText_0xe035b: ; 0xe035b ; The cards have been shuffled. text_jump UnknownText_0x1c57f4 db "@" ; 0xe0360 Functione0360: ; e0360 ld hl, $cf63 set 7, [hl] ret ; e0366 Functione0366: ; e0366 ld hl, PlayerSDefLevel ld bc, $0018 xor a call ByteFill ld de, PlayerSDefLevel ld c, $17 .asm_e0375 call Random and $1f cp $18 jr nc, .asm_e0375 ld l, a ld h, $0 add hl, de ld a, [hl] and a jr nz, .asm_e0375 ld [hl], c dec c jr nz, .asm_e0375 xor a ld [$c6e8], a ld hl, $c6ea ld bc, $0018 call ByteFill ret ; e0398 Functione0398: ; e0398 ld hl, $0000 ld bc, $0006 ld a, [$cf64] call AddNTimes ld b, $0 ld a, [$cf65] ld c, a add hl, bc ret ; e03ac Functione03ac: ; e03ac ld a, [$cf66] and a jr nz, .asm_e03ba ld hl, $c4a2 ld bc, $1018 jr .asm_e03c0 .asm_e03ba ld hl, $c51a ld bc, $4018 .asm_e03c0 ret ; e03c1 Functione03c1: ; e03c1 xor a ld [hBGMapMode], a ld de, $43ce ld bc, $0605 call Functione04f7 ret ; e03ce INCBIN "baserom.gbc", $e03ce, $e03ec - $e03ce Functione03ec: ; e03ec xor a ld [hBGMapMode], a push hl push hl ld de, $443b ld bc, $0605 call Functione04f7 ld a, [CurEnemyMoveNum] ld e, a ld d, $0 ld hl, $4459 add hl, de add hl, de ld a, [hli] ld e, a ld d, [hl] pop hl ld bc, $0017 add hl, bc ld [hl], e ld bc, $0012 add hl, bc ld a, d ld de, $0014 ld b, $3 .asm_e0418 push hl ld c, $3 .asm_e041b ld [hli], a inc a dec c jr nz, .asm_e041b pop hl add hl, de dec b jr nz, .asm_e0418 pop hl ld a, [hCGB] and a ret z ld de, $0939 add hl, de ld a, [CurEnemyMoveNum] and $3 inc a ld bc, $0605 call Functione04e7 ret ; e043b INCBIN "baserom.gbc", $e043b, $e0489 - $e043b Functione0489: ; e0489 push hl ld hl, $c590 ld b, $4 ld c, $12 call TextBox pop hl call PrintTextBoxText call Functione049c ret ; e049c Functione049c: ; e049c ld hl, $c5d5 ld b, $1 ld c, $9 call TextBox ld hl, $c5ea ld de, $44bc call PlaceString ld hl, $c5ef ld de, Coins ld bc, $8204 call PrintNum ret ; e04bc INCBIN "baserom.gbc", $e04bc, $e04c1 - $e04bc ; known jump sources: e0144 (38:4144) Functione04c1: ; e04c1 (38:44c1) xor a ld [hBGMapMode], a ; $ff00+$d4 ld hl, TileMap ; $c4a0 (aliases: SpritesEnd) ld bc, $168 ld a, $29 call ByteFill ld hl, $c4a9 ld de, $510c ld bc, $c0b call Functione04f7 ld hl, $c590 ld bc, $412 call TextBox ret ; e04e5 (38:44e5) Functione04e5: ; e04e5 ld a, $29 ; known jump sources: e04f4 (38:44f4), e0c4d (38:4c4d), e0c58 (38:4c58), e0c63 (38:4c63), e0c6e (38:4c6e), e0c79 (38:4c79) Functione04e7: ; e04e7 (38:44e7) push bc push hl .asm_e04e9 ld [hli], a dec c jr nz, .asm_e04e9 pop hl ld bc, $14 add hl, bc pop bc dec b jr nz, Functione04e7 ret ; known jump sources: e04d8 (38:44d8), e0506 (38:4506) Functione04f7: ; e04f7 (38:44f7) push bc push hl .asm_e04f9 ld a, [de] inc de ld [hli], a dec c jr nz, .asm_e04f9 pop hl ld bc, $14 add hl, bc pop bc dec b jr nz, Functione04f7 ret ; e0509 (38:4509) Functione0509: ; e0509 ld de, Sprites ld a, [hli] .asm_e050d push af ld a, [hli] add b ld [de], a inc de ld a, [hli] add c ld [de], a inc de ld a, [hli] ld [de], a inc de ld a, [hli] ld [de], a inc de pop af dec a jr nz, .asm_e050d ret ; e0521 ; known jump sources: e0141 (38:4141) Functione0521: ; e0521 (38:4521) ld de, $8f60 ld hl, $8f62 ld bc, $9e call CopyBytes ld hl, $8ffe xor a ld [hli], a ld [hl], a ret ; e0534 (38:4534) Functione0534: ; e0534 xor a ld [hBGMapMode], a ld a, [CurEnemyMoveNum] ld e, a ld d, $0 and $3 ld c, a ld b, $0 ld a, e and $1c srl a add $53 ld l, a ld a, $0 adc $45 ld h, a ld a, [hli] ld h, [hl] ld l, a jp [hl] ; e0553 INCBIN "baserom.gbc", $e0553, $e0637 - $e0553 Functione0637: ; e0637 call Functione0398 add hl, hl ld de, Jumptable_e0643 add hl, de ld a, [hli] ld h, [hl] ld l, a jp [hl] ; e0643 Jumptable_e0643: ; e0643 dw Functione06a3 dw Functione06a3 dw Functione06a6 dw Functione06a6 dw Functione06b0 dw Functione06b0 dw Functione06a3 dw Functione06a3 dw Functione06ec dw Functione06f6 dw Functione0702 dw Functione070e dw Functione06c2 dw Functione0722 dw Functione0770 dw Functione0774 dw Functione0778 dw Functione077c dw Functione06c2 dw Functione072c dw Functione0780 dw Functione0784 dw Functione0788 dw Functione078c dw Functione06cc dw Functione0738 dw Functione0790 dw Functione0794 dw Functione0798 dw Functione079c dw Functione06cc dw Functione0744 dw Functione07a0 dw Functione07a4 dw Functione07a8 dw Functione07ac dw Functione06d8 dw Functione0750 dw Functione07b0 dw Functione07b4 dw Functione07b8 dw Functione07bc dw Functione06d8 dw Functione075c dw Functione07c0 dw Functione07c4 dw Functione07c8 dw Functione07cc ; e06a3 Functione06a3: ; e06a3 jp Functione07db ; e06a6 Functione06a6: ; e06a6 ld a, [CurEnemyMoveNum] and $2 jp nz, Functione07db jr Functione06ba Functione06b0: ; e06b0 ld a, [CurEnemyMoveNum] and $2 jr nz, Functione06ba jp Functione07db Functione06ba: ; e06ba ld c, $6 ld de, SFX_2ND_PLACE jp Functione07eb ; e06c2 Functione06c2: ; e06c2 ld a, [CurEnemyMoveNum] and $18 jr z, Functione06e4 jp Functione07db Functione06cc: ; e06cc ld a, [CurEnemyMoveNum] and $18 cp $8 jr z, Functione06e4 jp Functione07db Functione06d8: ; e06d8 ld a, [CurEnemyMoveNum] and $18 cp $10 jr z, Functione06e4 jp Functione07db Functione06e4: ; e06e4 ld c, $9 ld de, SFX_2ND_PLACE jp Functione07eb ; e06ec Functione06ec: ; e06ec ld a, [CurEnemyMoveNum] and $3 jr z, Functione071a jp Functione07db Functione06f6: ; e06f6 ld a, [CurEnemyMoveNum] and $3 cp $1 jr z, Functione071a jp Functione07db Functione0702: ; e0702 ld a, [CurEnemyMoveNum] and $3 cp $2 jr z, Functione071a jp Functione07db Functione070e: ; e070e ld a, [CurEnemyMoveNum] and $3 cp $3 jr z, Functione071a jp Functione07db Functione071a: ; e071a ld c, $c ld de, SFX_2ND_PLACE jp Functione07eb ; e0722 Functione0722: ; e0722 ld a, [CurEnemyMoveNum] and $1c jr z, Functione0768 jp Functione07db Functione072c: ; e072c ld a, [CurEnemyMoveNum] and $1c cp $4 jr z, Functione0768 jp Functione07db Functione0738: ; e0738 ld a, [CurEnemyMoveNum] and $1c cp $8 jr z, Functione0768 jp Functione07db Functione0744: ; e0744 ld a, [CurEnemyMoveNum] and $1c cp $c jr z, Functione0768 jp Functione07db Functione0750: ; e0750 ld a, [CurEnemyMoveNum] and $1c cp $10 jr z, Functione0768 jp Functione07db Functione075c: ; e075c ld a, [CurEnemyMoveNum] and $1c cp $14 jr z, Functione0768 jp Functione07db Functione0768: ; e0768 ld c, $12 ld de, SFX_2ND_PLACE jp Functione07eb ; e0770 Functione0770: ; e0770 ld e, $0 jr Functione07ce Functione0774: ; e0774 ld e, $1 jr Functione07ce Functione0778: ; e0778 ld e, $2 jr Functione07ce Functione077c: ; e077c ld e, $3 jr Functione07ce Functione0780: ; e0780 ld e, $4 jr Functione07ce Functione0784: ; e0784 ld e, $5 jr Functione07ce Functione0788: ; e0788 ld e, $6 jr Functione07ce Functione078c: ; e078c ld e, $7 jr Functione07ce Functione0790: ; e0790 ld e, $8 jr Functione07ce Functione0794: ; e0794 ld e, $9 jr Functione07ce Functione0798: ; e0798 ld e, $a jr Functione07ce Functione079c: ; e079c ld e, $b jr Functione07ce Functione07a0: ; e07a0 ld e, $c jr Functione07ce Functione07a4: ; e07a4 ld e, $d jr Functione07ce Functione07a8: ; e07a8 ld e, $e jr Functione07ce Functione07ac: ; e07ac ld e, $f jr Functione07ce Functione07b0: ; e07b0 ld e, $10 jr Functione07ce Functione07b4: ; e07b4 ld e, $11 jr Functione07ce Functione07b8: ; e07b8 ld e, $12 jr Functione07ce Functione07bc: ; e07bc ld e, $13 jr Functione07ce Functione07c0: ; e07c0 ld e, $14 jr Functione07ce Functione07c4: ; e07c4 ld e, $15 jr Functione07ce Functione07c8: ; e07c8 ld e, $16 jr Functione07ce Functione07cc: ; e07cc ld e, $17 Functione07ce: ; e07ce ld a, [CurEnemyMoveNum] cp e jr nz, Functione07db ld c, $48 ld de, SFX_2ND_PLACE jr Functione07eb Functione07db: ; e07db ld de, SFX_WRONG call PlaySFX ld hl, UnknownText_0xe0816 call Functione0489 call WaitSFX ret Functione07eb: ; e07eb push bc push de ld hl, UnknownText_0xe0811 call Functione0489 pop de call PlaySFX call WaitSFX pop bc .asm_e07fb push bc call Functione0833 jr c, .asm_e0804 call Functione081b .asm_e0804 call Functione049c ld c, $2 call DelayFrames pop bc dec c jr nz, .asm_e07fb ret ; e0811 UnknownText_0xe0811: ; 0xe0811 ; Yeah! text_jump UnknownText_0x1c5813 db "@" ; 0xe0816 UnknownText_0xe0816: ; 0xe0816 ; Darn… text_jump UnknownText_0x1c581a db "@" ; 0xe081b Functione081b: ; e081b ld a, [Coins] ld h, a ld a, [$d856] ld l, a inc hl ld a, h ld [Coins], a ld a, l ld [$d856], a ld de, SFX_PAY_DAY call PlaySFX ret ; e0833 Functione0833: ; e0833 ld a, [Coins] cp 9999 / $100 jr c, .asm_e0847 jr z, .asm_e083e jr .asm_e0845 .asm_e083e ld a, [Coins + 1] cp 9999 % $100 jr c, .asm_e0847 .asm_e0845 scf ret .asm_e0847 and a ret ; e0849 Functione0849: ; e0849 call Functione03ac ld hl, Unknown_e0853 call Functione0509 ret ; e0853 Unknown_e0853: ; e0853 INCBIN "baserom.gbc", $e0853, $e089c - $e0853 Functione089c: ; e089c ld hl, $ffa9 ld a, [hl] and $20 jp nz, Functione08b8 ld a, [hl] and $10 jp nz, Functione08ef ld a, [hl] and $40 jp nz, Functione090a ld a, [hl] and $80 jp nz, Functione093d ret ; e08b8 Functione08b8: ; e08b8 ld hl, $cf65 ld a, [$cf64] and a jr z, .asm_e08d5 cp $1 jr z, .asm_e08cc ld a, [hl] and a ret z dec [hl] jp Functione0959 .asm_e08cc ld a, [hl] cp $3 jr c, .asm_e08e2 dec [hl] jp Functione0959 .asm_e08d5 ld a, [hl] and $e ld [hl], a cp $3 jr c, .asm_e08e2 dec [hl] dec [hl] jp Functione0959 .asm_e08e2 ld a, $2 ld [$cf64], a ld a, $1 ld [$cf65], a jp Functione0959 ; e08ef Functione08ef: ; e08ef ld hl, $cf65 ld a, [$cf64] and a jr z, .asm_e08ff ld a, [hl] cp $5 ret nc inc [hl] jr Functione0959 .asm_e08ff ld a, [hl] and $e ld [hl], a cp $4 ret nc inc [hl] inc [hl] jr Functione0959 Functione090a: ; e090a ld hl, $cf64 ld a, [$cf65] and a jr z, .asm_e0925 cp $1 jr z, .asm_e091d ld a, [hl] and a ret z dec [hl] jr Functione0959 .asm_e091d ld a, [hl] cp $3 jr c, .asm_e0931 dec [hl] jr Functione0959 .asm_e0925 ld a, [hl] and $e ld [hl], a cp $3 jr c, .asm_e0931 dec [hl] dec [hl] jr Functione0959 .asm_e0931 ld a, $1 ld [$cf64], a ld a, $2 ld [$cf65], a jr Functione0959 Functione093d: ; e093d ld hl, $cf64 ld a, [$cf65] and a jr z, .asm_e0950 ld hl, $cf64 ld a, [hl] cp $7 ret nc inc [hl] jr Functione0959 .asm_e0950 ld a, [hl] and $e ld [hl], a cp $6 ret nc inc [hl] inc [hl] Functione0959: ; e0959 ld de, SFX_POKEBALLS_PLACED_ON_TABLE call PlaySFX ret ; e0960 Functione0960: ; e0960 call ClearSprites ld a, [hCGB] and a jr nz, .asm_e096d ld a, [$ff9b] and $4 ret nz .asm_e096d call Functione0398 add hl, hl add hl, hl ld de, Unknown_e0981 add hl, de ld a, [hli] ld c, a ld a, [hli] ld b, a ld a, [hli] ld h, [hl] ld l, a call Functione0509 ret ; e0981 Unknown_e0981: ; e0981 INCBIN "baserom.gbc", $e0981, $e0c37 - $e0981 ; known jump sources: e0147 (38:4147) Functione0c37: ; e0c37 (38:4c37) ld a, [hCGB] ; $ff00+$e6 and a ret z ld hl, AttrMap ; $cdd9 ld bc, $168 xor a call ByteFill ld hl, $cdf9 ld bc, $202 ld a, $1 call Functione04e7 ld hl, $cdfb ld bc, $202 ld a, $2 call Functione04e7 ld hl, $cdfd ld bc, $202 ld a, $3 call Functione04e7 ld hl, $cdff ld bc, $202 ld a, $4 call Functione04e7 ld hl, $cde2 ld bc, $c01 ld a, $1 call Functione04e7 ld a, [rSVBK] ; $ff00+$70 push af ld a, $5 ld [rSVBK], a ; $ff00+$70 ld hl, Unknown_e0c93 ld de, Unkn1Pals ; $d000 ld bc, $48 call CopyBytes pop af ld [rSVBK], a ; $ff00+$70 ret ; e0c93 (38:4c93) Unknown_e0c93: ; e0c93 INCBIN "baserom.gbc",$e0c93,$e1190 - $e0c93 Functione1190: ; e1190 ld a, [$ffaa] push af ld a, $1 ld [$ffaa], a call WhiteBGMap call ClearTileMap call ClearSprites xor a ld [hBGMapMode], a call DisableLCD ld hl, EnemyMoveAnimation ld bc, $01e0 xor a call ByteFill ld hl, $57c5 ld de, $8e00 ld bc, $0040 call CopyBytes ld hl, $5805 ld de, $8ed0 call Decompress call Functione17a3 ld hl, TileMap ld bc, $0168 ld a, $ee call ByteFill ld hl, $c4e0 ld bc, $0c0c ld a, $ef call Functione13ee call Functione124e call Functione13fe call Functione127d xor a ld [hSCY], a ld [hSCX], a ld [rWY], a ld [$cf63], a ld [$cf64], a ld [$cf65], a ld [$cf66], a ld a, $93 ld [rLCDC], a call WaitBGMap ld b, $18 call GetSGBLayout ld a, $e4 call DmgToCgbBGPals ld a, $24 call Functioncf8 xor a ld [$d0ec], a call DelayFrame .asm_e1217 call Functiona57 ld a, [$cf63] bit 7, a jr nz, .asm_e123d call Functione12ca ld a, [$cf64] and a jr nz, .asm_e1230 ld a, [$ff9b] and $10 jr z, .asm_e1235 .asm_e1230 call Functione14d9 jr .asm_e1238 .asm_e1235 call ClearSprites .asm_e1238 call DelayFrame jr .asm_e1217 .asm_e123d pop af ld [$ffaa], a call WhiteBGMap call ClearTileMap call ClearSprites ld a, $e3 ld [rLCDC], a ret ; e124e Functione124e: ; e124e ld c, $1 ld b, $10 .asm_e1252 call Random and $f ld hl, Unknown_e126d ld e, a ld d, $0 add hl, de ld e, [hl] ld hl, PlayerSDefLevel add hl, de ld a, [hl] and a jr nz, .asm_e1252 ld [hl], c inc c dec b jr nz, .asm_e1252 ret ; e126d Unknown_e126d: ; e126d INCBIN "baserom.gbc",$e126d,$e127d - $e126d Functione127d: ; e127d call Functione128d ld hl, $c5e5 ld a, $f6 ld c, $a .asm_e1287 ld [hli], a inc a dec c jr nz, .asm_e1287 ret ; e128d Functione128d: ; e128d ld hl, $c5d0 ld a, $f0 ld [hli], a ld bc, $000a ld a, $f1 call ByteFill ld hl, $c5db ld a, $f2 ld [hli], a ld hl, $c5e4 ld a, $f3 ld [hli], a ld bc, $000a ld a, $ef call ByteFill ld hl, $c5ef ld a, $f3 ld [hli], a ld hl, $c5f8 ld a, $f4 ld [hli], a ld bc, $000a ld a, $f1 call ByteFill ld hl, $c603 ld a, $f5 ld [hl], a ret ; e12ca Functione12ca: ; e12ca ld a, [$cf63] ld e, a ld d, 0 ld hl, Jumptable_e12d9 add hl, de add hl, de ld a, [hli] ld h, [hl] ld l, a jp [hl] ; e12d9 Jumptable_e12d9: ; e12d9 dw Functione12db ; e12db Functione12db: ; e12db ld a, [hJoyPressed] and $8 jp nz, Functione13de ld a, [hJoyPressed] and A_BUTTON jp nz, Functione1376 ld hl, $ffa9 ld a, [hl] and $40 jr nz, .asm_e1301 ld a, [hl] and $80 jr nz, .asm_e130d ld a, [hl] and $20 jr nz, .asm_e1325 ld a, [hl] and $10 jr nz, .asm_e1345 ret .asm_e1301 ld hl, $cf65 ld a, [hl] cp $6 ret c sub $6 ld [hl], a jr .asm_e1364 .asm_e130d ld hl, $cf65 ld a, [hl] cp $19 ret z cp $1a ret z cp $1b ret z cp $1c ret z cp $1e ret nc add $6 ld [hl], a jr .asm_e1364 .asm_e1325 ld hl, $cf65 ld a, [hl] and a ret z cp $6 ret z cp $c ret z cp $12 ret z cp $18 ret z cp $1e ret z cp $23 jr z, .asm_e1341 dec [hl] jr .asm_e1364 .asm_e1341 ld [hl], $1e jr .asm_e1364 .asm_e1345 ld hl, $cf65 ld a, [hl] cp $5 ret z cp $b ret z cp $11 ret z cp $17 ret z cp $1d ret z cp $23 ret z cp $1e jr z, .asm_e1362 inc [hl] jr .asm_e1364 .asm_e1362 ld [hl], $23 .asm_e1364 ld a, [$cf64] and a jr nz, .asm_e136f ld de, SFX_POUND jr .asm_e1372 .asm_e136f ld de, SFX_MOVE_PUZZLE_PIECE .asm_e1372 call PlaySFX ret ; e1376 Functione1376: ; e1376 ld a, [$cf64] and a jr nz, .asm_e139f call Functione1475 and a jr z, Functione13e4 ld de, SFX_MEGA_KICK call PlaySFX ld [hl], $0 ld [$cf66], a call Functione14d9 call Functione1441 call WaitBGMap call WaitSFX ld a, $1 ld [$cf64], a ret .asm_e139f call Functione1475 and a jr nz, Functione13e4 ld de, SFX_PLACE_PUZZLE_PIECE_DOWN call PlaySFX ld a, [$cf66] ld [hl], a call Functione141f call WaitBGMap xor a ld [$cf66], a call Functione14d9 xor a ld [$cf64], a call WaitSFX call Functione14a0 ret nc call Functione128d call ClearSprites ld de, SFX_1ST_PLACE call PlaySFX call WaitSFX call Functionaa5 ld a, $1 ld [$d0ec], a Functione13de: ; e13de ld hl, $cf63 set 7, [hl] ret Functione13e4: ; e13e4 ld de, SFX_WRONG call PlaySFX call WaitSFX ret ; e13ee Functione13ee: ; e13ee ld de, $0014 .asm_e13f1 push bc push hl .asm_e13f3 ld [hli], a dec c jr nz, .asm_e13f3 pop hl add hl, de pop bc dec b jr nz, .asm_e13f1 ret ; e13fe Functione13fe: ; e13fe xor a ld [$cf65], a ld c, $24 .asm_e1404 push bc call Functione1475 ld [$cf66], a and a jr z, .asm_e1413 call Functione141f jr .asm_e1416 .asm_e1413 call Functione1441 .asm_e1416 ld hl, $cf65 inc [hl] pop bc dec c jr nz, .asm_e1404 ret ; e141f Functione141f: ; e141f ld a, $2 call Functione1463 ld a, [hli] ld h, [hl] ld l, a push hl call Functione1481 pop hl ld de, $0014 ld b, $3 .asm_e1431 ld c, $3 push hl .asm_e1434 ld [hli], a inc a dec c jr nz, .asm_e1434 add $9 pop hl add hl, de dec b jr nz, .asm_e1431 ret ; e1441 Functione1441: ; e1441 ld a, $2 call Functione1463 ld a, [hli] ld h, [hl] ld l, a push hl ld a, $4 call Functione1463 ld a, [hl] pop hl ld de, $0014 ld b, $3 .asm_e1456 ld c, $3 push hl .asm_e1459 ld [hli], a dec c jr nz, .asm_e1459 pop hl add hl, de dec b jr nz, .asm_e1456 ret ; e1463 Functione1463: ; e1463 ld e, a ld d, 0 ld hl, Unknown_e1559 add hl, de ld a, [$cf65] ld e, a add hl, de add hl, de add hl, de add hl, de add hl, de add hl, de ret ; e1475 Functione1475: ; e1475 ld hl, PlayerSDefLevel ld a, [$cf65] ld e, a ld d, $0 add hl, de ld a, [hl] ret ; e1481 Functione1481: ; e1481 ld a, [$cf66] ld hl, Unknown_e148f add l ld l, a ld a, $0 adc h ld h, a ld a, [hl] ret ; e148f Unknown_e148f: ; e148f INCBIN "baserom.gbc", $e148f, $e14a0 - $e148f Functione14a0: ; e14a0 ld hl, Unknown_e14b5 ld de, PlayerSDefLevel ld c, $24 .asm_e14a8 ld a, [de] cp [hl] jr nz, .asm_e14b3 inc de inc hl dec c jr nz, .asm_e14a8 scf ret .asm_e14b3 and a ret ; e14b5 Unknown_e14b5: ; e14b5 INCBIN "baserom.gbc", $e14b5, $e14d9 - $e14b5 Functione14d9: ; e14d9 call Functione1481 ld [DefaultFlypoint], a xor a call Functione1463 ld a, [hli] ld b, [hl] ld c, a ld a, [DefaultFlypoint] cp $e0 jr z, .asm_e14f2 ld hl, Unknown_e150f jr .asm_e14f5 .asm_e14f2 ld hl, Unknown_e1534 .asm_e14f5 ld de, Sprites .asm_e14f8 ld a, [hli] cp $ff ret z add b ld [de], a inc de ld a, [hli] add c ld [de], a inc de ld a, [DefaultFlypoint] add [hl] ld [de], a inc hl inc de ld a, [hli] ld [de], a inc de jr .asm_e14f8 ; e150f Unknown_e150f: ; e150f INCBIN "baserom.gbc",$e150f,$e1534 - $e150f Unknown_e1534: ; e1534 INCBIN "baserom.gbc",$e1534,$e1559 - $e1534 Unknown_e1559: ; e1559 INCBIN "baserom.gbc",$e1559,$e1631 - $e1559 Functione1631: ; e1631 ld hl, VTiles2 ld de, VTiles0 ld b, $6 .asm_e1639 push bc push hl push hl call Functione1654 pop hl ld bc, $0008 add hl, bc call Functione1654 pop hl ld bc, $0060 add hl, bc pop bc dec b jr nz, .asm_e1639 call Functione16c7 ret ; e1654 Functione1654: ; e1654 ld c, $6 .asm_e1656 push bc push hl push hl ld c, $4 .asm_e165b push bc ld a, [hli] and $f0 swap a call Functione16aa ld c, a ld a, [hli] and $f0 swap a call Functione16aa ld b, a ld a, c ld [de], a inc de ld a, b ld [de], a inc de ld a, c ld [de], a inc de ld a, b ld [de], a inc de pop bc dec c jr nz, .asm_e165b pop hl ld c, $4 .asm_e1681 push bc ld a, [hli] and $f call Functione16aa ld c, a ld a, [hli] and $f call Functione16aa ld b, a ld a, c ld [de], a inc de ld a, b ld [de], a inc de ld a, c ld [de], a inc de ld a, b ld [de], a inc de pop bc dec c jr nz, .asm_e1681 pop hl ld bc, $0010 add hl, bc pop bc dec c jr nz, .asm_e1656 ret ; e16aa Functione16aa: ; e16aa push hl ld hl, Unknown_e16b7 add l ld l, a ld a, $0 adc h ld h, a ld a, [hl] pop hl ret ; e16b7 Unknown_e16b7: ; e16b7 INCBIN "baserom.gbc",$e16b7,$e16c7 - $e16b7 Functione16c7: ; e16c7 ld hl, Unknown_e1703 ld a, $8 .asm_e16cc push af push hl ld a, [hli] ld e, a ld a, [hli] ld d, a ld a, [hli] ld h, [hl] ld l, a call Functione16e2 pop hl inc hl inc hl inc hl inc hl pop af dec a jr nz, .asm_e16cc ret ; e16e2 Functione16e2: ; e16e2 ld bc, $0404 .asm_e16e5 push bc .asm_e16e6 push de push hl ld b, $10 .asm_e16ea ld a, [de] or [hl] ld [hli], a inc de dec b jr nz, .asm_e16ea pop hl ld de, $0030 add hl, de pop de dec c jr nz, .asm_e16e6 ld bc, $0180 add hl, bc pop bc dec b jr nz, .asm_e16e5 ret ; e1703 Unknown_e1703: ; e1703 INCBIN "baserom.gbc",$e1703,$e17a3 - $e1703 Functione17a3: ; e17a3 ld a, [ScriptVar] and $3 ld e, a ld d, 0 ld hl, Unknown_e17bd add hl, de add hl, de ld a, [hli] ld h, [hl] ld l, a ld de, VTiles2 call Decompress call Functione1631 ret ; e17bd Unknown_e17bd: ; e17bd INCBIN "baserom.gbc",$e17bd,$e1e5b - $e17bd ; no known jump sources Functione1e5b: ; e1e5b (38:5e5b) call Functione1e67 call DelayFrame .asm_e1e61 call Functione1ebb jr nc, .asm_e1e61 ret ; known jump sources: e1e5b (38:5e5b) Functione1e67: ; e1e67 (38:5e67) call DisableLCD ld b, $8 call GetSGBLayout callab Function8cf53 ld hl, LZ_e2221 ld de, $9000 call Decompress ld hl, $40ed ld de, $8000 ld bc, $40 ld a, $38 call FarCopyBytes ld a, $8 ld hl, $c300 ld [hli], a ld [hl], $0 ld hl, TileMap ; $c4a0 (aliases: SpritesEnd) ld bc, $168 xor a call ByteFill xor a ld [hSCY], a ; $ff00+$d0 ld [hSCX], a ; $ff00+$cf ld [rWY], a ; $ff00+$4a ld [$cf63], a ld a, $1 ld [hBGMapMode], a ; $ff00+$d4 ld a, $e3 ld [rLCDC], a ; $ff00+$40 ld a, $e4 call DmgToCgbBGPals ld a, $e0 call Functioncf8 ret ; known jump sources: e1e61 (38:5e61) Functione1ebb: ; e1ebb (38:5ebb) ld a, [$cf63] bit 7, a jr nz, .asm_e1ed0 call Functione1ed2 callab Function8cf69 call DelayFrame and a ret .asm_e1ed0 scf ret ; known jump sources: e1ec2 (38:5ec2) Functione1ed2: ; e1ed2 (38:5ed2) ld a, [$cf63] ld e, a ld d, 0 ld hl, Jumptable_e1ee1 add hl, de add hl, de ld a, [hli] ld h, [hl] ld l, a jp [hl] ; e1ee1 (38:5ee1) Jumptable_e1ee1: ; e1ee1 dw Functione1ef3 dw Functione1efb dw Functione1f1c dw Functione1f42 dw Functione1f61 dw Functione1f8b dw Functione1fba dw Functione1fcc dw Functione2000 ; e1ef3 Functione1ef3: ; e1ef3 call Functione2152 ld hl, $cf63 inc [hl] ret ; e1efb Functione1efb: ; e1efb call Functione00ed jr nc, .asm_e1f06 ld hl, $cf63 set 7, [hl] ret .asm_e1f06 call Functione209d ld hl, $cf63 inc [hl] xor a ld [$c708], a ld hl, PlayerReflectCount ld [hli], a ld [hli], a ld [hli], a ld [hli], a ld [hl], a ld [$c709], a Functione1f1c: ; e1f1c ld hl, $c708 ld a, [hl] cp $2d jr nc, .asm_e1f30 inc [hl] call Functione2183 xor a ld [$c6fd], a call Functione2128 ret .asm_e1f30 ld de, $341c ld a, $c call Function3b2a ld a, $5 ld [PlayerLightScreenCount], a ld hl, $cf63 inc [hl] ret ; e1f42 Functione1f42: ; e1f42 ld a, [PlayerLightScreenCount] ld hl, $c4b1 add $f6 ld [hl], a ld hl, PlayerLightScreenCount ld a, [hl] and a jr nz, .asm_e1f58 ld a, $7 ld [$cf63], a ret .asm_e1f58 dec [hl] xor a ld [$cf64], a ld hl, $cf63 inc [hl] Functione1f61: ; e1f61 ld a, [$cf64] and a ret z dec a ld e, a ld d, $0 ld hl, PlayerSDefLevel add hl, de ld a, [hl] cp $ff ret z ld [$c6fd], a ld [$c6fe], a ld a, e ld [EnemyScreens], a call Functione2183 call Functione2128 xor a ld [$cf64], a ld hl, $cf63 inc [hl] ret ; e1f8b Functione1f8b: ; e1f8b ld a, [$cf64] and a ret z dec a ld hl, EnemyScreens cp [hl] ret z ld e, a ld d, $0 ld hl, PlayerSDefLevel add hl, de ld a, [hl] cp $ff ret z ld [$c6fd], a ld [PlayerScreens], a ld a, e ld [$c701], a call Functione2183 call Functione2128 ld a, $40 ld [$c708], a ld hl, $cf63 inc [hl] Functione1fba: ; e1fba ld hl, $c708 ld a, [hl] and a jr z, .asm_e1fc3 dec [hl] ret .asm_e1fc3 call Functione2010 ld a, $3 ld [$cf63], a ret ; e1fcc Functione1fcc: ; e1fcc ld a, [hJoypadPressed] and A_BUTTON ret z xor a ld [$c708], a .asm_e1fd5 ld hl, $c708 ld a, [hl] cp $2d jr nc, .asm_e1ff9 inc [hl] push af call Functione2183 pop af push hl ld e, a ld d, $0 ld hl, PlayerSDefLevel add hl, de ld a, [hl] pop hl cp $ff jr z, .asm_e1fd5 ld [$c6fd], a call Functione2128 jr .asm_e1fd5 .asm_e1ff9 call Functiona80 ld hl, $cf63 inc [hl] Functione2000: ; e2000 call Functione00ed jr nc, .asm_e200b ld hl, $cf63 set 7, [hl] ret .asm_e200b xor a ld [$cf63], a ret ; e2010 Functione2010: ; e2010 ld hl, $c6fe ld a, [hli] cp [hl] jr nz, .asm_e2066 ld a, [EnemyScreens] call Functione2183 call Functione2142 ld a, [$c701] call Functione2183 call Functione2142 ld a, [EnemyScreens] ld e, a ld d, $0 ld hl, PlayerSDefLevel add hl, de ld [hl], $ff ld a, [$c701] ld e, a ld d, $0 ld hl, PlayerSDefLevel add hl, de ld [hl], $ff ld hl, PlayerReflectCount .asm_e2044 ld a, [hli] and a jr nz, .asm_e2044 dec hl ld a, [$c6fe] ld [hl], a ld [$c6fd], a ld hl, $c709 ld e, [hl] inc [hl] inc [hl] ld d, $0 ld hl, $c4a5 add hl, de call Functione2128 ld hl, UnknownText_0xe2083 call PrintText ret .asm_e2066 xor a ld [$c6fd], a ld a, [EnemyScreens] call Functione2183 call Functione2128 ld a, [$c701] call Functione2183 call Functione2128 ld hl, UnknownText_0xe2098 call PrintText ret ; e2083 UnknownText_0xe2083: ; 0xe2083 start_asm ; 0xe2084 Functione2084: ; e2084 push bc ld hl, $c5a6 call Functione2128 ld hl, UnknownText_0xe2093 pop bc inc bc inc bc inc bc ret ; e2093 UnknownText_0xe2093: ; 0xe2093 ; , yeah! text_jump UnknownText_0x1c1a5b db "@" ; 0xe2098 UnknownText_0xe2098: ; 0xe2098 ; Darn… text_jump UnknownText_0x1c1a65 db "@" ; 0xe209d Functione209d: ; e209d ld hl, PlayerSDefLevel ld bc, $002d xor a call ByteFill call Functione2101 ld c, $2 ld b, [hl] call Functione20e5 ld c, $8 ld b, [hl] call Functione20e5 ld c, $4 ld b, [hl] call Functione20e5 ld c, $7 ld b, [hl] call Functione20e5 ld c, $3 ld b, [hl] call Functione20e5 ld c, $6 ld b, [hl] call Functione20e5 ld c, $1 ld b, [hl] call Functione20e5 ld c, $5 ld hl, PlayerSDefLevel ld b, $2d .asm_e20db ld a, [hl] and a jr nz, .asm_e20e0 ld [hl], c .asm_e20e0 inc hl dec b jr nz, .asm_e20db ret ; e20e5 Functione20e5: ; e20e5 push hl ld de, PlayerSDefLevel .asm_e20e9 call Random and $3f cp $2d jr nc, .asm_e20e9 ld l, a ld h, $0 add hl, de ld a, [hl] and a jr nz, .asm_e20e9 ld [hl], c dec b jr nz, .asm_e20e9 pop hl inc hl ret ; e2101 Functione2101: ; e2101 ld a, [$cfa9] dec a ld l, a ld h, 0 add hl, hl add hl, hl add hl, hl ld de, Unknown_e2110 add hl, de ret ; e2110 Unknown_e2110: ; e2110 INCBIN "baserom.gbc", $e2110, $e2128 - $e2110 Functione2128: ; e2128 ld a, [$c6fd] sla a sla a add $4 ld [hli], a inc a ld [hld], a inc a ld bc, $0014 add hl, bc ld [hli], a inc a ld [hl], a ld c, $3 call DelayFrames ret ; e2142 Functione2142: ; e2142 ld a, $1 ld [hli], a ld [hld], a ld bc, $0014 add hl, bc ld [hli], a ld [hl], a ld c, $3 call DelayFrames ret ; e2152 Functione2152: ; e2152 ld hl, TileMap ld bc, $0168 ld a, $1 call ByteFill ld hl, TileMap ld de, String_e2177 call PlaceString ld hl, $c4af ld de, String_e217d call PlaceString ld hl, UnknownText_0xe2176 call PrintText ret ; e2176 UnknownText_0xe2176: ; 0xe2176 db "@" ; 0xe2177 String_e2177: db "とったもの@" String_e217d: db "あと かい@" ; e2183 Functione2183: ; e2183 ld d, $0 .asm_e2185 sub $9 jr c, .asm_e218c inc d jr .asm_e2185 .asm_e218c add $9 ld e, a ld hl, $c4c9 ld bc, $0028 .asm_e2195 ld a, d and a jr z, .asm_e219d add hl, bc dec d jr .asm_e2195 .asm_e219d sla e add hl, de ret ; e21a1 ; no known jump sources Functione21a1: ; e21a1 (38:61a1) ld a, [$cf63] cp $7 jr nc, .asm_e21c8 call Functiona57 ld hl, hJoypadPressed ; $ffa3 ld a, [hl] and $1 jr nz, .asm_e21cf ld a, [hl] and $20 jr nz, .asm_e21d9 ld a, [hl] and $10 jr nz, .asm_e21e9 ld a, [hl] and $40 jr nz, .asm_e21fa ld a, [hl] and $80 jr nz, .asm_e220d ret .asm_e21c8 ld hl, $0 add hl, bc ld [hl], $0 ret .asm_e21cf ld hl, $c add hl, bc ld a, [hl] inc a ld [$cf64], a ret .asm_e21d9 ld hl, $6 add hl, bc ld a, [hl] and a ret z sub $10 ld [hl], a ld hl, $c add hl, bc dec [hl] ret .asm_e21e9 ld hl, $6 add hl, bc ld a, [hl] cp $80 ret z add $10 ld [hl], a ld hl, $c add hl, bc inc [hl] ret .asm_e21fa ld hl, $7 add hl, bc ld a, [hl] and a ret z sub $10 ld [hl], a ld hl, $c add hl, bc ld a, [hl] sub $9 ld [hl], a ret .asm_e220d ld hl, $7 add hl, bc ld a, [hl] cp $40 ret z add $10 ld [hl], a ld hl, $c add hl, bc ld a, [hl] add $9 ld [hl], a ret ; e2221 (38:6221) LZ_e2221: ; e2221 INCBIN "baserom.gbc",$e2221,$e2391 - $e2221 ; no known jump sources Functione2391: ; e2391 (38:6391) ld hl, Options ; $cfcc ld a, [hl] push af set 4, [hl] ld a, [VramState] ; $d0ed push af xor a ld [VramState], a ; $d0ed ld a, [$FF00+$aa] push af ld a, $1 ld [$FF00+$aa], a xor a ld [$FF00+$de], a call Functione2963 xor a ld [$cb2e], a call DelayFrame .asm_e23b4 call Functiona57 ld a, [$cf63] bit 7, a jr nz, .asm_e23c6 call Functione23d5 call DelayFrame jr .asm_e23b4 .asm_e23c6 call ClearSprites pop af ld [$FF00+$aa], a pop af ld [VramState], a ; $d0ed pop af ld [Options], a ; $cfcc ret ; known jump sources: e23be (38:63be) Functione23d5: ; e23d5 (38:63d5) ld a, [$cf63] ld hl, Jumptable_e23df call Functione33df jp [hl] ; no known jump sources Jumptable_e23df: ; e23df (38:63df) dw Functione23e9 dw Functione241a dw Functione245d dw Functione247d dw Functione2992 ; no known jump sources Functione23e9: ; e23e9 (38:63e9) xor a ld [hBGMapMode], a ; $ff00+$d4 call ClearSprites call Functione2d30 call Functione2a8e ld de, String_e34dd call Functione2a6e ld a, $5 ld [$cb2d], a call Functione2c2c call Functione2ac6 ld a, $ff ld [CurPartySpecies], a ; $d108 ld a, $17 call Functione33d0 call WaitBGMap call Functione2e01 call Functione298d ret ; no known jump sources Functione241a: ; e241a (38:641a) ld hl, hJoyPressed ; $ffa7 ld a, [hl] and $2 jr nz, .asm_e2457 ld a, [hl] and $1 jr nz, .asm_e2443 call Functione29b5 and a ret z call Functione2e01 xor a ld [hBGMapMode], a ; $ff00+$d4 call Functione2c2c call Functione2ac6 ld a, $1 ld [hBGMapMode], a ; $ff00+$d4 call DelayFrame call DelayFrame ret .asm_e2443 call Functione2def and a ret z cp $ff jr z, .asm_e2457 ld a, $2 ld [$cf63], a ret ; e2452 (38:6452) .asm_e2452 ld hl, $cf63 dec [hl] ret .asm_e2457 ld a, $4 ld [$cf63], a ret ; no known jump sources Functione245d: ; e245d (38:645d) xor a ld [hBGMapMode], a ; $ff00+$d4 call ClearSprites call Functione2def ld [CurPartySpecies], a ; $d108 ld a, $17 call Functione33d0 ld de, String_e34ea call Functione2a6e ld a, $1 ld [$cfa9], a call Functione298d ret ; no known jump sources Functione247d: ; e247d (38:647d) ld hl, $653d call Function1d3c ld a, [$cfa9] call Function1d4b call Function1d81 jp c, BillsPCDepositFuncCancel ld a, [$cfa9] dec a and $3 ld e, a ld d, 0 ld hl, BillsPCDepositJumptable add hl, de add hl, de ld a, [hli] ld h, [hl] ld l, a jp [hl] ; no known jump sources BillsPCDepositJumptable: ; e24a1 (38:64a1) dw BillsPCDepositFuncDeposit ; Deposit Pokemon dw BillsPCDepositFuncStats ; Pokemon Stats dw BillsPCDepositFuncRelease ; Release Pokemon dw BillsPCDepositFuncCancel ; Cancel ; no known jump sources BillsPCDepositFuncDeposit: ; e24a9 (38:64a9) call Functione2f18 jp c, BillsPCDepositFuncCancel call Functione307c jr c, .asm_e24c1 ld a, $0 ld [$cf63], a xor a ld [$cb2b], a ld [$cb2a], a ret .asm_e24c1 ld de, String_e34ea call Functione2a6e ret ; no known jump sources BillsPCDepositFuncStats: ; e24c8 (38:64c8) call Function1d6e call Functione2f7e call Function1c07 call Functione2ac6 call Functione2def ld [CurPartySpecies], a ; $d108 ld a, $17 call Functione33d0 ret ; no known jump sources BillsPCDepositFuncRelease: ; e24e0 (38:64e0) call Functione2f18 jr c, BillsPCDepositFuncCancel call Functione2f5f jr c, BillsPCDepositFuncCancel ld a, [$cfa9] push af ld de, String_e34f4 call Functione2a6e call Function1d6e lb bc, 14, 11 call PlaceYesNoBox ld a, [$cfa9] dec a call Function1c07 and a jr nz, .asm_e252c ld a, [$cb2b] ld hl, $cb2a add [hl] ld [CurPartyMon], a ; $d109 xor a ld [$d10b], a callba Functione039 call Functione3180 ld a, $0 ld [$cf63], a xor a ld [$cb2b], a ld [$cb2a], a pop af ret .asm_e252c ld de, String_e34ea call Functione2a6e pop af ld [$cfa9], a ret ; known jump sources: e248c (38:648c), e24ac (38:64ac), e24e3 (38:64e3), e24e8 (38:64e8) BillsPCDepositFuncCancel: ; e2537 (38:6537) ld a, $0 ld [$cf63], a ret ; e253d (38:653d) BillsPCDepositMenuDataHeader: ; 0xe253d (38:653d) db $40 ; flags db 04, 09 ; start coords db 13, 19 ; end coords dw BillsPCDepositMenuData db 1 ; default option ; 0xe2545 BillsPCDepositMenuData: ; 0xe2545 (38:6545) db $80 ; flags db 4 ; items db "DEPOSIT@" db "STATS@" db "RELEASE@" db "CANCEL@" ; 0xe2564 (38:6564) Functione2564: ; e2564 ld hl, TileMap ld b, $4 ld c, $8 call ClearBox ld hl, $c4f0 ld b, $a ld c, $9 call ClearBox ld hl, $c5b8 ld b, $2 ld c, $8 call ClearBox ret ; e2583 ; no known jump sources Functione2583: ; e2583 (38:6583) ld hl, Options ; $cfcc ld a, [hl] push af set 4, [hl] ld a, [VramState] ; $d0ed push af xor a ld [VramState], a ; $d0ed ld a, [$FF00+$aa] push af ld a, $1 ld [$FF00+$aa], a xor a ld [$FF00+$de], a call Functione2963 ld a, $f ld [$cb2e], a call DelayFrame .asm_e25a7 call Functiona57 ld a, [$cf63] bit 7, a jr nz, .asm_e25b9 call Functione25c8 call DelayFrame jr .asm_e25a7 .asm_e25b9 call ClearSprites pop af ld [$FF00+$aa], a pop af ld [VramState], a ; $d0ed pop af ld [Options], a ; $cfcc ret ; known jump sources: e25b1 (38:65b1) Functione25c8: ; e25c8 (38:65c8) ld a, [$cf63] ld hl, Jumptable_e25d2 call Functione33df jp [hl] ; no known jump sources Jumptable_e25d2: ; e25d2 (38:65d2) dw Functione25dc dw Functione2612 dw Functione2655 dw Functione2675 dw Functione2992 ; no known jump sources Functione25dc: ; e25dc (38:65dc) ld a, $f ld [$cb2e], a xor a ld [hBGMapMode], a ; $ff00+$d4 call ClearSprites call Functione2d30 call Functione2a8e ld de, String_e34dd call Functione2a6e ld a, $5 ld [$cb2d], a call Functione2c2c call Functione2ac6 ld a, $ff ld [CurPartySpecies], a ; $d108 ld a, $17 call Functione33d0 call WaitBGMap call Functione2e01 call Functione298d ret ; no known jump sources Functione2612: ; e2612 (38:6612) ld hl, hJoyPressed ; $ffa7 ld a, [hl] and $2 jr nz, .asm_e264f ld a, [hl] and $1 jr nz, .asm_e263b call Functione29b5 and a ret z call Functione2e01 xor a ld [hBGMapMode], a ; $ff00+$d4 call Functione2c2c call Functione2ac6 ld a, $1 ld [hBGMapMode], a ; $ff00+$d4 call DelayFrame call DelayFrame ret .asm_e263b call Functione2def and a ret z cp $ff jr z, .asm_e264f ld a, $2 ld [$cf63], a ret ; e264a (38:664a) .asm_e264a ld hl, $cf63 dec [hl] ret .asm_e264f ld a, $4 ld [$cf63], a ret ; e2655 ; no known jump sources Functione2655: ; e2655 (38:6655) xor a ld [hBGMapMode], a ; $ff00+$d4 call ClearSprites call Functione2def ld [CurPartySpecies], a ; $d108 ld a, $17 call Functione33d0 ld de, String_e34ea call Functione2a6e ld a, $1 ld [$cfa9], a call Functione298d ret ; no known jump sources Functione2675: ; e2675 (38:6675) ld hl, Unknown_e2731 call Function1d3c ld a, [$cfa9] call Function1d4b call Function1d81 jp c, BillsPCWithdrawFuncCancel ld a, [$cfa9] dec a and 3 ld e, a ld d, 0 ld hl, BillsPCWithdrawJumptable add hl, de add hl, de ld a, [hli] ld h, [hl] ld l, a jp [hl] ; no known jump sources BillsPCWithdrawJumptable: ; e2699 (38:6699) #mark dw BillsPCWithdrawFuncWithdraw ; Withdraw dw BillsPCWithdrawFuncStats ; Stats dw BillsPCWithdrawFuncRelease ; Release dw BillsPCWithdrawFuncCancel ; Cancel ; no known jump sources BillsPCWithdrawFuncWithdraw: ; e26a1 (38:66a1) call Functione2f18 jp c, BillsPCWithdrawFuncCancel call Functione30fa jr c, .asm_e26b9 ld a, $0 ld [$cf63], a xor a ld [$cb2b], a ld [$cb2a], a ret .asm_e26b9 ld de, String_e34ea call Functione2a6e ret ; no known jump sources BillsPCWithdrawFuncStats: ; e26c0 (38:66c0) call Function1d6e call Functione2f7e call Function1c07 call Functione2ac6 call Functione2def ld [CurPartySpecies], a ; $d108 ld a, $17 call Functione33d0 ret ; no known jump sources BillsPCWithdrawFuncRelease: ; e26d8 (38:66d8) ld a, [$cfa9] push af call Functione2f5f jr c, .asm_e2720 ld de, String_e34f4 call Functione2a6e call Function1d6e lb bc, 14, 11 call PlaceYesNoBox ld a, [$cfa9] dec a call Function1c07 and a jr nz, .asm_e2720 ld a, [$cb2b] ld hl, $cb2a add [hl] ld [CurPartyMon], a ; $d109 ld a, $1 ld [$d10b], a callba Functione039 call Functione3180 ld a, $0 ld [$cf63], a xor a ld [$cb2b], a ld [$cb2a], a pop af ret .asm_e2720 ld de, String_e34ea call Functione2a6e pop af ld [$cfa9], a ret ; known jump sources: e2684 (38:6684), e26a4 (38:66a4) BillsPCWithdrawFuncCancel: ; e272b (38:672b) ld a, $0 ld [$cf63], a ret ; e2731 (38:6731) Unknown_e2731: ; e2731 INCBIN "baserom.gbc", $e2731, $e2759 - $e2731 Functione2759: ; e2759 ld hl, Options ld a, [hl] push af set 4, [hl] ld a, [VramState] push af xor a ld [VramState], a ld a, [$ffaa] push af ld a, $1 ld [$ffaa], a xor a ld [$ffde], a call Functione2963 ld a, [wCurBox] and $f inc a ld [$cb2e], a call DelayFrame .asm_e2781 call Functiona57 ld a, [$cf63] bit 7, a jr nz, .asm_e2793 call Functione27a2 call DelayFrame jr .asm_e2781 .asm_e2793 call ClearSprites pop af ld [$ffaa], a pop af ld [VramState], a pop af ld [Options], a ret ; e27a2 Functione27a2: ; e27a2 ld a, [$cf63] ld hl, Jumptable_e27ac call Functione33df jp [hl] ; e27ac Jumptable_e27ac: ; e27ac dw Functione27ba dw Functione27eb dw Functione283d dw Functione285d dw Functione28df dw Functione2903 dw Functione2992 ; e27ba Functione27ba: ; e27ba xor a ld [hBGMapMode], a call ClearSprites call Functione2d30 ld de, String_e34dd call Functione2a6e ld a, $5 ld [$cb2d], a call Functione2c2c call Functione2a80 call Functione2ac6 ld a, $ff ld [CurPartySpecies], a ld a, $17 call Functione33d0 call WaitBGMap call Functione2e01 call Functione298d ret ; e27eb Functione27eb: ; e27eb ld hl, hJoyPressed ld a, [hl] and $2 jr nz, .asm_e2837 ld a, [hl] and $1 jr nz, .asm_e2823 call Functione29d0 jr c, .asm_e2816 and a ret z call Functione2e01 xor a ld [hBGMapMode], a call Functione2c2c call Functione2ac6 ld a, $1 ld [hBGMapMode], a call DelayFrame call DelayFrame ret .asm_e2816 xor a ld [$cb2b], a ld [$cb2a], a ld a, $0 ld [$cf63], a ret .asm_e2823 call Functione2def and a ret z cp $ff jr z, .asm_e2837 ld a, $2 ld [$cf63], a ret ld hl, $cf63 dec [hl] ret .asm_e2837 ld a, $6 ld [$cf63], a ret ; e283d Functione283d: ; e283d xor a ld [hBGMapMode], a call ClearSprites call Functione2def ld [CurPartySpecies], a ld a, $17 call Functione33d0 ld de, String_e34ea call Functione2a6e ld a, $1 ld [$cfa9], a call Functione298d ret ; e285d Functione285d: ; e285d ld hl, MenuDataHeader_0xe28c3 call Function1d3c ld a, [$cfa9] call Function1d4b call Function1d81 jp c, Functione28bd ld a, [$cfa9] dec a and 3 ld e, a ld d, 0 ld hl, Jumptable_e2881 add hl, de add hl, de ld a, [hli] ld h, [hl] ld l, a jp [hl] ; e2881 Jumptable_e2881: ; e2881 dw Functione2887 dw Functione28a5 dw Functione28bd ; e2887 Functione2887: ; e2887 call Functione2f18 jp c, Functione28bd ld a, [$cb2a] ld [$cb2f], a ld a, [$cb2b] ld [$cb30], a ld a, [$cb2e] ld [$cb31], a ld a, $4 ld [$cf63], a ret ; e28a5 Functione28a5: ; e28a5 call Function1d6e call Functione2f7e call Function1c07 call Functione2ac6 call Functione2def ld [CurPartySpecies], a ld a, $17 call Functione33d0 ret ; e28bd Functione28bd: ; e28bd ld a, $0 ld [$cf63], a ret ; e28c3 MenuDataHeader_0xe28c3: ; 0xe28c3 db $40 ; flags db 04, 09 ; start coords db 13, 19 ; end coords dw MenuData2_0xe28cb db 1 ; default option ; 0xe28cb MenuData2_0xe28cb: ; 0xe28cb db $80 ; flags db 3 ; items db "MOVE@" db "STATS@" db "CANCEL@" ; 0xe28df Functione28df: ; e28df xor a ld [hBGMapMode], a call Functione2d30 ld de, String_e3500 call Functione2a6e ld a, $5 ld [$cb2d], a call Functione2c2c call Functione2a80 call ClearSprites call Functione2e8c call WaitBGMap call Functione298d ret ; e2903 Functione2903: ; e2903 ld hl, hJoyPressed ld a, [hl] and $2 jr nz, .asm_e294b ld a, [hl] and $1 jr nz, .asm_e2938 call Functione29f4 jr c, .asm_e292b and a ret z call Functione2e8c xor a ld [hBGMapMode], a call Functione2c2c ld a, $1 ld [hBGMapMode], a call DelayFrame call DelayFrame ret .asm_e292b xor a ld [$cb2b], a ld [$cb2a], a ld a, $4 ld [$cf63], a ret .asm_e2938 call Functione2ee5 jr c, .asm_e2946 call Functione31e7 ld a, $0 ld [$cf63], a ret .asm_e2946 ld hl, $cf63 dec [hl] ret .asm_e294b ld a, [$cb2f] ld [$cb2a], a ld a, [$cb30] ld [$cb2b], a ld a, [$cb31] ld [$cb2e], a ld a, $0 ld [$cf63], a ret ; e2963 ; known jump sources: e23aa (38:63aa), e259c (38:659c) Functione2963: ; e2963 (38:6963) call WhiteBGMap call ClearSprites call ClearTileMap call Functione33e8 ld hl, OverworldMap ; $c800 ld bc, $338 xor a call ByteFill xor a ld [$cf63], a ld [$cf64], a ld [$cf65], a ld [$cf66], a ld [$cb2b], a ld [$cb2a], a ret ; known jump sources: e2416 (38:6416), e2479 (38:6479), e260e (38:660e), e2671 (38:6671) Functione298d: ; e298d (38:698d) ld hl, $cf63 inc [hl] ret ; no known jump sources Functione2992: ; e2992 (38:6992) ld hl, $cf63 set 7, [hl] ret ; known jump sources: e2faa (38:6faa) Functione2998: ; e2998 (38:6998) ld a, [$cb2d] ld d, a ld a, [$cb2c] and a jr z, .asm_e29b2 dec a cp $1 jr z, .asm_e29b2 ld e, a ld a, [hl] and $40 jr nz, Functione2a18 ld a, [hl] and $80 jr nz, Functione2a2c .asm_e29b2 jp Functione2a65 ; known jump sources: e2427 (38:6427), e261f (38:661f) Functione29b5: ; e29b5 (38:69b5) ld hl, $ffa9 ld a, [$cb2d] ld d, a ld a, [$cb2c] ld e, a and a jr z, .asm_e29cd ld a, [hl] and $40 jr nz, Functione2a18 ld a, [hl] and $80 jr nz, Functione2a2c .asm_e29cd jp Functione2a65 ; e29d0 (38:69d0) Functione29d0: ; e29d0 ld hl, $ffa9 ld a, [$cb2d] ld d, a ld a, [$cb2c] ld e, a and a jr z, .asm_e29e8 ld a, [hl] and $40 jr nz, Functione2a18 ld a, [hl] and $80 jr nz, Functione2a2c .asm_e29e8 ld a, [hl] and $20 jr nz, Functione2a48 ld a, [hl] and $10 jr nz, Functione2a56 jr Functione2a65 Functione29f4: ; e29f4 ld hl, $ffa9 ld a, [$cb2d] ld d, a ld a, [$cb2c] ld e, a and a jr z, .asm_e2a0c ld a, [hl] and $40 jr nz, Functione2a18 ld a, [hl] and $80 jr nz, Functione2a2c .asm_e2a0c ld a, [hl] and $20 jr nz, Functione2a48 ld a, [hl] and $10 jr nz, Functione2a56 jr Functione2a65 Functione2a18: ; e2a18 (38:6a18) ld hl, $cb2b ld a, [hl] and a jr z, .asm_e2a22 dec [hl] jr Functione2a68 .asm_e2a22 ld hl, $cb2a ld a, [hl] and a jr z, Functione2a65 dec [hl] jr Functione2a68 Functione2a2c: ; e2a2c (38:6a2c) ld a, [$cb2b] ld hl, $cb2a add [hl] inc a cp e jr nc, Functione2a65 ld hl, $cb2b ld a, [hl] inc a cp d jr nc, .asm_e2a42 inc [hl] jr Functione2a68 .asm_e2a42 ld hl, $cb2a inc [hl] jr Functione2a68 ; e2a48 (38:6a48) Functione2a48: ; e2a48 ld hl, $cb2e ld a, [hl] and a jr z, .asm_e2a52 dec [hl] jr Functione2a6c .asm_e2a52 ld [hl], $e jr Functione2a6c Functione2a56: ; e2a56 ld hl, $cb2e ld a, [hl] cp $e jr z, .asm_e2a61 inc [hl] jr Functione2a6c .asm_e2a61 ld [hl], $0 jr Functione2a6c ; known jump sources: e29b2 (38:69b2), e29cd (38:69cd), e2a27 (38:6a27), e2a35 (38:6a35) Functione2a65: ; e2a65 (38:6a65) xor a and a ret ; known jump sources: e2a20 (38:6a20), e2a2a (38:6a2a), e2a40 (38:6a40), e2a46 (38:6a46) Functione2a68: ; e2a68 (38:6a68) ld a, $1 and a ret ; e2a6c (38:6a6c) Functione2a6c: ; e2a6c scf ret ; e2a6e ; known jump sources: e23f8 (38:63f8), e2471 (38:6471), e24c4 (38:64c4), e24f1 (38:64f1), e252f (38:652f), e25f0 (38:65f0), e2669 (38:6669), e26bc (38:66bc), e26e4 (38:66e4), e2723 (38:6723), e2f4c (38:6f4c), e2f6b (38:6f6b), e30e7 (38:70e7), e316d (38:716d) Functione2a6e: ; e2a6e (38:6a6e) push de ld hl, $c5cc ld bc, $112 call TextBox pop de ld hl, $c5e1 call PlaceString ret ; e2a80 (38:6a80) Functione2a80: ; e2a80 call Functione2a8e ld hl, $c4bc ld [hl], $5f ld hl, $c4c7 ld [hl], $5e ret ; e2a8e ; known jump sources: e23f2 (38:63f2), e25ea (38:65ea) Functione2a8e: ; e2a8e (38:6a8e) ld hl, $c4a8 ld bc, $10a call TextBox ld a, [$cb2e] and a jr z, .asm_e2ab3 cp $f jr nz, .asm_e2aa5 ld a, [wCurBox] inc a .asm_e2aa5 dec a ld hl, Box1Name ; $db75 ld bc, $9 call AddNTimes ld e, l ld d, h jr .asm_e2ab6 .asm_e2ab3 ld de, String_e2abd .asm_e2ab6 ld hl, $c4be call PlaceString ret ; e2abd (38:6abd) String_e2abd: db "PARTY ゅょ@" ; e2ac6 ; known jump sources: e2403 (38:6403), e2435 (38:6435), e24d1 (38:64d1), e25fb (38:65fb), e262d (38:662d), e26c9 (38:66c9) Functione2ac6: ; e2ac6 (38:6ac6) ld hl, TileMap ; $c4a0 (aliases: SpritesEnd) ld bc, $f08 call ClearBox ld hl, $c5c0 ld bc, $103 call ClearBox call Functione2def and a ret z cp $ff ret z ld [$d265], a ld hl, $c4f1 xor a ld b, $7 .asm_e2ae9 ld c, $7 push af push hl .asm_e2aed ld [hli], a add $7 dec c jr nz, .asm_e2aed pop hl ld de, $14 add hl, de pop af inc a dec b jr nz, .asm_e2ae9 call Functione2b6d ld a, [$d265] ld [CurPartySpecies], a ; $d108 ld [CurSpecies], a ; $cf60 ld hl, TempMonDVs ; $d123 ld a, $2d call Predef call GetBaseData ld de, $9000 ld a, $3c call Predef xor a ld [$cb32], a ld a, [CurPartySpecies] ; $d108 ld [$d265], a cp $fd ret z call GetBasePokemonName ld hl, $c5b9 call PlaceString ld hl, $c591 call PrintLevel ld a, $3 ld [MonType], a ; $cf5f callba GetGender jr c, .asm_e2b4f ld a, $ef jr nz, .asm_e2b4b ld a, $f5 .asm_e2b4b ld hl, $c595 ld [hl], a .asm_e2b4f ld a, [TempMonItem] ; $d10f and a ret z ld d, a callab ItemIsMail jr c, .asm_e2b61 ld a, $5d jr .asm_e2b68 .asm_e2b61 ld a, $1 ld [$cb32], a ld a, $5c .asm_e2b68 ld hl, $c597 ld [hl], a ret ; known jump sources: e2afd (38:6afd), e2fb6 (38:6fb6) Functione2b6d: ; e2b6d (38:6b6d) ld a, [$cb2b] ld hl, $cb2a add [hl] ld e, a ld d, $0 ld hl, $c801 add hl, de add hl, de add hl, de ld a, [hl] and a jr z, .asm_e2bc6 cp $f jr z, .asm_e2bf5 ld b, a call Functione3396 ld a, b call GetSRAMBank push hl ld bc, $35 add hl, bc ld bc, $20 ld a, e call AddNTimes ld a, [hl] ld [TempMonLevel], a ; $d12d pop hl push hl ld bc, $17 add hl, bc ld bc, $20 ld a, e call AddNTimes ld a, [hl] ld [TempMonItem], a ; $d10f pop hl ld bc, $2b add hl, bc ld bc, $20 ld a, e call AddNTimes ld de, TempMonDVs ; $d123 ld a, [hli] ld [de], a inc de ld a, [hl] ld [de], a call CloseSRAM ret .asm_e2bc6 ld hl, PartyMon1Level ; $dcfe ld bc, $30 ld a, e call AddNTimes ld a, [hl] ld [TempMonLevel], a ; $d12d ld hl, PartyMon1Item ; $dce0 ld bc, $30 ld a, e call AddNTimes ld a, [hl] ld [TempMonItem], a ; $d10f ld hl, PartyMon1DVs ; $dcf4 ld bc, $30 ld a, e call AddNTimes ld de, TempMonDVs ; $d123 ld a, [hli] ld [de], a inc de ld a, [hl] ld [de], a ret .asm_e2bf5 ld a, $1 call GetSRAMBank ld hl, $ad45 ld bc, $20 ld a, e call AddNTimes ld a, [hl] ld [TempMonLevel], a ; $d12d ld hl, $ad27 ld bc, $20 ld a, e call AddNTimes ld a, [hl] ld [TempMonItem], a ; $d10f ld hl, $ad3b ld bc, $20 ld a, e call AddNTimes ld de, TempMonDVs ; $d123 ld a, [hli] ld [de], a inc de ld a, [hl] ld [de], a call CloseSRAM ret ; known jump sources: e2400 (38:6400), e2432 (38:6432), e25f8 (38:65f8), e262a (38:662a) Functione2c2c: ; e2c2c (38:6c2c) ld hl, $c4d0 ld bc, $a0a call TextBox ld hl, $c4d0 ld [hl], $7d ld hl, $c4db ld [hl], $7e ld a, [$cb2a] ld e, a ld d, $0 ld hl, OverworldMap ; $c800 add hl, de add hl, de add hl, de ld e, l ld d, h ld hl, $c4f9 ld a, [$cb2d] .asm_e2c53 push af push de push hl call Functione2c6e pop hl ld de, $28 add hl, de pop de inc de inc de inc de pop af dec a jr nz, .asm_e2c53 ret ; e2c67 (38:6c67) String_e2c67: db "CANCEL@" ; e2c6e ; known jump sources: e2c56 (38:6c56) Functione2c6e: ; e2c6e (38:6c6e) ld a, [de] and a ret z cp $ff jr nz, .asm_e2c7c ld de, String_e2c67 call PlaceString ret .asm_e2c7c inc de ld a, [de] ld b, a inc de ld a, [de] ld e, a ld a, b and a jr z, .asm_e2cc8 cp $f jr z, .asm_e2cf1 push hl call Functione3396 ld a, b call GetSRAMBank push hl ld bc, $16 add hl, bc ld bc, $20 ld a, e call AddNTimes ld a, [hl] pop hl and a jr z, .asm_e2cc2 ld bc, $372 add hl, bc ld bc, $b ld a, e call AddNTimes ld de, StringBuffer1 ; $d073 ld bc, $b call CopyBytes call CloseSRAM pop hl ld de, StringBuffer1 ; $d073 call PlaceString ret .asm_e2cc2 call CloseSRAM pop hl jr .asm_e2d23 .asm_e2cc8 push hl ld hl, PartySpecies ; $dcd8 ld d, $0 add hl, de ld a, [hl] and a jr z, .asm_e2cee ld hl, PartyMonNicknames ; $de41 (aliases: PartyMon1Nickname) ld bc, $b ld a, e call AddNTimes ld de, StringBuffer1 ; $d073 ld bc, $b call CopyBytes pop hl ld de, StringBuffer1 ; $d073 call PlaceString ret .asm_e2cee pop hl jr .asm_e2d23 .asm_e2cf1 push hl ld a, $1 call GetSRAMBank ld hl, $ad11 ld d, $0 add hl, de ld a, [hl] and a jr z, .asm_e2d1f ld hl, $b082 ld bc, $b ld a, e call AddNTimes ld de, StringBuffer1 ; $d073 ld bc, $b call CopyBytes call CloseSRAM pop hl ld de, StringBuffer1 ; $d073 call PlaceString ret .asm_e2d1f call CloseSRAM pop hl .asm_e2d23 ld de, String_e2d2a call PlaceString ret ; e2d2a (38:6d2a) String_e2d2a: db "-----@" ; e2d30 ; known jump sources: e23ef (38:63ef), e25e7 (38:65e7) Functione2d30: ; e2d30 (38:6d30) xor a ld hl, OverworldMap ; $c800 ld bc, $5a call ByteFill ld de, OverworldMap ; $c800 xor a ld [$d003], a ld [$d004], a ld a, [$cb2e] and a jr z, .asm_e2d87 cp $f jr z, .asm_e2db7 ld b, a call Functione3396 ld a, b call GetSRAMBank inc hl .asm_e2d57 ld a, [hl] cp $ff jr z, .asm_e2d79 and a jr z, .asm_e2d79 ld [de], a inc de ld a, [$cb2e] ld [de], a inc de ld a, [$d003] ld [de], a inc a ld [$d003], a inc de inc hl ld a, [$d004] inc a ld [$d004], a jr .asm_e2d57 .asm_e2d79 call CloseSRAM ld a, $ff ld [de], a ld a, [$d004] inc a ld [$cb2c], a ret .asm_e2d87 ld hl, PartySpecies ; $dcd8 .asm_e2d8a ld a, [hl] cp $ff jr z, .asm_e2dac and a jr z, .asm_e2dac ld [de], a inc de ld a, [$cb2e] ld [de], a inc de ld a, [$d003] ld [de], a inc a ld [$d003], a inc de inc hl ld a, [$d004] inc a ld [$d004], a jr .asm_e2d8a .asm_e2dac ld a, $ff ld [de], a ld a, [$d004] inc a ld [$cb2c], a ret .asm_e2db7 ld a, $1 call GetSRAMBank ld hl, $ad11 .asm_e2dbf ld a, [hl] cp $ff jr z, .asm_e2de1 and a jr z, .asm_e2de1 ld [de], a inc de ld a, [$cb2e] ld [de], a inc de ld a, [$d003] ld [de], a inc a ld [$d003], a inc de inc hl ld a, [$d004] inc a ld [$d004], a jr .asm_e2dbf .asm_e2de1 call CloseSRAM ld a, $ff ld [de], a ld a, [$d004] inc a ld [$cb2c], a ret ; known jump sources: e2443 (38:6443), e2463 (38:6463), e24d4 (38:64d4), e263b (38:663b), e265b (38:665b), e26cc (38:66cc), e2ad8 (38:6ad8), e2fb0 (38:6fb0) Functione2def: ; e2def (38:6def) ld a, [$cb2b] ld hl, $cb2a add [hl] ld e, a ld d, $0 ld hl, OverworldMap ; $c800 add hl, de add hl, de add hl, de ld a, [hl] ret ; known jump sources: e2413 (38:6413), e242c (38:642c), e260b (38:660b), e2624 (38:6624) Functione2e01: ; e2e01 (38:6e01) ld a, [$cb2c] and a jr nz, .asm_e2e0b call ClearSprites ret .asm_e2e0b ld hl, Unknown_e2e2b ld de, Sprites ; $c400 .asm_e2e11 ld a, [hl] cp $ff ret z ld a, [$cb2b] and $7 swap a add [hl] inc hl ld [de], a inc de ld a, [hli] ld [de], a inc de ld a, [hli] ld [de], a inc de ld a, [hli] ld [de], a inc de jr .asm_e2e11 ; e2e2b (38:6e2b) Unknown_e2e2b: ; e2e2b INCBIN "baserom.gbc", $e2e2b, $e2e8c - $e2e2b Functione2e8c: ; e2e8c ld hl, Unknown_e2eac ld de, Sprites .asm_e2e92 ld a, [hl] cp $ff ret z ld a, [$cb2b] and $7 swap a add [hl] inc hl ld [de], a inc de ld a, [hli] ld [de], a inc de ld a, [hli] ld [de], a inc de ld a, [hli] ld [de], a inc de jr .asm_e2e92 ; e2eac Unknown_e2eac: ; e2eac INCBIN "baserom.gbc", $e2eac, $e2ee5 - $e2eac Functione2ee5: ; e2ee5 ld hl, $cb2e ld a, [$cb31] cp [hl] jr z, .asm_e2f00 ld a, [$cb2e] and a jr z, .asm_e2ef8 ld e, $15 jr .asm_e2efa .asm_e2ef8 ld e, $7 .asm_e2efa ld a, [$cb2c] cp e jr nc, .asm_e2f02 .asm_e2f00 and a ret .asm_e2f02 ld de, String_e3521 call Functione2a6e ld de, SFX_WRONG call WaitPlaySFX call WaitSFX ld c, $32 call DelayFrames scf ret ; e2f18 ; known jump sources: e24a9 (38:64a9), e24e0 (38:64e0), e26a1 (38:66a1) Functione2f18: ; e2f18 (38:6f18) ld a, [$cb2e] and a jr nz, .asm_e2f3d ld a, [$cb2c] cp $3 jr c, .asm_e2f49 ld a, [$cb2b] ld hl, $cb2a add [hl] ld [CurPartyMon], a ; $d109 callba Functione538 jr c, .asm_e2f44 ld a, [$cb32] and a jr nz, .asm_e2f3f .asm_e2f3d and a ret .asm_e2f3f ld de, String_e3544 jr .asm_e2f4c .asm_e2f44 ld de, String_e3531 jr .asm_e2f4c .asm_e2f49 ld de, String_e350f .asm_e2f4c call Functione2a6e ld de, SFX_WRONG call WaitPlaySFX call WaitSFX ld c, $32 call DelayFrames scf ret ; known jump sources: e24e5 (38:64e5), e26dc (38:66dc) Functione2f5f: ; e2f5f (38:6f5f) ld a, [CurPartySpecies] ; $d108 cp EGG jr z, .asm_e2f68 and a ret .asm_e2f68 ld de, String_e3597 call Functione2a6e ld de, SFX_WRONG call WaitPlaySFX call WaitSFX ld c, $32 call DelayFrames scf ret ; known jump sources: e24cb (38:64cb), e26c3 (38:66c3) Functione2f7e: ; e2f7e (38:6f7e) call LowVolume call Functione2fd6 ld a, $3 ld [MonType], a ; $cf5f ld a, $25 call Predef call Functione33e8 call MaxVolume ret ; no known jump sources Functione2f95: ; e2f95 (38:6f95) ld hl, hJoyPressed ; $ffa7 ld a, [hl] and A_BUTTON | B_BUTTON | D_RIGHT + D_LEFT ld [$cf73], a jr nz, .asm_e2fd0 ld a, [hl] and D_DOWN | D_UP ld [$cf73], a jr nz, .asm_e2faa jr .asm_e2fd0 .asm_e2faa call Functione2998 and a jr z, .asm_e2fd1 call Functione2def ld [$d265], a call Functione2b6d ld a, [$d265] ld [CurPartySpecies], a ; $d108 ld [CurSpecies], a ; $cf60 ld hl, TempMonDVs ; $d123 ld a, $2d call Predef call GetBaseData call Functione2fd6 .asm_e2fd0 ret .asm_e2fd1 xor a ld [$cf73], a ret ; known jump sources: e2f81 (38:6f81), e2fcd (38:6fcd) Functione2fd6: ; e2fd6 (38:6fd6) ld a, [$cb2b] ld hl, $cb2a add [hl] ld [CurPartyMon], a ; $d109 ld a, [$cb2e] and a jr z, .asm_e3020 cp $f jr nz, .asm_e3048 ld a, $1 call GetSRAMBank ld hl, $ad11 call Functione3357 ld hl, $b082 call Functione3363 ld hl, $afa6 call Functione3376 ld hl, $ad26 ld bc, $20 ld a, [CurPartyMon] ; $d109 call AddNTimes ld de, $d018 ld bc, $30 call CopyBytes call CloseSRAM callba Function5088b ret .asm_e3020 ld hl, PartySpecies ; $dcd8 call Functione3357 ld hl, PartyMonNicknames ; $de41 (aliases: PartyMon1Nickname) call Functione3363 ld hl, PartyMonOT ; $ddff (aliases: PartyMon1OT) call Functione3376 ld hl, PartyMons ; $dcdf (aliases: PartyMon1, PartyMon1Species) ld bc, $30 ld a, [CurPartyMon] ; $d109 call AddNTimes ld de, $d018 ld bc, $30 call CopyBytes ret .asm_e3048 ld b, a call Functione3396 ld a, b call GetSRAMBank push hl inc hl call Functione3357 pop hl push hl ld bc, $372 add hl, bc call Functione3363 pop hl push hl ld bc, $296 add hl, bc call Functione3376 pop hl ld bc, $16 add hl, bc ld bc, $20 call Functione3389 call CloseSRAM callba Function5088b ret ; known jump sources: e24af (38:64af) Functione307c: ; e307c (38:707c) ld a, [$cb2b] ld hl, $cb2a add [hl] ld [CurPartyMon], a ; $d109 ld hl, PartyMonNicknames ; $de41 (aliases: PartyMon1Nickname) ld a, [CurPartyMon] ; $d109 call GetNick ld a, $1 ld [$d10b], a ld a, $8 call Predef jr c, .asm_e30e4 xor a ld [$d10b], a callba Functione039 ld a, [CurPartySpecies] ; $d108 call Function37ce ld hl, TileMap ; $c4a0 (aliases: SpritesEnd) ld bc, $f08 call ClearBox ld hl, $c5c0 ld bc, $103 call ClearBox ld hl, $c5cc ld bc, $112 call TextBox call WaitBGMap ld hl, $c5e1 ld de, String_e3563 call PlaceString ld l, c ld h, b ld de, StringBuffer1 ; $d073 call PlaceString ld a, $e7 ld [bc], a ld c, $32 call DelayFrames and a ret .asm_e30e4 ld de, String_e3575 call Functione2a6e ld de, SFX_WRONG call WaitPlaySFX call WaitSFX ld c, $32 call DelayFrames scf ret ; known jump sources: e26a7 (38:66a7) Functione30fa: ; e30fa (38:70fa) ld a, [$cb2b] ld hl, $cb2a add [hl] ld [CurPartyMon], a ; $d109 ld a, $1 call GetSRAMBank ld a, [CurPartyMon] ; $d109 ld hl, $b082 call GetNick call CloseSRAM xor a ld [$d10b], a ld a, $8 call Predef jr c, .asm_e316a ld a, $1 ld [$d10b], a callba Functione039 ld a, [CurPartySpecies] ; $d108 call Function37ce ld hl, TileMap ; $c4a0 (aliases: SpritesEnd) ld bc, $f08 call ClearBox ld hl, $c5c0 ld bc, $103 call ClearBox ld hl, $c5cc ld bc, $112 call TextBox call WaitBGMap ld hl, $c5e1 ld de, String_e356b call PlaceString ld l, c ld h, b ld de, StringBuffer1 ; $d073 call PlaceString ld a, $e7 ld [bc], a ld c, $32 call DelayFrames and a ret .asm_e316a ld de, String_e3586 call Functione2a6e ld de, SFX_WRONG call WaitPlaySFX call WaitSFX ld c, $32 call DelayFrames scf ret ; known jump sources: e251b (38:651b), e270f (38:670f) Functione3180: ; e3180 (38:7180) ld hl, TileMap ; $c4a0 (aliases: SpritesEnd) ld bc, $f08 call ClearBox ld hl, $c5c0 ld bc, $103 call ClearBox ld hl, $c5cc ld bc, $112 call TextBox call WaitBGMap ld a, [CurPartySpecies] ; $d108 call Function381e jr c, .asm_e31ab ld e, c ld d, b call PlayCryHeader .asm_e31ab ld a, [CurPartySpecies] ; $d108 ld [$d265], a call GetPokemonName ld hl, $c5e1 ld de, String_e3551 call PlaceString ld c, $50 call DelayFrames ld hl, $c5cc ld bc, $112 call TextBox ld hl, $c5e1 ld de, String_e355e call PlaceString ld l, c ld h, b inc hl ld de, StringBuffer1 ; $d073 call PlaceString ld l, c ld h, b ld [hl], $e7 ld c, $32 call DelayFrames ret ; e31e7 (38:71e7) Functione31e7: ; e31e7 push hl push de push bc push af ld hl, $c5cc ld bc, $0112 call TextBox ld hl, $c5e1 ld de, String_e3233 call PlaceString ld c, $14 call DelayFrames pop af pop bc pop de pop hl ld a, [wCurBox] push af ld bc, NULL ld a, [$cb31] and a jr nz, .asm_e3215 set 0, c .asm_e3215 ld a, [$cb2e] and a jr nz, .asm_e321d set 1, c .asm_e321d ld hl, Jumptable_e3245 add hl, bc add hl, bc ld a, [hli] ld h, [hl] ld l, a ld de, Functione322a push de jp [hl] ; e322a Functione322a: ; e322a pop af ld e, a callba Function14ad5 ret ; e3233 String_e3233: db "Saving… Leave ON!@" ; e3245 Jumptable_e3245: ; e3245 dw Functione324d dw Functione3267 dw Functione327d dw Functione3284 ; e324d Functione324d: ; e324d ld hl, $cb31 ld a, [$cb2e] cp [hl] jr z, .asm_e325d call Functione32b0 call Functione32fa ret .asm_e325d call Functione32b0 call Functione328e call Functione32fa ret ; e3267 Functione3267: ; e3267 call Functione3316 ld a, $1 ld [$c2cd], a callba Function14b85 xor a ld [$c2cd], a call Functione32fa ret ; e327d Functione327d: ; e327d call Functione32b0 call Functione3346 ret ; e3284 Functione3284: ; e3284 call Functione3316 call Functione328e call Functione3346 ret ; e328e Functione328e: ; e328e ld a, [$cb2b] ld hl, $cb2a add [hl] ld e, a ld a, [$cb30] ld hl, $cb2f add [hl] cp e ret nc ld hl, $cb2b ld a, [hl] and a jr z, .asm_e32a8 dec [hl] ret .asm_e32a8 ld hl, $cb2a ld a, [hl] and a ret z dec [hl] ret ; e32b0 Functione32b0: ; e32b0 ld a, [$cb31] dec a ld e, a callba Function14ac2 ld a, [$cb30] ld hl, $cb2f add [hl] ld [CurPartyMon], a ld a, $1 call GetSRAMBank ld hl, BoxSpecies call Functione3357 ld hl, BoxMon1Nickname call Functione3363 ld hl, BoxMon1OT call Functione3376 ld hl, BoxMon1Species ld bc, $0020 call Functione3389 call CloseSRAM callba Function5088b ld a, $1 ld [$d10b], a callba Functione039 ret ; e32fa Functione32fa: ; e32fa ld a, [$cb2e] dec a ld e, a callba Function14ac2 ld a, [$cb2b] ld hl, $cb2a add [hl] ld [CurPartyMon], a callba Function51322 ret ; e3316 Functione3316: ; e3316 ld a, [$cb30] ld hl, $cb2f add [hl] ld [CurPartyMon], a ld hl, PartySpecies call Functione3357 ld hl, PartyMon1Nickname call Functione3363 ld hl, PartyMon1OT call Functione3376 ld hl, PartyMon1Species ld bc, $0030 call Functione3389 xor a ld [$d10b], a callba Functione039 ret ; e3346 Functione3346: ; e3346 ld a, [$cb2b] ld hl, $cb2a add [hl] ld [CurPartyMon], a callba Function5138b ret ; e3357 ; known jump sources: e2ff2 (38:6ff2), e3023 (38:7023), e3052 (38:7052) Functione3357: ; e3357 (38:7357) ld a, [CurPartyMon] ; $d109 ld c, a ld b, $0 add hl, bc ld a, [hl] ld [CurPartySpecies], a ; $d108 ret ; known jump sources: e2ff8 (38:6ff8), e3029 (38:7029), e305b (38:705b) Functione3363: ; e3363 (38:7363) ld bc, $b ld a, [CurPartyMon] ; $d109 call AddNTimes ld de, DefaultFlypoint ; $d002 ld bc, $b call CopyBytes ret ; known jump sources: e2ffe (38:6ffe), e302f (38:702f), e3064 (38:7064) Functione3376: ; e3376 (38:7376) ld bc, $b ld a, [CurPartyMon] ; $d109 call AddNTimes ld de, $d00d ld bc, $b call CopyBytes ret ; known jump sources: e306f (38:706f) Functione3389: ; e3389 (38:7389) ld a, [CurPartyMon] ; $d109 call AddNTimes ld de, $d018 call CopyBytes ret ; known jump sources: e2b86 (38:6b86), e2c8b (38:6c8b), e2d4f (38:6d4f), e3049 (38:7049) Functione3396: ; e3396 (38:7396) dec b ld c, b ld b, 0 ld hl, Unknown_e33a6 add hl, bc add hl, bc add hl, bc ld a, [hli] ld b, a ld a, [hli] ld h, [hl] ld l, a ret ; e33a6 (38:73a6) Unknown_e33a6: ; e33a6 ; bank, address dbw $02, $a000 dbw $02, $a450 dbw $02, $a8a0 dbw $02, $acf0 dbw $02, $b140 dbw $02, $b590 dbw $02, $b9e0 dbw $03, $a000 dbw $03, $a450 dbw $03, $a8a0 dbw $03, $acf0 dbw $03, $b140 dbw $03, $b590 dbw $03, $b9e0 ; e33d0 ; known jump sources: e240d (38:640d), e246b (38:646b), e24dc (38:64dc), e2605 (38:6605), e2663 (38:6663), e26d4 (38:66d4) Functione33d0: ; e33d0 (38:73d0) ld b, a call GetSGBLayout ld a, $e4 call DmgToCgbBGPals ld a, $fc call Functioncf8 ret ; known jump sources: e23db (38:63db), e25ce (38:65ce) Functione33df: ; e33df (38:73df) ld e, a ld d, $0 add hl, de add hl, de ld a, [hli] ld h, [hl] ld l, a ret ; known jump sources: e296c (38:696c), e2f8e (38:6f8e) Functione33e8: ; e33e8 (38:73e8) call DisableLCD ld hl, $9000 ld bc, $310 xor a call ByteFill call Functione51 call Functione58 ld hl, PCMailGFX ld de, $95c0 ld bc, $40 call CopyBytes ld hl, PCSelectLZ ld de, $8000 call Decompress ld a, $6 call Function3cb4 call EnableLCD ret ; e3419 (38:7419) PCSelectLZ: INCBIN "gfx/pc.2bpp.lz" PCMailGFX: INCBIN "gfx/pc_mail.2bpp" ; e34dd String_e34dd: db "Choose a ゅょ.@" String_e34ea: db "What's up?@" String_e34f4: db "Release ゅょ?@" String_e3500: db "Move to where?@" String_e350f: db "It's your last ゅょ!@" String_e3521: db "There's no room!@" String_e3531: db "No more usable ゅょ!@" String_e3544: db "Remove MAIL.@" String_e3551: db "Released ゅょ.@" String_e355e: db "Bye,@" String_e3563: db "Stored @" String_e356b: db "Got @" String_e3570: db "Non.@" String_e3575: db "The BOX is full.@" String_e3586: db "The party's full!@" String_e3597: db "No releasing EGGS!@" ; e35aa ; no known jump sources Functione35aa: ; e35aa (38:75aa) call Function1d6e call Functione35e2 .asm_e35b0 xor a ld [hBGMapMode], a ; $ff00+$d4 call Functione36cf call Functione379c ld hl, MenuDataHeader_0xe35f1 call Function1d3c xor a ld [$d0e4], a ld hl, $c4f0 ld bc, $809 call TextBox call Function350c ld a, [$cf73] cp $2 jr z, .asm_e35de call Functione37af call Functione36f9 jr .asm_e35b0 .asm_e35de call Function1c17 ret ; known jump sources: e35ad (38:75ad), e372a (38:772a) Functione35e2: ; e35e2 (38:75e2) xor a ld [hBGMapMode], a ; $ff00+$d4 ld hl, TileMap ; $c4a0 (aliases: SpritesEnd) ld bc, $168 ld a, $7f call ByteFill ret ; e35f1 (38:75f1) MenuDataHeader_0xe35f1: ; 0xe35f1 db $40 ; flags db 05, 01 ; start coords db 12, 09 ; end coords dw MenuData2_0xe35f9 db 1 ; default option ; 0xe35f9 MenuData2_0xe35f9: ; 0xe35f9 db $22 ; flags db 4, 0 db 1 dbw BANK(Unknown_e3609), Unknown_e3609 dbw BANK(Functione3619), Functione3619 dbw BANK(NULL), NULL dbw BANK(Functione3632), Functione3632 ; e3609 Unknown_e3609: ; e3609 db 14 db 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 db -1 ; e3619 Functione3619: ; e3619 push de ld a, [MenuSelection] dec a call Functione3626 pop hl call PlaceString ret ; e3626 ; known jump sources: e36e7 (38:76e7), e375d (38:775d), e376e (38:776e) Functione3626: ; e3626 (38:7626) ld bc, $9 ld hl, Box1Name ; $db75 call AddNTimes ld d, h ld e, l ret ; e3632 (38:7632) Functione3632: ; e3632 ld hl, $c537 ld bc, $0507 call TextBox ld a, [MenuSelection] cp $ff ret z ld hl, $c560 ld de, String_e3663 call PlaceString call Functione366c ld [$d265], a ld hl, $c589 ld de, $d265 ld bc, $0102 call PrintNum ld de, String_e3668 call PlaceString ret ; e3663 String_e3663: ; e3663 db "#MON@" ; e3668 String_e3668: ; e3668 db "/20@" ; e366c ; known jump sources: e3717 (38:7717) Functione366c: ; e366c (38:766c) ld a, [wCurBox] ld c, a ld a, [MenuSelection] ; $cf74 dec a cp c jr z, .asm_e3697 ld c, a ld b, 0 ld hl, Unknown_e36a5 add hl, bc add hl, bc add hl, bc ld a, [hli] ld b, a call GetSRAMBank ld a, [hli] ld h, [hl] ld l, a ld a, [hl] call CloseSRAM ld c, a ld a, [$d4b4] and a jr z, .asm_e3695 ld a, c ret .asm_e3695 xor a ret .asm_e3697 ld a, 1 ld b, a call GetSRAMBank ld hl, $ad10 ld a, [hl] call CloseSRAM ret ; e36a5 (38:76a5) Unknown_e36a5: ; e36a5 ; bank, address dbw $02, $a000 dbw $02, $a450 dbw $02, $a8a0 dbw $02, $acf0 dbw $02, $b140 dbw $02, $b590 dbw $02, $b9e0 dbw $03, $a000 dbw $03, $a450 dbw $03, $a8a0 dbw $03, $acf0 dbw $03, $b140 dbw $03, $b590 dbw $03, $b9e0 ; e36cf ; known jump sources: e35b3 (38:75b3) Functione36cf: ; e36cf (38:76cf) ld hl, TileMap ; $c4a0 (aliases: SpritesEnd) ld b, $2 ld c, $12 call TextBox ld hl, $c4c9 ld de, String_e36f1 call PlaceString ld a, [wCurBox] and $f call Functione3626 ld hl, $c4d3 call PlaceString ret ; e36f1 (38:76f1) String_e36f1: ; e36f1 db "CURRENT@" ; e36f9 ; known jump sources: e35d9 (38:75d9) Functione36f9: ; e36f9 (38:76f9) ld hl, MenuDataHeader_0xe377b call LoadMenuDataHeader call Function1d81 call Function1c07 ret c ld a, [$cfa9] cp $1 jr z, .asm_e3734 cp $2 jr z, .asm_e3745 cp $3 jr z, .asm_e3717 and a ret .asm_e3717 call Functione366c and a jr z, .asm_e372f ld e, l ld d, h ld a, [MenuSelection] ; $cf74 dec a ld c, a callba Function844bc call Functione35e2 and a ret .asm_e372f call Functione37be and a ret .asm_e3734 ld a, [MenuSelection] ; $cf74 dec a ld e, a ld a, [wCurBox] cp e ret z callba Function14a83 ret .asm_e3745 ld b, $4 ld de, DefaultFlypoint ; $d002 callba Function116c1 call ClearTileMap call Functione51 call Functione58 ld a, [MenuSelection] ; $cf74 dec a call Functione3626 ld e, l ld d, h ld hl, DefaultFlypoint ; $d002 ld c, $8 call InitString ld a, [MenuSelection] ; $cf74 dec a call Functione3626 ld de, DefaultFlypoint ; $d002 call CopyName2 ret ; e3778 (38:7778) INCBIN "baserom.gbc",$e3778,$e377b - $e3778 MenuDataHeader_0xe377b: ; 0xe377b db $40 ; flags db 04, 11 ; start coords db 13, 19 ; end coords dw MenuData2_0xe3783 db 1 ; default option ; 0xe3783 MenuData2_0xe3783: ; 0xe3783 db $80 ; flags db 4 ; items db "SWITCH@" db "NAME@" db "PRINT@" db "QUIT@" ; 0xe379c ; known jump sources: e35b6 (38:75b6) Functione379c: ; e379c (38:779c) ld de, String_e37a1 jr Functione37e3 ; e37a1 (38:77a1) String_e37a1: ; e37a1 db "Choose a BOX.@" ; e37af ; known jump sources: e35d6 (38:75d6) Functione37af: ; e37af (38:77af) ld de, String_e37b4 jr Functione37e3 ; e37b4 (38:77b4) String_e37b4: ; e37b4 db "What's up?@" ; e37be ; known jump sources: e372f (38:772f) Functione37be: ; e37be (38:77be) ld de, String_e37d3 call Functione37e3 ld de, SFX_WRONG call WaitPlaySFX call WaitSFX ld c, 50 call DelayFrames ret ; e37d3 (38:77d3) String_e37d3: ; e37d3 db "There's no #MON.@" ; e37e3 ; known jump sources: e379f (38:779f), e37b2 (38:77b2), e37c1 (38:77c1) Functione37e3: ; e37e3 (38:77e3) push de ld hl, $c5b8 ld bc, $212 call TextBox pop de ld hl, $c5e1 call PlaceString ld a, $1 ld [hBGMapMode], a ; $ff00+$d4 ret SECTION "bank39", ROMX, BANK[$39] CopyrightGFX:: ; e4000 INCBIN "gfx/misc/copyright.2bpp" ; e41d0 _OptionsMenu: ; e41d0 ld hl, $ffaa ld a, [hl] push af ld [hl], $1 call WhiteBGMap ld hl, TileMap ld b, $10 ld c, $12 call TextBox ld hl, $c4ca ld de, StringOptions call PlaceString xor a ld [$cf63], a ld c, $6 ;number of items on the menu minus 1 (for cancel) .asm_e41f3 ;this loop will display the settings of each option when the menu is opened push bc xor a ld [$ffa9], a call GetOptionPointer pop bc ld hl, $cf63 inc [hl] dec c jr nz, .asm_e41f3 call Functione4512 xor a ld [$cf63], a inc a ld [hBGMapMode], a call WaitBGMap ld b, $8 call GetSGBLayout call Function32f9 .asm_e4217 call Functiona57 ld a, [hJoyPressed] and $a jr nz, .ExitOptions call OptionsControl jr c, .asm_e422a call GetOptionPointer jr c, .ExitOptions .asm_e422a call Functione455c ld c, $3 call DelayFrames jr .asm_e4217 .ExitOptions ld de, SFX_TRANSACTION call PlaySFX call WaitSFX pop af ld [$ffaa], a ret ; e4241 StringOptions: ; e4241 db "TEXT SPEED", $22 db " :", $22 db "BATTLE SCENE", $22 db " :", $22 db "BATTLE STYLE", $22 db " :", $22 db "SOUND", $22 db " :", $22 db "PRINT", $22 db " :", $22 db "MENU ACCOUNT", $22 db " :", $22 db "FRAME", $22 db " :TYPE", $22 db "CANCEL@" ; e42d6 GetOptionPointer: ; e42d6 ld a, [$cf63] ;load the cusror position to a ld e, a ;copy it to de ld d, 0 ld hl, .Pointers add hl, de add hl, de ld a, [hli] ld h, [hl] ld l, a jp [hl] ;jump to the code of the current highlighted item ; e42e5 .Pointers dw Options_TextSpeed dw Options_BattleScene dw Options_BattleStyle dw Options_Sound dw Options_Print dw Options_MenuAccount dw Options_Frame dw Options_Cancel ; e42f5 Options_TextSpeed: ; e42f5 call GetTextSpeed ld a, [hJoyPressed] bit 5, a jr nz, .LeftPressed bit 4, a jr z, .NonePressed ld a, c ;right pressed cp $2 jr c, .Increase ld c, $ff .Increase inc c ld a, e jr .Save .LeftPressed ld a, c and a jr nz, .Decrease ld c, $3 .Decrease dec c ld a, d .Save ld b, a ld a, [Options] and $f0 or b ld [Options], a .NonePressed ld b, 0 ld hl, .Strings add hl, bc add hl, bc ld e, [hl] inc hl ld d, [hl] hlcoord 11, 3 call PlaceString and a ret ; e4331 .Strings dw .Fast dw .Mid dw .Slow .Fast db "FAST@" .Mid db "MID @" .Slow db "SLOW@" ; e4346 GetTextSpeed: ; e4346 ld a, [Options] ;This converts the number of frames, to 0,1,2 representing speed and 7 cp 5 ;5 frames of delay is slow jr z, .slow cp 1 ;1 frame of delay is fast jr z, .fast ld c, 1 ;set it to mid if not one of the above lb de, 1, 5 ret .slow ld c, 2 lb de, 3, 1 ret .fast ld c, 0 lb de, 5, 3 ret ; e4365 Options_BattleScene: ; e4365 ld hl, Options ld a, [hJoyPressed] bit 5, a jr nz, .LeftPressed bit 4, a jr z, .NonePressed bit 7, [hl] jr nz, .ToggleOn jr .ToggleOff .LeftPressed bit 7, [hl] jr z, .ToggleOff jr .ToggleOn .NonePressed bit 7, [hl] jr z, .ToggleOn jr .ToggleOff .ToggleOn res 7, [hl] ld de, .On jr .Display .ToggleOff set 7, [hl] ld de, .Off .Display hlcoord 11, 5 call PlaceString and a ret ; e4398 .On db "ON @" .Off db "OFF@" ; e43a0 Options_BattleStyle: ; e43a0 ld hl, Options ld a, [hJoyPressed] bit 5, a jr nz, .LeftPressed bit 4, a jr z, .NonePressed bit 6, [hl] jr nz, .ToggleShift jr .ToggleSet .LeftPressed bit 6, [hl] jr z, .ToggleSet jr .ToggleShift .NonePressed bit 6, [hl] jr nz, .ToggleSet .ToggleShift res 6, [hl] ld de, .Shift jr .Display .ToggleSet set 6, [hl] ld de, .Set .Display hlcoord 11, 7 call PlaceString and a ret ; e43d1 .Shift db "SHIFT@" .Set db "SET @" ; e43dd Options_Sound: ; e43dd ld hl, Options ld a, [hJoyPressed] bit 5, a jr nz, .LeftPressed bit 4, a jr z, .NonePressed bit 5, [hl] jr nz, .SetMono jr .SetStereo .LeftPressed bit 5, [hl] jr z, .SetStereo jr .SetMono .NonePressed bit 5, [hl] jr nz, .ToggleStereo jr .ToggleMono .SetMono res 5, [hl] call Function3d47 ;reload the music .ToggleMono ld de, .Mono jr .Display .SetStereo set 5, [hl] call Function3d47 ;reload the music .ToggleStereo ld de, .Stereo .Display hlcoord 11, 9 call PlaceString and a ret ; e4416 .Mono db "MONO @" .Stereo db "STEREO@" ; e4424 Options_Print: ; e4424 call GetPrinterSetting ld a, [hJoyPressed] bit 5, a jr nz, .LeftPressed bit 4, a jr z, .NonePressed ld a, c cp $4 jr c, .Increase ld c, $ff .Increase inc c ld a, e jr .Save .LeftPressed ld a, c and a jr nz, .Decrease ld c, $5 .Decrease dec c ld a, d .Save ld b, a ld [GBPrinter], a .NonePressed ld b, $0 ld hl, .Strings add hl, bc add hl, bc ld e, [hl] inc hl ld d, [hl] hlcoord 11, 11 call PlaceString and a ret ; e445a .Strings dw .Lightest dw .Lighter dw .Normal dw .Darker dw .Darkest .Lightest db "LIGHTEST@" .Lighter db "LIGHTER @" .Normal db "NORMAL @" .Darker db "DARKER @" .Darkest db "DARKEST @" ; e4491 GetPrinterSetting: ; e4491 ld a, [GBPrinter] ;converts from the stored printer setting to 0,1,2,3,4 and a jr z, .IsLightest cp $20 jr z, .IsLight cp $60 jr z, .IsDark cp $7f jr z, .IsDarkest ld c, $2 ;normal if none of the above ld de, $2060 ;the 2 values next to this setting ret .IsLightest ld c, $0 ld de, $7f20 ;the 2 values next to this setting ret .IsLight ld c, $1 ld de, $0040 ;the 2 values next to this setting ret .IsDark ld c, $3 ld de, $407f ;the 2 values next to this setting ret .IsDarkest ld c, $4 ld de, $6000 ;the 2 values next to this setting ret ; e44c1 Options_MenuAccount: ; e44c1 ld hl, Options2 ld a, [hJoyPressed] bit 5, a jr nz, .LeftPressed bit 4, a jr z, .NonePressed bit 0, [hl] jr nz, .ToggleOff jr .ToggleOn .LeftPressed bit 0, [hl] jr z, .ToggleOn jr .ToggleOff .NonePressed bit 0, [hl] jr nz, .ToggleOn .ToggleOff res 0, [hl] ld de, .Off jr .Display .ToggleOn set 0, [hl] ld de, .On .Display hlcoord 11, 13 call PlaceString and a ret ; e44f2 .Off db "OFF@" .On db "ON @" ; e44fa Options_Frame: ; e44fa ld hl, TextBoxFrame ld a, [hJoyPressed] bit 5, a jr nz, .LeftPressed bit 4, a jr nz, .RightPressed and a ret .RightPressed ld a, [hl] inc a jr .Save .LeftPressed ld a, [hl] dec a .Save and $7 ld [hl], a ; fallthrough ; e4512 Functione4512: ; e4512 ld a, [TextBoxFrame] ld hl, $c5dc ;where on the screen the number is drawn add "1" ld [hl], a call Functione5f and a ret ; e4520 Options_Cancel: ; e4520 ld a, [hJoyPressed] and A_BUTTON jr nz, .Exit and a ret .Exit scf ret ; e452a OptionsControl: ; e452a ld hl, $cf63 ld a, [$ffa9] cp $80 jr z, .DownPressed cp $40 jr z, .UpPressed and a ret .DownPressed ld a, [hl] ;load the cursor position to a cp $7 ;maximum number of items in option menu jr nz, .CheckFive ld [hl], $0 scf ret .CheckFive ;I have no idea why this exists... cp $5 jr nz, .Increase ld [hl], $5 .Increase inc [hl] scf ret .UpPressed ld a, [hl] cp $6 jr nz, .NotSix ld [hl], $5 ;Another thing where I'm not sure why it exists scf ret .NotSix and a jr nz, .Decrease ld [hl], $8 ;number of option items +1 .Decrease dec [hl] scf ret ; e455c Functione455c: ; e455c hlcoord 1, 1 ld de, $0014 ld c, $10 .asm_e4564 ld [hl], $7f add hl, de dec c jr nz, .asm_e4564 hlcoord 1, 2 ld bc, $0028 ld a, [$cf63] call AddNTimes ld [hl], $ed ret ; e4579 Functione4579: ; e4579 ld de, MUSIC_NONE call PlayMusic call WhiteBGMap call ClearTileMap ld a, $98 ld [$ffd7], a xor a ld [hBGMapAddress], a ld [hJoyDown], a ld [hSCX], a ld [hSCY], a ld a, $90 ld [hWY], a call WaitBGMap ld b, $19 call GetSGBLayout call Function32f9 ld c, 10 call DelayFrames callab Copyright call WaitBGMap ld c, $64 call DelayFrames call ClearTileMap callba GBCOnlyScreen call Functione45e8 .asm_e45c0 call Functiona57 ld a, [$ffa9] and $f jr nz, .asm_e45de ld a, [$cf63] bit 7, a jr nz, .asm_e45e3 call Functione4670 callba Function8cf69 call DelayFrame jr .asm_e45c0 .asm_e45de call Functione465e scf ret .asm_e45e3 call Functione465e and a ret ; e45e8 Functione45e8: ; e45e8 ld de, GameFreakLogo ld hl, VTiles2 lb bc, BANK(GameFreakLogo), $1c call Get1bpp ld a, [rSVBK] push af ld a, $6 ld [rSVBK], a ld hl, IntroLogoGFX ld de, $d000 ld a, BANK(IntroLogoGFX) call FarDecompress ld hl, VTiles0 ld de, $d000 ld bc, $0180 call Request2bpp ld hl, VTiles1 ld de, $d800 ld bc, $0180 call Request2bpp pop af ld [rSVBK], a callba Function8cf53 ld de, $5458 ld a, $3 call Function3b2a ld hl, $0007 add hl, bc ld [hl], $a0 ld hl, $000c add hl, bc ld [hl], $60 ld hl, $000d add hl, bc ld [hl], $30 xor a ld [$cf63], a ld [$cf64], a ld [$cf65], a ld [hSCX], a ld [hSCY], a ld a, $1 ld [hBGMapMode], a ld a, $90 ld [hWY], a ld de, $e4e4 call DmgToCgbObjPals ret ; e465e Functione465e: ; e465e callba Function8cf53 call ClearTileMap call ClearSprites ld c, $10 call DelayFrames ret ; e4670 Functione4670: ; e4670 ld a, [$cf63] ld e, a ld d, 0 ld hl, Jumptable_e467f add hl, de add hl, de ld a, [hli] ld h, [hl] ld l, a jp [hl] ; e467f Jumptable_e467f: ; e467f dw Functione468c dw Functione468d dw Functione46ba dw Functione46dd ; e4687 Functione4687: ; e4687 ld hl, $cf63 inc [hl] ret ; e468c Functione468c: ; e468c ret ; e468d Functione468d: ; e468d ld hl, $cf65 ld a, [hl] cp $20 jr nc, .asm_e4697 inc [hl] ret .asm_e4697 ld [hl], 0 ld hl, .GAME_FREAK decoord 5, 10 ld bc, .end - .GAME_FREAK call CopyBytes call Functione4687 ld de, SFX_GAME_FREAK_PRESENTS call PlaySFX ret ; e46af .GAME_FREAK ; G A M E _ F R E A K db 0, 1, 2, 3, 13, 4, 5, 3, 1, 6 .end db "@" ; e46ba Functione46ba: ; e46ba ld hl, $cf65 ld a, [hl] cp $40 jr nc, .asm_e46c4 inc [hl] ret .asm_e46c4 ld [hl], 0 ld hl, .presents decoord 7,11 ld bc, .end - .presents call CopyBytes call Functione4687 ret ; e46d6 .presents db 7, 8, 9, 10, 11, 12 .end db "@" ; e46dd Functione46dd: ; e46dd ld hl, $cf65 ld a, [hl] cp $80 jr nc, .asm_e46e7 inc [hl] ret .asm_e46e7 ld hl, $cf63 set 7, [hl] ret ; e46ed ; no known jump sources Functione46ed: ; e46ed (39:46ed) ld hl, $b add hl, bc ld e, [hl] ld d, 0 ld hl, Jumptable_e46fd add hl, de add hl, de ld a, [hli] ld h, [hl] ld l, a jp [hl] ; no known jump sources Jumptable_e46fd: ; e46fd (39:46fd) dw Functione4707 dw Functione470d dw Functione4759 dw Functione4776 dw Functione47ab ; no known jump sources Functione4707: ; e4707 (39:4707) ld hl, $b add hl, bc inc [hl] ret ; no known jump sources Functione470d: ; e470d (39:470d) ld hl, $c add hl, bc ld a, [hl] and a jr z, .asm_e4747 ld d, a ld hl, $d add hl, bc ld a, [hl] and $3f cp $20 jr nc, .asm_e4723 add $20 .asm_e4723 ld e, a callba Functionce765 ld hl, $7 add hl, bc ld [hl], e ld hl, $d add hl, bc ld a, [hl] dec [hl] and $1f ret nz ld hl, $c add hl, bc ld a, [hl] sub $30 ld [hl], a ld de, SFX_DITTO_BOUNCE call PlaySFX ret .asm_e4747 ld hl, $b add hl, bc inc [hl] ld hl, $d add hl, bc ld [hl], $0 ld de, SFX_DITTO_POP_UP call PlaySFX ret ; no known jump sources Functione4759: ; e4759 (39:4759) ld hl, $d add hl, bc ld a, [hl] cp $20 jr nc, .asm_e4764 inc [hl] ret .asm_e4764 ld hl, $b add hl, bc inc [hl] ld hl, $d add hl, bc ld [hl], $0 ld de, SFX_DITTO_TRANSFORM call PlaySFX ret ; no known jump sources Functione4776: ; e4776 (39:4776) ld hl, $d add hl, bc ld a, [hl] cp $40 jr z, .asm_e47a3 inc [hl] srl a srl a ld e, a ld d, $0 ld hl, Unknown_e47ac add hl, de add hl, de ld a, [rSVBK] ; $ff00+$70 push af ld a, $5 ld [rSVBK], a ; $ff00+$70 ld a, [hli] ld [$d0cc], a ld a, [hli] ld [$d0cd], a pop af ld [rSVBK], a ; $ff00+$70 ld a, $1 ld [hCGBPalUpdate], a ; $ff00+$e5 ret .asm_e47a3 ld hl, $b add hl, bc inc [hl] call Functione4687 ; no known jump sources Functione47ab: ; e47ab (39:47ab) ret ; e47ac (39:47ac) Unknown_e47ac: ; e47ac ; Ditto's color as it turns into the Game Freak logo. ; Fade from pink to orange. ; One color per step. RGB 23, 12, 28 RGB 23, 12, 27 RGB 23, 13, 26 RGB 23, 13, 24 RGB 24, 14, 22 RGB 24, 14, 20 RGB 24, 15, 18 RGB 24, 15, 16 RGB 25, 16, 14 RGB 25, 16, 12 RGB 25, 17, 10 RGB 25, 17, 08 RGB 26, 18, 06 RGB 26, 18, 04 RGB 26, 19, 02 RGB 26, 19, 00 ;' e47cc GameFreakLogo: ; e47cc INCBIN "gfx/splash/logo.1bpp" ; e48ac Functione48ac: ; e48ac ld a, [rSVBK] push af ld a, $5 ld [rSVBK], a ld a, [$ffaa] push af ld a, [$ff9e] push af call Functione4901 Functione48bc: ; e48bc call Functiona57 ld a, [$ffa9] and $f jr nz, .asm_e48db ld a, [$cf63] bit 7, a jr nz, .asm_e48e1 call Functione490f callba Function8cf69 call DelayFrame jp Functione48bc .asm_e48db ld de, MUSIC_NONE call PlayMusic .asm_e48e1 call WhiteBGMap call ClearSprites call ClearTileMap xor a ld [hSCX], a ld [hSCY], a ld a, $7 ld [hWX], a ld a, $90 ld [hWY], a pop af ld [$ff9e], a pop af ld [$ffaa], a pop af ld [rSVBK], a ret ; e4901 Functione4901: ; e4901 xor a ld [$ff9e], a ld a, $1 ld [$ffaa], a xor a ld [$ffde], a ld [$cf63], a ret ; e490f Functione490f: ; e490f ld a, [$cf63] ld e, a ld d, 0 ld hl, IntroScenes add hl, de add hl, de ld a, [hli] ld h, [hl] ld l, a jp [hl] ; e491e IntroScenes: ; e491e (39:491e) dw IntroScene1 dw IntroScene2 dw IntroScene3 dw IntroScene4 dw IntroScene5 dw IntroScene6 dw IntroScene7 dw IntroScene8 dw IntroScene9 dw IntroScene10 dw IntroScene11 dw IntroScene12 dw IntroScene13 dw IntroScene14 dw IntroScene15 dw IntroScene16 dw IntroScene17 dw IntroScene18 dw IntroScene19 dw IntroScene20 dw IntroScene21 dw IntroScene22 dw IntroScene23 dw IntroScene24 dw IntroScene25 dw IntroScene26 dw IntroScene27 dw IntroScene28 NextIntroScene: ; e4956 (39:4956) ld hl, $cf63 inc [hl] ret IntroScene1: ; e495b (39:495b) ; Setup the next scene. call Functione54a3 call ClearSprites call ClearTileMap xor a ld [hBGMapMode], a ; $ff00+$d4 ld a, $1 ld [rVBK], a ; $ff00+$4f ld hl, IntroTilemap001 ld de, $9800 call Functione54fa ld a, $0 ld [rVBK], a ; $ff00+$4f ld hl, IntroUnownsGFX ld de, $9000 call Functione54c2 ld hl, IntroPulseGFX ld de, $8000 call Functione54c2 ld hl, IntroTilemap002 ld de, $9800 call Functione54fa ld a, [rSVBK] ; $ff00+$70 push af ld a, $5 ld [rSVBK], a ; $ff00+$70 ld hl, Unknown_e65ad ld de, Unkn1Pals ; $d000 ld bc, $80 call CopyBytes ld hl, Unknown_e65ad ld de, BGPals ; $d080 ld bc, $80 call CopyBytes pop af ld [rSVBK], a ; $ff00+$70 xor a ld [hSCX], a ; $ff00+$cf ld [hSCY], a ; $ff00+$d0 ld a, $7 ld [hWX], a ; $ff00+$d1 ld a, $90 ld [hWY], a ; $ff00+$d2 callba Function8cf53 call Functione549e xor a ld [$cf64], a ld [$cf65], a call NextIntroScene ret IntroScene2: ; e49d6 (39:49d6) ; First Unown (A) fades in, pulses, then fades out. ld hl, $cf64 ld a, [hl] inc [hl] cp $80 jr nc, .asm_e49f9 cp $60 jr nz, .asm_e49f1 push af ld de, $5858 call Functione51dc ld de, SFX_INTRO_UNOWN_1 call PlaySFX pop af .asm_e49f1 ld [$cf65], a xor a call Functione5223 ret .asm_e49f9 call NextIntroScene ret IntroScene3: ; e49fd (39:49fd) ; More setup. Transition to the outdoor scene. call Functione54a3 call ClearSprites call ClearTileMap xor a ld [hBGMapMode], a ; $ff00+$d4 ld a, $1 ld [rVBK], a ; $ff00+$4f ld hl, IntroTilemap003 ld de, $9800 call Functione54fa ld a, $0 ld [rVBK], a ; $ff00+$4f ld hl, IntroBackgroundGFX ld de, $9000 call Functione54c2 ld hl, IntroTilemap004 ld de, $9800 call Functione54fa ld a, [rSVBK] ; $ff00+$70 push af ld a, $5 ld [rSVBK], a ; $ff00+$70 ld hl, Unknown_e5edd ld de, Unkn1Pals ; $d000 ld bc, $80 call CopyBytes ld hl, Unknown_e5edd ld de, BGPals ; $d080 ld bc, $80 call CopyBytes pop af ld [rSVBK], a ; $ff00+$70 xor a ld [hSCX], a ; $ff00+$cf ld [hSCY], a ; $ff00+$d0 ld a, $7 ld [hWX], a ; $ff00+$d1 ld a, $90 ld [hWY], a ; $ff00+$d2 call Functione5516 call Functione549e xor a ld [$cf64], a call NextIntroScene ret IntroScene4: ; e4a69 (39:4a69) ; Scroll the outdoor panorama for a bit. call Functione552f ld hl, $cf64 ld a, [hl] cp $80 jr z, .asm_e4a76 inc [hl] ret .asm_e4a76 call NextIntroScene ret IntroScene5: ; e4a7a (39:4a7a) ; Go back to the Unown. call Functione54a3 call ClearSprites call ClearTileMap xor a ld [hBGMapMode], a ; $ff00+$d4 ld [hLCDStatCustom], a ; $ff00+$c6 ld a, $1 ld [rVBK], a ; $ff00+$4f ld hl, IntroTilemap005 ld de, $9800 call Functione54fa ld a, $0 ld [rVBK], a ; $ff00+$4f ld hl, IntroUnownsGFX ld de, $9000 call Functione54c2 ld hl, IntroPulseGFX ld de, $8000 call Functione54c2 ld hl, IntroTilemap006 ld de, $9800 call Functione54fa ld a, [rSVBK] ; $ff00+$70 push af ld a, $5 ld [rSVBK], a ; $ff00+$70 ld hl, Unknown_e65ad ld de, Unkn1Pals ; $d000 ld bc, $80 call CopyBytes ld hl, Unknown_e65ad ld de, BGPals ; $d080 ld bc, $80 call CopyBytes pop af ld [rSVBK], a ; $ff00+$70 xor a ld [hSCX], a ; $ff00+$cf ld [hSCY], a ; $ff00+$d0 ld a, $7 ld [hWX], a ; $ff00+$d1 ld a, $90 ld [hWY], a ; $ff00+$d2 callba Function8cf53 call Functione549e xor a ld [$cf64], a ld [$cf65], a call NextIntroScene ret IntroScene6: ; e4af7 (39:4af7) ; Two more Unown (I, H) fade in. ld hl, $cf64 ld a, [hl] inc [hl] cp $80 jr nc, .asm_e4b3b cp $60 jr z, .asm_e4b24 cp $40 jr nc, .asm_e4b32 cp $20 jr z, .asm_e4b0e jr .asm_e4b1c .asm_e4b0e push af ld de, $3878 call Functione51dc ld de, SFX_INTRO_UNOWN_2 call PlaySFX pop af .asm_e4b1c ld [$cf65], a xor a call Functione5223 ret .asm_e4b24 push af ld de, $7030 call Functione51dc ld de, SFX_INTRO_UNOWN_1 call PlaySFX pop af .asm_e4b32 ld [$cf65], a ld a, $1 call Functione5223 ret .asm_e4b3b call NextIntroScene ret IntroScene7: ; e4b3f (39:4b3f) ; Back to the outdoor scene. call Functione54a3 call ClearSprites call ClearTileMap xor a ld [hBGMapMode], a ; $ff00+$d4 ld a, $1 ld [rVBK], a ; $ff00+$4f ld hl, IntroTilemap003 ld de, $9800 call Functione54fa ld hl, IntroPichuWooperGFX ld de, $8000 call Functione54c2 ld a, $0 ld [rVBK], a ; $ff00+$4f ld hl, IntroSuicuneRunGFX ld de, $8000 call Functione54de ld hl, IntroBackgroundGFX ld de, $9000 call Functione54c2 ld hl, IntroTilemap004 ld de, $9800 call Functione54fa ld a, [rSVBK] ; $ff00+$70 push af ld a, $5 ld [rSVBK], a ; $ff00+$70 ld hl, Unknown_e5edd ld de, Unkn1Pals ; $d000 ld bc, $80 call CopyBytes ld hl, Unknown_e5edd ld de, BGPals ; $d080 ld bc, $80 call CopyBytes pop af ld [rSVBK], a ; $ff00+$70 xor a ld [hSCX], a ; $ff00+$cf ld [hSCY], a ; $ff00+$d0 ld a, $7 ld [hWX], a ; $ff00+$d1 ld a, $90 ld [hWY], a ; $ff00+$d2 call Functione5516 callba Function8cf53 ld de, $6cd8 ld a, $26 call Function3b2a ld a, $f0 ld [$c3c0], a call Functione549e xor a ld [$cf64], a ld [$cf65], a call NextIntroScene ret IntroScene8: ; e4bd3 (39:4bd3) ; Scroll the scene, then show Suicune running across the screen. ld hl, $cf64 ld a, [hl] inc [hl] cp $40 jr z, .asm_e4be2 jr nc, .asm_e4be8 call Functione552f ret .asm_e4be2 ld de, SFX_INTRO_SUICUNE_3 call PlaySFX .asm_e4be8 ld a, [$c3c0] and a jr z, .asm_e4bf4 sub $8 ld [$c3c0], a ret .asm_e4bf4 ld de, SFX_INTRO_SUICUNE_2 call PlaySFX callba Function8d03d call NextIntroScene ret IntroScene9: ; e4c04 (39:4c04) ; Set up the next scene (same bg). xor a ld [hLCDStatCustom], a ; $ff00+$c6 call ClearSprites ld hl, AttrMap ; $cdd9 ld bc, $f0 ld a, $1 call ByteFill ld bc, $3c ld a, $2 call ByteFill ld bc, $3c ld a, $3 call ByteFill ld a, $2 ld [hBGMapMode], a ; $ff00+$d4 call DelayFrame call DelayFrame call DelayFrame ld a, $c ld [hBGMapAddress], a ; $ff00+$d6 call DelayFrame call DelayFrame call DelayFrame xor a ld [hBGMapMode], a ; $ff00+$d4 ld [hBGMapAddress], a ; $ff00+$d6 ld [$c3c0], a xor a ld [$cf64], a call NextIntroScene ret IntroScene10: ; e4c4f (39:4c4f) ; Wooper and Pichu enter. call Functione546d ld hl, $cf64 ld a, [hl] inc [hl] cp $c0 jr z, .done cp $20 jr z, .wooper cp $40 jr z, .pichu ret .pichu lb de, $a9, $80 ld a, $27 call Function3b2a ld de, SFX_INTRO_PICHU call PlaySFX ret .wooper lb de, $b0, $30 ld a, $28 call Function3b2a ld de, SFX_INTRO_PICHU call PlaySFX ret .done call NextIntroScene ret IntroScene11: ; e4c86 (39:4c86) ; Back to Unown again. call Functione54a3 call ClearSprites call ClearTileMap xor a ld [hBGMapMode], a ; $ff00+$d4 ld [hLCDStatCustom], a ; $ff00+$c6 ld a, $1 ld [rVBK], a ; $ff00+$4f ld hl, IntroTilemap007 ld de, $9800 call Functione54fa ld a, $0 ld [rVBK], a ; $ff00+$4f ld hl, IntroUnownsGFX ld de, $9000 call Functione54c2 ld hl, IntroTilemap008 ld de, $9800 call Functione54fa ld a, [rSVBK] ; $ff00+$70 push af ld a, $5 ld [rSVBK], a ; $ff00+$70 ld hl, Unknown_e65ad ld de, Unkn1Pals ; $d000 ld bc, $80 call CopyBytes ld hl, Unknown_e65ad ld de, BGPals ; $d080 ld bc, $80 call CopyBytes pop af ld [rSVBK], a ; $ff00+$70 xor a ld [hSCX], a ; $ff00+$cf ld [hSCY], a ; $ff00+$d0 ld a, $7 ld [hWX], a ; $ff00+$d1 ld a, $90 ld [hWY], a ; $ff00+$d2 callba Function8cf53 call Functione549e xor a ld [$cf64], a ld [$cf65], a call NextIntroScene ret IntroScene12: ; e4cfa (39:4cfa) ; Even more Unown. call Functione4d36 ld hl, $cf64 ld a, [hl] inc [hl] cp $c0 jr nc, .asm_e4d32 cp $80 jr nc, .asm_e4d1d ld c, a and $1f sla a ld [$cf65], a ld a, c and $e0 srl a swap a call Functione5223 ret .asm_e4d1d ld c, a and $f sla a sla a ld [$cf65], a ld a, c and $70 or $40 swap a call Functione5223 ret .asm_e4d32 call NextIntroScene ret Functione4d36: ; e4d36 (39:4d36) ld a, [$cf64] ld c, a ld hl, Unknown_e4d54 .asm_e4d3d ld a, [hli] cp $ff ret z cp c jr z, .asm_e4d48 inc hl inc hl jr .asm_e4d3d .asm_e4d48 ld a, [hli] ld d, [hl] ld e, a push de call SFXChannelsOff pop de call PlaySFX ret ; e4d54 (39:4d54) Unknown_e4d54: ; e4d54 dbw $00, SFX_INTRO_UNOWN_3 dbw $20, SFX_INTRO_UNOWN_2 dbw $40, SFX_INTRO_UNOWN_1 dbw $60, SFX_INTRO_UNOWN_2 dbw $80, SFX_INTRO_UNOWN_3 dbw $90, SFX_INTRO_UNOWN_2 dbw $a0, SFX_INTRO_UNOWN_1 dbw $b0, SFX_INTRO_UNOWN_2 db $ff ; e4d6d IntroScene13: ; e4d6d (39:4d6d) ; Switch scenes again. call Functione54a3 call ClearSprites call ClearTileMap xor a ld [hBGMapMode], a ; $ff00+$d4 ld a, $1 ld [rVBK], a ; $ff00+$4f ld hl, IntroTilemap003 ld de, $9800 call Functione54fa ld a, $0 ld [rVBK], a ; $ff00+$4f ld hl, IntroSuicuneRunGFX ld de, $8000 call Functione54de ld hl, IntroBackgroundGFX ld de, $9000 call Functione54c2 ld hl, IntroTilemap004 ld de, $9800 call Functione54fa ld a, [rSVBK] ; $ff00+$70 push af ld a, $5 ld [rSVBK], a ; $ff00+$70 ld hl, Unknown_e5edd ld de, Unkn1Pals ; $d000 ld bc, $80 call CopyBytes ld hl, Unknown_e5edd ld de, BGPals ; $d080 ld bc, $80 call CopyBytes pop af ld [rSVBK], a ; $ff00+$70 xor a ld [hSCX], a ; $ff00+$cf ld [hSCY], a ; $ff00+$d0 ld a, $7 ld [hWX], a ; $ff00+$d1 ld a, $90 ld [hWY], a ; $ff00+$d2 callba Function8cf53 lb de, $6c, $58 ld a, $26 call Function3b2a ld de, MUSIC_CRYSTAL_OPENING call PlayMusic xor a ld [$c3c0], a call Functione549e xor a ld [$cf64], a ld [$cf65], a call NextIntroScene ret IntroScene14: ; e4dfa (39:4dfa) ; Suicune runs then jumps. ld a, [hSCX] ; $ff00+$cf sub 10 ld [hSCX], a ; $ff00+$cf ld hl, $cf64 ld a, [hl] inc [hl] cp $80 jr z, .done cp $60 jr z, .jump jr nc, .asm_e4e1a cp $40 jr nc, .asm_e4e33 ret .jump ld de, SFX_INTRO_SUICUNE_4 call PlaySFX .asm_e4e1a ld a, $1 ld [$cf65], a ld a, [$c3c0] cp $88 jr c, .asm_e4e2c sub $8 ld [$c3c0], a ret .asm_e4e2c callba Function8d03d ret .asm_e4e33 ld a, [$c3c0] sub $2 ld [$c3c0], a ret .done call NextIntroScene ret IntroScene15: ; e4e40 (39:4e40) ; Transition to a new scene. call Functione54a3 call ClearSprites call ClearTileMap xor a ld [hBGMapMode], a ; $ff00+$d4 ld a, $1 ld [rVBK], a ; $ff00+$4f ld hl, IntroTilemap009 ld de, $9800 call Functione54fa ld a, $0 ld [rVBK], a ; $ff00+$4f ld hl, IntroSuicuneJumpGFX ld de, $9000 call Functione54c2 ld hl, IntroUnownBackGFX ld de, $8000 call Functione54c2 ld de, GFX_e7a5d ld hl, $8800 lb bc, BANK(GFX_e7a5d), 1 call Request2bpp ld hl, IntroTilemap010 ld de, $9800 call Functione54fa call Functione541b ld a, [rSVBK] ; $ff00+$70 push af ld a, $5 ld [rSVBK], a ; $ff00+$70 ld hl, Unknown_e77dd ld de, Unkn1Pals ; $d000 ld bc, $80 call CopyBytes ld hl, Unknown_e77dd ld de, BGPals ; $d080 ld bc, $80 call CopyBytes pop af ld [rSVBK], a ; $ff00+$70 xor a ld [hSCX], a ; $ff00+$cf ld a, $90 ld [hSCY], a ; $ff00+$d0 ld a, $7 ld [hWX], a ; $ff00+$d1 ld a, $90 ld [hWY], a ; $ff00+$d2 callba Function8cf53 call Functione549e lb de, $40, $28 ld a, $2a call Function3b2a lb de, $60, $00 ld a, $2b call Function3b2a xor a ld [$cf64], a ld [$cf65], a call NextIntroScene ret IntroScene16: ; e4edc (39:4edc) ; Suicune shows its face. An Unown appears in front. ld hl, $cf64 ld a, [hl] inc [hl] cp $80 jr nc, .done call Functione5441 ld a, [hSCY] ; $ff00+$d0 and a ret z add 8 ld [hSCY], a ; $ff00+$d0 ret .done call NextIntroScene ret IntroScene17: ; e4ef5 (39:4ef5) ; ... call Functione54a3 call ClearSprites call ClearTileMap xor a ld [hBGMapMode], a ; $ff00+$d4 ld a, $1 ld [rVBK], a ; $ff00+$4f ld hl, IntroTilemap011 ld de, $9800 call Functione54fa ld a, $0 ld [rVBK], a ; $ff00+$4f ld hl, IntroSuicuneCloseGFX ld de, $8800 call Functione54de ld hl, IntroTilemap012 ld de, $9800 call Functione54fa ld a, [rSVBK] ; $ff00+$70 push af ld a, $5 ld [rSVBK], a ; $ff00+$70 ld hl, Unknown_e6d6d ld de, Unkn1Pals ; $d000 ld bc, $80 call CopyBytes ld hl, Unknown_e6d6d ld de, BGPals ; $d080 ld bc, $80 call CopyBytes pop af ld [rSVBK], a ; $ff00+$70 xor a ld [hSCX], a ; $ff00+$cf ld [hSCY], a ; $ff00+$d0 ld a, $7 ld [hWX], a ; $ff00+$d1 ld a, $90 ld [hWY], a ; $ff00+$d2 callba Function8cf53 call Functione549e xor a ld [$cf64], a ld [$cf65], a call NextIntroScene ret IntroScene18: ; e4f67 (39:4f67) ; Suicune close up. ld hl, $cf64 ld a, [hl] inc [hl] cp $60 jr nc, .done ld a, [hSCX] ; $ff00+$cf cp $60 ret z add 8 ld [hSCX], a ; $ff00+$cf ret .done call NextIntroScene ret IntroScene19: ; e4f7e (39:4f7e) ; More setup. call Functione54a3 call ClearSprites call ClearTileMap xor a ld [hBGMapMode], a ; $ff00+$d4 ld a, $1 ld [rVBK], a ; $ff00+$4f ld hl, IntroTilemap013 ld de, $9800 call Functione54fa ld a, $0 ld [rVBK], a ; $ff00+$4f ld hl, IntroSuicuneBackGFX ld de, $9000 call Functione54c2 ld hl, IntroUnownsGFX ld de, $8800 call Functione54c2 ld de, GFX_e7a5d ld hl, $8ff0 lb bc, BANK(GFX_e7a5d), 1 call Request2bpp ld hl, IntroTilemap014 ld de, $9800 call Functione54fa call Functione541b ld a, [rSVBK] ; $ff00+$70 push af ld a, $5 ld [rSVBK], a ; $ff00+$70 ld hl, Unknown_e77dd ld de, Unkn1Pals ; $d000 ld bc, $80 call CopyBytes ld hl, Unknown_e77dd ld de, BGPals ; $d080 ld bc, $80 call CopyBytes pop af ld [rSVBK], a ; $ff00+$70 xor a ld [hSCX], a ; $ff00+$cf ld a, $d8 ld [hSCY], a ; $ff00+$d0 ld a, $7 ld [hWX], a ; $ff00+$d1 ld a, $90 ld [hWY], a ; $ff00+$d2 callba Function8cf53 ld hl, $c300 xor a ld [hli], a ld [hl], $7f call Functione549e lb de, $60, $00 ld a, $2b call Function3b2a xor a ld [$cf64], a ld [$cf65], a call NextIntroScene ret IntroScene20: ; e5019 (39:5019) ; Suicune running away. A bunch of Unown appear. ld hl, $cf64 ld a, [hl] inc [hl] cp $98 jr nc, .asm_e5059 cp $58 ret nc cp $40 jr nc, .asm_e5032 cp $28 ret nc ld a, [hSCY] ; $ff00+$d0 inc a ld [hSCY], a ; $ff00+$d0 ret .asm_e5032 sub $18 ld c, a and $3 cp $3 ret nz ld a, c and $1c srl a srl a ld [$cf65], a xor a call Functione5348 ret ; e5049 (39:5049) ld a, c and $1c srl a srl a ld [$cf65], a ld a, 1 call Functione5348 ret .asm_e5059 call NextIntroScene ret IntroScene21: ; e505d (39:505d) ; Suicune gets more distant and turns black. call Functione5451 ld c, $3 call DelayFrames xor a ld [hBGMapMode], a ; $ff00+$d4 ld [$cf64], a ld [$cf65], a call NextIntroScene ret IntroScene22: ; e5072 (39:5072) ld hl, $cf64 ld a, [hl] inc [hl] cp $8 jr nc, .done ret .done callba Function8d03d call NextIntroScene ret IntroScene23: ; e5086 (39:5086) xor a ld [$cf64], a call NextIntroScene ret IntroScene24: ; e508e (39:508e) ; Fade to white. ld hl, $cf64 ld a, [hl] inc [hl] cp $20 jr nc, .done ld c, a and $3 ret nz ld a, c and $1c sla a call Functione5172 ret .done ld a, $40 ld [$cf64], a call NextIntroScene ret IntroScene25: ; e50ad (39:50ad) ; Wait around a bit. ld a, [$cf64] dec a jr z, .done ld [$cf64], a ret .done call NextIntroScene ret IntroScene26: ; e50bb (39:50bb) ; Load the final scene. call WhiteBGMap call ClearSprites call ClearTileMap xor a ld [hBGMapMode], a ; $ff00+$d4 ld a, $1 ld [rVBK], a ; $ff00+$4f ld hl, IntroTilemap015 ld de, $9800 call Functione54fa ld a, $0 ld [rVBK], a ; $ff00+$4f ld hl, IntroCrystalUnownsGFX ld de, $9000 call Functione54c2 ld hl, IntroTilemap017 ld de, $9800 call Functione54fa ld a, [rSVBK] ; $ff00+$70 push af ld a, $5 ld [rSVBK], a ; $ff00+$70 ld hl, Unknown_e679d ld de, Unkn1Pals ; $d000 ld bc, $80 call CopyBytes ld hl, Unknown_e679d ld de, BGPals ; $d080 ld bc, $80 call CopyBytes pop af ld [rSVBK], a ; $ff00+$70 xor a ld [hSCX], a ; $ff00+$cf ld [hSCY], a ; $ff00+$d0 ld a, $7 ld [hWX], a ; $ff00+$d1 ld a, $90 ld [hWY], a ; $ff00+$d2 callba Function8cf53 call Functione549e xor a ld [$cf64], a ld [$cf65], a call NextIntroScene ret IntroScene27: ; e512d (39:512d) ; Spell out C R Y S T A L with Unown. ld hl, $cf65 inc [hl] ld hl, $cf64 ld a, [hl] inc [hl] cp $80 jr nc, .done ld c, a and $f ld [$cf65], a ld a, c and $70 swap a call Functione539d ret .done call NextIntroScene ld a, $80 ld [$cf64], a ret IntroScene28: ; e5152 (39:5152) ; Cut out when the music ends, and lead into the title screen. ld hl, $cf64 ld a, [hl] and a jr z, .done dec [hl] cp $18 jr z, .clear cp $8 ret nz ld de, SFX_UNKNOWN_CB call PlaySFX ret .clear call WhiteBGMap ret .done ld hl, $cf63 set 7, [hl] ret Functione5172: ; e5172 (39:5172) ld hl, Unknown_e519c add l ld l, a ld a, $0 adc h ld h, a ld a, [rSVBK] ; $ff00+$70 push af ld a, $5 ld [rSVBK], a ; $ff00+$70 ld de, BGPals ; $d080 ld b, $8 .asm_e5187 push hl ld c, $8 .asm_e518a ld a, [hli] ld [de], a inc de dec c jr nz, .asm_e518a pop hl dec b jr nz, .asm_e5187 pop af ld [rSVBK], a ; $ff00+$70 ld a, $1 ld [hCGBPalUpdate], a ; $ff00+$e5 ret ; e519c (39:519c) Unknown_e519c: ; e519c ; Fade to white. RGB 24, 12, 09 RGB 31, 31, 31 RGB 12, 00, 31 RGB 00, 00, 00 RGB 31, 19, 05 RGB 31, 31, 31 RGB 15, 05, 31 RGB 07, 07, 07 RGB 31, 21, 09 RGB 31, 31, 31 RGB 18, 09, 31 RGB 11, 11, 11 RGB 31, 23, 13 RGB 31, 31, 31 RGB 21, 13, 31 RGB 15, 15, 15 RGB 31, 25, 17 RGB 31, 31, 31 RGB 25, 17, 31 RGB 19, 19, 19 RGB 31, 27, 21 RGB 31, 31, 31 RGB 27, 21, 31 RGB 23, 23, 23 RGB 31, 29, 25 RGB 31, 31, 31 RGB 29, 26, 31 RGB 27, 27, 27 RGB 31, 31, 31 RGB 31, 31, 31 RGB 31, 31, 31 RGB 31, 31, 31 ; e51dc ; known jump sources: e49e7 (39:49e7), e4b12 (39:4b12), e4b28 (39:4b28) Functione51dc: ; e51dc (39:51dc) push de ld a, $29 call Function3b2a ld hl, $c add hl, bc ld [hl], $8 ld a, $3c call Function3b3c pop de push de ld a, $29 call Function3b2a ld hl, $c add hl, bc ld [hl], $18 ld a, $3b call Function3b3c pop de push de ld a, $29 call Function3b2a ld hl, $c add hl, bc ld [hl], $28 ld a, $39 call Function3b3c pop de ld a, $29 call Function3b2a ld hl, $c add hl, bc ld [hl], $38 ld a, $3a call Function3b3c ret ; known jump sources: e49f5 (39:49f5), e4b20 (39:4b20), e4b37 (39:4b37), e4d19 (39:4d19), e4d2e (39:4d2e) Functione5223: ; e5223 (39:5223) add a add a add a ld e, a ld d, $0 ld hl, BGPals ; $d080 add hl, de inc hl inc hl ld a, [$cf65] and $3f cp $1f jr z, .asm_e523e jr c, .asm_e523e ld c, a ld a, $3f sub c .asm_e523e ld c, a ld b, $0 ld a, [rSVBK] ; $ff00+$70 push af ld a, $5 ld [rSVBK], a ; $ff00+$70 push hl push bc ld hl, BGPals ; $d080 ld bc, $40 xor a call ByteFill pop bc pop hl push hl ld hl, Unknown_e5288 add hl, bc add hl, bc ld a, [hli] ld d, [hl] ld e, a pop hl ld a, e ld [hli], a ld a, d ld [hli], a push hl ld hl, Unknown_e52c8 add hl, bc add hl, bc ld a, [hli] ld d, [hl] ld e, a pop hl ld a, e ld [hli], a ld a, d ld [hli], a push hl ld hl, Unknown_e5308 add hl, bc add hl, bc ld a, [hli] ld d, [hl] ld e, a pop hl ld a, e ld [hli], a ld a, d ld [hli], a pop af ld [rSVBK], a ; $ff00+$70 ld a, $1 ld [hCGBPalUpdate], a ; $ff00+$e5 ret ; e5288 (39:5288) Unknown_e5288: ; e5288 ; Fade between black and white. hue = 0 rept 32 RGB hue, hue, hue hue = hue + 1 endr ; e52c8 Unknown_e52c8: ; e52c8 ; Fade between black and light blue. hue = 0 rept 32 RGB 0, hue / 2, hue hue = hue + 1 endr ; e5308 Unknown_e5308: ; e5308 ; Fade between black and blue. hue = 0 rept 32 RGB 0, 0, hue hue = hue + 1 endr ; e5348 ; known jump sources: e5045 (39:5045) Functione5348: ; e5348 (39:5348) and a jr nz, .asm_e5350 ld hl, Unknown_e538d jr .asm_e5353 .asm_e5350 ld hl, Unknown_e5395 .asm_e5353 ld a, [$cf65] and $7 add a add a add a ld c, a ld a, [rSVBK] ; $ff00+$70 push af ld a, $5 ld [rSVBK], a ; $ff00+$70 push bc ld de, BGPals ; $d080 ld a, c add e ld e, a ld a, $0 adc d ld d, a ld bc, $8 call CopyBytes pop bc ld de, Unkn1Pals ; $d000 ld a, c add e ld e, a ld a, $0 adc d ld d, a ld bc, $8 call CopyBytes pop af ld [rSVBK], a ; $ff00+$70 ld a, $1 ld [hCGBPalUpdate], a ; $ff00+$e5 ret ; e538d (39:538d) Unknown_e538d: ; e538d INCBIN "baserom.gbc",$e538d,$e5395 - $e538d Unknown_e5395: ; e5395 INCBIN "baserom.gbc",$e5395,$e539d - $e5395 ; known jump sources: e5145 (39:5145) Functione539d: ; e539d (39:539d) add a add a add a ld e, a ld d, $0 ld hl, BGPals ; $d080 add hl, de inc hl inc hl inc hl inc hl ld a, [$cf65] add a ld c, a ld b, $0 ld a, [rSVBK] ; $ff00+$70 push af ld a, $5 ld [rSVBK], a ; $ff00+$70 push hl ld hl, Unknown_e53db add hl, bc ld a, [hli] ld d, [hl] ld e, a pop hl ld a, e ld [hli], a ld a, d ld [hli], a push hl ld hl, Unknown_e53fb add hl, bc ld a, [hli] ld d, [hl] ld e, a pop hl ld a, e ld [hli], a ld a, d ld [hli], a pop af ld [rSVBK], a ; $ff00+$70 ld a, $1 ld [hCGBPalUpdate], a ; $ff00+$e5 ret ; e53db (39:53db) Unknown_e53db: ; e53db INCBIN "baserom.gbc",$e53db,$e53fb - $e53db Unknown_e53fb: ; e53fb INCBIN "baserom.gbc",$e53fb,$e541b - $e53fb ; known jump sources: e4e84 (39:4e84), e4fc2 (39:4fc2) Functione541b: ; e541b (39:541b) ld a, [rSVBK] ; $ff00+$70 push af ld a, $6 ld [rSVBK], a ; $ff00+$70 ld hl, Unkn1Pals ; $d000 ld de, TileMap ; $c4a0 (aliases: SpritesEnd) ld b, $12 .asm_e542a ld c, $14 .asm_e542c ld a, [hli] ld [de], a inc de dec c jr nz, .asm_e542c ld a, $c add l ld l, a ld a, $0 adc h ld h, a dec b jr nz, .asm_e542a pop af ld [rSVBK], a ; $ff00+$70 ret ; known jump sources: e4ee5 (39:4ee5) Functione5441: ; e5441 (39:5441) ld a, [$cf64] and $3 jr z, Functione5451 cp $3 jr z, .asm_e544d ret .asm_e544d xor a ld [hBGMapMode], a ; $ff00+$d4 ret ; known jump sources: e505d (39:505d), e5446 (39:5446) Functione5451: ; e5451 (39:5451) ld hl, TileMap ; $c4a0 (aliases: SpritesEnd) ld bc, $168 .asm_e5457 ld a, [hl] and a jr z, .asm_e5462 cp $80 jr nc, .asm_e5462 xor $8 ld [hl], a .asm_e5462 inc hl dec bc ld a, c or b jr nz, .asm_e5457 ld a, $1 ld [hBGMapMode], a ; $ff00+$d4 ret ; known jump sources: e4c4f (39:4c4f) Functione546d: ; e546d (39:546d) ld a, [$cf64] cp $24 ret nc and $c srl a ld e, a ld d, $0 ld hl, Unknown_e5496 add hl, de ld a, [hli] ld [$cf68], a ld a, [hli] ld [$cf69], a ld a, $90 ld [$cf6a], a ld a, $90 ld [$cf6b], a ld a, $4 ld [$cf67], a ret ; e5496 (39:5496) Unknown_e5496: ; e5496 INCBIN "baserom.gbc",$e5496,$e549e - $e5496 ; known jump sources: e49c8 (39:49c8), e4a5e (39:4a5e), e4ae9 (39:4ae9), e4bc5 (39:4bc5), e4cec (39:4cec), e4dec (39:4dec), e4ebe (39:4ebe), e4f59 (39:4f59), e5003 (39:5003), e511f (39:511f) Functione549e: ; e549e (39:549e) ld a, $1 ld [hCGBPalUpdate], a ; $ff00+$e5 ret ; known jump sources: e495b (39:495b), e49fd (39:49fd), e4a7a (39:4a7a), e4b3f (39:4b3f), e4c86 (39:4c86), e4d6d (39:4d6d), e4e40 (39:4e40), e4ef5 (39:4ef5), e4f7e (39:4f7e) Functione54a3: ; e54a3 (39:54a3) ld a, [rSVBK] ; $ff00+$70 push af ld a, $5 ld [rSVBK], a ; $ff00+$70 ld hl, BGPals ; $d080 ld bc, $80 xor a call ByteFill pop af ld [rSVBK], a ; $ff00+$70 ld a, $1 ld [hCGBPalUpdate], a ; $ff00+$e5 call DelayFrame call DelayFrame ret ; known jump sources: e497e (39:497e), e4987 (39:4987), e4a20 (39:4a20), e4a9f (39:4a9f), e4aa8 (39:4aa8), e4b5e (39:4b5e), e4b74 (39:4b74), e4cab (39:4cab), e4d99 (39:4d99), e4e63 (39:4e63), e4e6c (39:4e6c), e4fa1 (39:4fa1), e4faa (39:4faa), e50de (39:50de) Functione54c2: ; e54c2 (39:54c2) ld a, [rSVBK] ; $ff00+$70 push af ld a, $6 ld [rSVBK], a ; $ff00+$70 push de ld de, Unkn1Pals ; $d000 call Decompress pop hl ld de, Unkn1Pals ; $d000 ld bc, $180 call Request2bpp pop af ld [rSVBK], a ; $ff00+$70 ret ; known jump sources: e4b6b (39:4b6b), e4d90 (39:4d90), e4f18 (39:4f18) Functione54de: ; e54de (39:54de) ld a, [rSVBK] ; $ff00+$70 push af ld a, $6 ld [rSVBK], a ; $ff00+$70 push de ld de, Unkn1Pals ; $d000 call Decompress pop hl ld de, Unkn1Pals ; $d000 ld bc, $1ff call Request2bpp pop af ld [rSVBK], a ; $ff00+$70 ret ; known jump sources: e4971 (39:4971), e4990 (39:4990), e4a13 (39:4a13), e4a29 (39:4a29), e4a92 (39:4a92), e4ab1 (39:4ab1), e4b55 (39:4b55), e4b7d (39:4b7d), e4c9e (39:4c9e), e4cb4 (39:4cb4), e4d83 (39:4d83), e4da2 (39:4da2), e4e56 (39:4e56), e4e81 (39:4e81), e4f0b (39:4f0b), e4f21 (39:4f21), e4f94 (39:4f94), e4fbf (39:4fbf), e50d1 (39:50d1), e50e7 (39:50e7) Functione54fa: ; e54fa (39:54fa) ld a, [rSVBK] ; $ff00+$70 push af ld a, $6 ld [rSVBK], a ; $ff00+$70 push de ld de, Unkn1Pals ; $d000 call Decompress pop hl ld de, Unkn1Pals ; $d000 ld bc, $140 call Request2bpp pop af ld [rSVBK], a ; $ff00+$70 ret ; known jump sources: e4a5b (39:4a5b), e4baf (39:4baf) Functione5516: ; e5516 (39:5516) ld a, [rSVBK] ; $ff00+$70 push af ld a, $5 ld [rSVBK], a ; $ff00+$70 ld hl, CurMartEnd ; $d100 (aliases: LYOverrides) ld bc, $90 xor a call ByteFill pop af ld [rSVBK], a ; $ff00+$70 ld a, $43 ld [hLCDStatCustom], a ; $ff00+$c6 ret ; known jump sources: e4a69 (39:4a69), e4bde (39:4bde) Functione552f: ; e552f (39:552f) ld a, [rSVBK] ; $ff00+$70 push af ld a, $5 ld [rSVBK], a ; $ff00+$70 ld a, [$cf64] and $1 jr z, .asm_e5548 ld hl, CurMartEnd ; $d100 (aliases: LYOverrides) ld a, [hl] inc a ld bc, $5f call ByteFill .asm_e5548 ld hl, $d15f ld a, [hl] inc a inc a ld bc, $31 call ByteFill ld a, [CurMartEnd] ; $d100 (aliases: LYOverrides) ld [hSCX], a ; $ff00+$cf pop af ld [rSVBK], a ; $ff00+$70 ret IntroSuicuneRunGFX: ; e555d INCBIN "gfx/intro/suicune_run.2bpp.lz" ; e592d IntroPichuWooperGFX: ; e592d INCBIN "gfx/intro/pichu_wooper.2bpp.lz" ; e5c7d IntroBackgroundGFX: ; e5c7d INCBIN "gfx/intro/background.2bpp.lz" ; e5e6d IntroTilemap004: ; e5e6d INCBIN "gfx/intro/004.tilemap.lz" ; e5ecd IntroTilemap003: ; e5ecd INCBIN "gfx/intro/003.tilemap.lz" ; e5edd Unknown_e5edd: ; e5edd INCBIN "baserom.gbc", $e5edd, $e5f5d - $e5edd IntroUnownsGFX: ; e5f5d INCBIN "gfx/intro/unowns.2bpp.lz" ; e634d IntroPulseGFX: ; e634d INCBIN "gfx/intro/pulse.2bpp.lz" ; e63dd IntroTilemap002: ; e63dd INCBIN "gfx/intro/002.tilemap.lz" ; e641d IntroTilemap001: ; e641d INCBIN "gfx/intro/001.tilemap.lz" ; e642d IntroTilemap006: ; e642d INCBIN "gfx/intro/006.tilemap.lz" ; e647d IntroTilemap005: ; e647d INCBIN "gfx/intro/005.tilemap.lz" ; e649d IntroTilemap008: ; e649d INCBIN "gfx/intro/008.tilemap.lz" ; e655d IntroTilemap007: ; e655d INCBIN "gfx/intro/007.tilemap.lz" ; e65ad Unknown_e65ad: ; e65ad INCBIN "baserom.gbc", $e65ad, $e662d - $e65ad IntroCrystalUnownsGFX: ; e662d INCBIN "gfx/intro/crystal_unowns.2bpp.lz" ; e672d IntroTilemap017: ; e672d INCBIN "gfx/intro/017.tilemap.lz" ; e676d IntroTilemap015: ; e676d INCBIN "gfx/intro/015.tilemap.lz" ; e679d Unknown_e679d: ; e679d INCBIN "baserom.gbc", $e679d, $e681d - $e679d IntroSuicuneCloseGFX: ; e681d INCBIN "gfx/intro/suicune_close.2bpp.lz" ; e6c3d IntroTilemap012: ; e6c3d INCBIN "gfx/intro/012.tilemap.lz" ; e6d0d IntroTilemap011: ; e6d0d INCBIN "gfx/intro/011.tilemap.lz" ; e6d6d Unknown_e6d6d: ; e6d6d INCBIN "baserom.gbc", $e6d6d, $e6ded - $e6d6d IntroSuicuneJumpGFX: ; e6ded INCBIN "gfx/intro/suicune_jump.2bpp.lz" ; e72ad IntroSuicuneBackGFX: ; e72ad INCBIN "gfx/intro/suicune_back.2bpp.lz" ; e764d IntroTilemap010: ; e764d INCBIN "gfx/intro/010.tilemap.lz" ; e76ad IntroTilemap009: ; e76ad INCBIN "gfx/intro/009.tilemap.lz" ; e76bd IntroTilemap014: ; e76bd INCBIN "gfx/intro/014.tilemap.lz" ; e778d IntroTilemap013: ; e778d INCBIN "gfx/intro/013.tilemap.lz" ; e77dd Unknown_e77dd: ; e77dd INCBIN "baserom.gbc", $e77dd, $e785d - $e77dd IntroUnownBackGFX: ; e785d INCBIN "gfx/intro/unown_back.2bpp.lz" ; e799d INCBIN "baserom.gbc", $e799d, $e7a5d - $e799d GFX_e7a5d: ; e7a5d INCBIN "baserom.gbc", $e7a5d, $e7a6d - $e7a5d SECTION "bank3E", ROMX, BANK[$3E] FontExtra: INCBIN "gfx/misc/font_extra.2bpp" Font: INCBIN "gfx/misc/font.w128.1bpp" FontBattleExtra: INCBIN "gfx/misc/font_battle_extra.2bpp" Frames: ; f8800 INCBIN "gfx/frames/1.1bpp" INCBIN "gfx/frames/2.1bpp" INCBIN "gfx/frames/3.1bpp" INCBIN "gfx/frames/4.1bpp" INCBIN "gfx/frames/5.1bpp" INCBIN "gfx/frames/6.1bpp" INCBIN "gfx/frames/7.1bpp" INCBIN "gfx/frames/8.1bpp" INCBIN "gfx/frames/9.1bpp" ; f89b0 ; TODO: Various misc graphics here. GFX_f89b0: ; f89b0 INCBIN "baserom.gbc", $f89b0, $f8a90 - $f89b0 ; f8a90 ShinyIcon: ; f8a90 INCBIN "gfx/stats/shiny.2bpp" GFX_f8aa0: ; f8aa0 INCBIN "baserom.gbc", $f8aa0, $f8ac0 - $f8aa0 ; f8ac0 GFX_f8ac0: ; f8ac0 INCBIN "baserom.gbc", $f8ac0, $f8ae0 - $f8ac0 ; f8ae0 GFX_f8ae0: ; f8ae0 INCBIN "baserom.gbc", $f8ae0, $f8b10 - $f8ae0 ; f8b10 GFX_f8b10: ; f8b10 INCBIN "baserom.gbc", $f8b10, $f8ba0 - $f8b10 ; f8ba0 TownMapGFX: ; f8ba0 INCBIN "gfx/misc/town_map.2bpp.lz" ; f8ea4 GFX_f8ea4: ; f8ea4 INCBIN "baserom.gbc", $f8ea4, $f8f24 - $f8ea4 ; f8f24 GFX_f8f24: ; f8f24 INCBIN "baserom.gbc", $f8f24, $f8f34 - $f8f24 ; f8f34 GFX_f8f34: ; f8f34 INCBIN "baserom.gbc", $f8f34, $f9204 - $f8f34 ; f9204 GFX_f9204: ; f9204 INCBIN "baserom.gbc", $f9204, $f9214 - $f9204 ; f9214 GFX_f9214: ; f9214 INCBIN "baserom.gbc", $f9214, $f9344 - $f9214 ; f9344 GFX_f9344: ; f9344 INCBIN "baserom.gbc", $f9344, $f9424 - $f9344 ; f9424 GFX_f9424: ; f9424 INCBIN "baserom.gbc", $f9424, $f9434 - $f9424 ; f9434 Footprints: ; f9434 INCBIN "gfx/misc/footprints.w128.1bpp" ; fb434 INCBIN "baserom.gbc", $fb434, $fb449 - $fb434 Functionfb449:: ; fb449 ld de, Font ld hl, VTiles1 ld bc, Function3e80 ld a, [rLCDC] bit 7, a jp z, Copy1bpp ld de, Font ld hl, VTiles1 ld bc, $3e20 call Functionddc ld de, $4300 ld hl, $8a00 ld bc, $3e20 call Functionddc ld de, $4400 ld hl, $8c00 ld bc, $3e20 call Functionddc ld de, $4500 ld hl, $8e00 ld bc, $3e20 call Functionddc ret ; fb48a Functionfb48a:: ; fb48a ld de, GFX_f9214 ld hl, $9600 lb bc, BANK(GFX_f9214), 1 call Functionddc ld de, GFX_f8f24 ld hl, $9620 lb bc, BANK(GFX_f8f24), 1 call Functiondc9 ld de, FontExtra + $30 ld hl, $9630 lb bc, BANK(FontExtra), $16 call Functiondc9 jr Functionfb4cc ; fb4b0 Functionfb4b0:: ; fb4b0 ld de, GFX_f9424 ld hl, $9610 ld b, BANK(GFX_f9424) ld c, 1 call Functiondc9 ret ; fb4be Functionfb4be:: ; fb4be ld de, FontBattleExtra ld hl, $9600 lb bc, BANK(FontBattleExtra), $19 call Functiondc9 jr Functionfb4cc ; fb4cc Functionfb4cc: ; fb4cc ld a, [TextBoxFrame] and 7 ld bc, $0030 ld hl, Frames call AddNTimes ld d, h ld e, l ld hl, $9790 lb bc, BANK(Frames), 6 call Functionddc ld hl, $97f0 ld de, GFX_f9204 lb bc, BANK(GFX_f9204), 1 call Functionddc ret ; fb4f2 Functionfb4f2: ; fb4f2 ld de, FontBattleExtra ld hl, $9600 lb bc, BANK(FontBattleExtra), $c call Functiondc9 ld hl, $9700 ld de, FontBattleExtra + $100 lb bc, BANK(FontBattleExtra), 3 call Functiondc9 call Functionfb4cc Functionfb50d: ; fb50d ld de, GFX_f8ac0 ld hl, $96c0 lb bc, BANK(GFX_f8ac0), 4 call Functionddc ld de, GFX_f8ae0 ld hl, $9730 lb bc, BANK(GFX_f8ae0), 6 call Functionddc ld de, GFX_f8b10 ld hl, $9550 lb bc, BANK(GFX_f8b10), 9 call Functiondc9 ld de, GFX_f9214 + $90 ld hl, $95e0 lb bc, BANK(GFX_f9214), 2 call Functiondc9 ret ; fb53e Functionfb53e: ; fb53e call Functionfb4be ld de, GFX_f8ac0 ld hl, $96c0 lb bc, BANK(GFX_f8ac0), 4 call Functionddc ld de, GFX_f8ae0 ld hl, $9780 lb bc, BANK(GFX_f8ae0), 1 call Functionddc ld de, GFX_f8ae0 + $18 ld hl, $9760 lb bc, BANK(GFX_f8ae0), 2 call Functionddc ld de, GFX_f8b10 ld hl, $9550 lb bc, BANK(GFX_f8b10), 8 call Functiondc9 Functionfb571: ; fb571 ld de, GFX_f89b0 ld hl, $9310 lb bc, BANK(GFX_f89b0), $11 call Functiondc9 ret ; fb57e Functionfb57e: ; fb57e ld a, [$d003] ld hl, OTPartyMon1Species call GetPartyLocation push hl ld a, [$d003] inc a ld c, a ld b, 0 ld hl, OTPartyCount add hl, bc ld a, [hl] pop hl cp EGG jr z, .asm_fb59c cp [hl] jr nz, .asm_fb5db .asm_fb59c ld b, h ld c, l ld hl, OTPartyMon1Level - OTPartyMon1 add hl, bc ld a, [hl] cp 101 jr nc, .asm_fb5db ld a, [InLinkBattle] cp $1 jr nz, .asm_fb5d9 ld hl, OTPartySpecies ld a, [$d003] ld c, a ld b, 0 add hl, bc ld a, [hl] ; Magnemite and Magneton's types changed ; from Electric to Electric/Steel. cp MAGNEMITE jr z, .asm_fb5d9 cp MAGNETON jr z, .asm_fb5d9 ld [CurSpecies], a call GetBaseData ld hl, $cbea add hl, bc add hl, bc ld a, [BaseType1] cp [hl] jr nz, .asm_fb5db inc hl ld a, [BaseType2] cp [hl] jr nz, .asm_fb5db .asm_fb5d9 and a ret .asm_fb5db scf ret ; fb5dd Functionfb5dd: ; fb5dd ld a, [DefaultFlypoint] ld d, a ld a, [PartyCount] ld b, a ld c, $0 .asm_fb5e7 ld a, c cp d jr z, .asm_fb5f8 push bc ld a, c ld hl, PartyMon1HP call GetPartyLocation pop bc ld a, [hli] or [hl] jr nz, .asm_fb60b .asm_fb5f8 inc c dec b jr nz, .asm_fb5e7 ld a, [$d003] ld hl, OTPartyMon1HP call GetPartyLocation ld a, [hli] or [hl] jr nz, .asm_fb60b scf ret .asm_fb60b and a ret ; fb60d Functionfb60d: ; fb60d ld hl, $c4a4 ld de, PlayerName call PlaceString ld a, $14 ld [bc], a ld hl, $c544 ld de, $d26b call PlaceString ld a, $14 ld [bc], a ld hl, $c4bb ld de, PartySpecies call Functionfb634 ld hl, $c55b ld de, OTPartySpecies Functionfb634: ; fb634 ld c, $0 .asm_fb636 ld a, [de] cp $ff ret z ld [$d265], a push bc push hl push de push hl ld a, c ld [hProduct], a call GetPokemonName pop hl call PlaceString pop de inc de pop hl ld bc, $0014 add hl, bc pop bc inc c jr .asm_fb636 ; fb656 Unknown_fb656: ; fb656 INCBIN "baserom.gbc",$fb656,$fb6ed - $fb656 INCLUDE "event/name_rater.asm" Functionfb841: ; fb841 ld a, [ScriptVar] call Function37f3 jr c, .asm_fb876 ld hl, CryPitch ld a, [hli] ld h, [hl] ld l, a ld bc, $fec0 add hl, bc ld a, l ld [CryPitch], a ld a, h ld [CryEcho], a ld hl, CryLength ld a, [hli] ld h, [hl] ld l, a ld bc, $0060 add hl, bc ld a, l ld [CryLength], a ld a, h ld [$c2b3], a callba PlayCry call WaitSFX .asm_fb876 ret ; fb877 Functionfb877: ; fb877 ld a, [$ffde] push af xor a ld [$ffde], a call LowVolume call WhiteBGMap call ClearTileMap call Function1ad2 call ClearSprites ld a, [$cf65] push af ld a, [hSCX] add $5 ld [hSCX], a xor a ld [$cf65], a callba Function41a7f call Functiona80 ld a, $1 ld [$cf65], a callba Function4424d call Functiona80 pop af ld [$cf65], a call MaxVolume call Function4b6 ld a, [hSCX] add $fb ld [hSCX], a call Functionfb8c8 pop af ld [$ffde], a ret ; fb8c8 Functionfb8c8: ; fb8c8 call ClearTileMap call Functione5f call Functione51 callba Function40ab2 call Function3200 callba Function3da97 ld a, [hli] ld [TempMonDVs], a ld a, [hl] ld [$d124], a ld b, $1c call GetSGBLayout call Function32f9 ret ; fb8f1 Functionfb8f1: ; fb8f1 push bc push hl ld a, [$d265] ld b, a ld c, 0 ld hl, Unknown_fb91c .asm_fb8fc inc c ld a, [hli] cp b jr nz, .asm_fb8fc ld a, c ld [$d265], a pop hl pop bc ret ; fb908 Functionfb908: ; fb908 push bc push hl ld a, [$d265] dec a ld hl, Unknown_fb91c ld b, 0 ld c, a add hl, bc ld a, [hl] ld [$d265], a pop hl pop bc ret ; fb91c Unknown_fb91c: ; fb91c db RHYDON db KANGASKHAN db NIDORAN_M db CLEFAIRY db SPEAROW db VOLTORB db NIDOKING db SLOWBRO db IVYSAUR db EXEGGUTOR db LICKITUNG db EXEGGCUTE db GRIMER db GENGAR db NIDORAN_F db NIDOQUEEN db CUBONE db RHYHORN db LAPRAS db ARCANINE db MEW db GYARADOS db SHELLDER db TENTACOOL db GASTLY db SCYTHER db STARYU db BLASTOISE db PINSIR db TANGELA db SCIZOR db SHUCKLE db GROWLITHE db ONIX db FEAROW db PIDGEY db SLOWPOKE db KADABRA db GRAVELER db CHANSEY db MACHOKE db MR__MIME db HITMONLEE db HITMONCHAN db ARBOK db PARASECT db PSYDUCK db DROWZEE db GOLEM db HERACROSS db MAGMAR db HO_OH db ELECTABUZZ db MAGNETON db KOFFING db SNEASEL db MANKEY db SEEL db DIGLETT db TAUROS db TEDDIURSA db URSARING db SLUGMA db FARFETCH_D db VENONAT db DRAGONITE db MAGCARGO db SWINUB db PILOSWINE db DODUO db POLIWAG db JYNX db MOLTRES db ARTICUNO db ZAPDOS db DITTO db MEOWTH db KRABBY db CORSOLA db REMORAID db OCTILLERY db VULPIX db NINETALES db PIKACHU db RAICHU db DELIBIRD db MANTINE db DRATINI db DRAGONAIR db KABUTO db KABUTOPS db HORSEA db SEADRA db SKARMORY db HOUNDOUR db SANDSHREW db SANDSLASH db OMANYTE db OMASTAR db JIGGLYPUFF db WIGGLYTUFF db EEVEE db FLAREON db JOLTEON db VAPOREON db MACHOP db ZUBAT db EKANS db PARAS db POLIWHIRL db POLIWRATH db WEEDLE db KAKUNA db BEEDRILL db HOUNDOOM db DODRIO db PRIMEAPE db DUGTRIO db VENOMOTH db DEWGONG db KINGDRA db PHANPY db CATERPIE db METAPOD db BUTTERFREE db MACHAMP db DONPHAN db GOLDUCK db HYPNO db GOLBAT db MEWTWO db SNORLAX db MAGIKARP db PORYGON2 db STANTLER db MUK db SMEARGLE db KINGLER db CLOYSTER db TYROGUE db ELECTRODE db CLEFABLE db WEEZING db PERSIAN db MAROWAK db HITMONTOP db HAUNTER db ABRA db ALAKAZAM db PIDGEOTTO db PIDGEOT db STARMIE db BULBASAUR db VENUSAUR db TENTACRUEL db SMOOCHUM db GOLDEEN db SEAKING db ELEKID db MAGBY db MILTANK db BLISSEY db PONYTA db RAPIDASH db RATTATA db RATICATE db NIDORINO db NIDORINA db GEODUDE db PORYGON db AERODACTYL db RAIKOU db MAGNEMITE db ENTEI db SUICUNE db CHARMANDER db SQUIRTLE db CHARMELEON db WARTORTLE db CHARIZARD db LARVITAR db PUPITAR db TYRANITAR db LUGIA db ODDISH db GLOOM db VILEPLUME db BELLSPROUT db WEEPINBELL db VICTREEBEL db CHIKORITA db BAYLEEF db MEGANIUM db CYNDAQUIL db QUILAVA db TYPHLOSION db TOTODILE db CROCONAW db FERALIGATR db SENTRET db FURRET db HOOTHOOT db NOCTOWL db LEDYBA db LEDIAN db SPINARAK db ARIADOS db CROBAT db CHINCHOU db LANTURN db PICHU db CLEFFA db IGGLYBUFF db TOGEPI db TOGETIC db NATU db XATU db MAREEP db FLAAFFY db AMPHAROS db BELLOSSOM db MARILL db AZUMARILL db SUDOWOODO db POLITOED db HOPPIP db SKIPLOOM db JUMPLUFF db AIPOM db SUNKERN db SUNFLORA db YANMA db WOOPER db QUAGSIRE db ESPEON db UMBREON db MURKROW db SLOWKING db MISDREAVUS db UNOWN db WOBBUFFET db GIRAFARIG db PINECO db FORRETRESS db DUNSPARCE db GLIGAR db STEELIX db SNUBBULL db GRANBULL db QWILFISH db WOBBUFFET db WOBBUFFET ; fba18 Functionfba18: ; fba18 ld a, [UnownLetter] ld c, a ld b, 26 ld hl, UnownDex .asm_fba21 ld a, [hli] and a jr z, .asm_fba2b cp c ret z dec b jr nz, .asm_fba21 ret .asm_fba2b dec hl ld [hl], c ret ; fba2e ; no known jump sources Functionfba2e: ; fba2e (3e:7a2e) ld hl, $c5d0 ld bc, $c ld a, $7f call ByteFill ld a, [$c7dd] ld e, a ld d, 0 ld hl, UnownDex ; $ded9 add hl, de ld a, [hl] ld e, a ld d, 0 ld hl, UnownWords add hl, de add hl, de ld a, [hli] ld e, a ld d, [hl] ld hl, $c5d0 .asm_fba52 ld a, [de] cp $ff ret z inc de ld [hli], a jr .asm_fba52 ; fba5a (3e:7a5a) UnownWords: ; fba5a dw UnownWord1 dw UnownWord1 dw UnownWord2 dw UnownWord3 dw UnownWord4 dw UnownWord5 dw UnownWord6 dw UnownWord7 dw UnownWord8 dw UnownWord9 dw UnownWord10 dw UnownWord11 dw UnownWord12 dw UnownWord13 dw UnownWord14 dw UnownWord15 dw UnownWord16 dw UnownWord17 dw UnownWord18 dw UnownWord19 dw UnownWord20 dw UnownWord21 dw UnownWord22 dw UnownWord23 dw UnownWord24 dw UnownWord25 dw UnownWord26 ; fba90 UnownWord1: db $40, $4d, $46, $51, $58, $ff ; ANGRY UnownWord2: db $41, $44, $40, $51, $ff ; BEAR UnownWord3: db $42, $47, $40, $52, $44, $ff ; CHASE UnownWord4: db $43, $48, $51, $44, $42, $53, $ff ; DIRECT UnownWord5: db $44, $4d, $46, $40, $46, $44, $ff ; ENGAGE UnownWord6: db $45, $48, $4d, $43, $ff ; FIND UnownWord7: db $46, $48, $55, $44, $ff ; GIVE UnownWord8: db $47, $44, $4b, $4f, $ff ; HELP UnownWord9: db $48, $4d, $42, $51, $44, $40, $52, $44, $ff ; INCREASE UnownWord10: db $49, $4e, $48, $4d, $ff ; JOIN UnownWord11: db $4a, $44, $44, $4f, $ff ; KEEP UnownWord12: db $4b, $40, $54, $46, $47, $ff ; LAUGH UnownWord13: db $4c, $40, $4a, $44, $ff ; MAKE UnownWord14: db $4d, $54, $59, $59, $4b, $44, $ff ; NUZZLE UnownWord15: db $4e, $41, $52, $44, $51, $55, $44, $ff ; OBSERVE UnownWord16: db $4f, $44, $51, $45, $4e, $51, $4c, $ff ; PERFORM UnownWord17: db $50, $54, $48, $42, $4a, $44, $4d, $ff ; QUICKEN UnownWord18: db $51, $44, $40, $52, $52, $54, $51, $44, $ff ; REASSURE UnownWord19: db $52, $44, $40, $51, $42, $47, $ff ; SEARCH UnownWord20: db $53, $44, $4b, $4b, $ff ; TELL UnownWord21: db $54, $4d, $43, $4e, $ff ; UNDO UnownWord22: db $55, $40, $4d, $48, $52, $47, $ff ; VANISH UnownWord23: db $56, $40, $4d, $53, $ff ; WANT UnownWord24: db $57, $57, $57, $57, $57, $ff ; XXXXX UnownWord25: db $58, $48, $44, $4b, $43, $ff ; YIELD UnownWord26: db $59, $4e, $4e, $4c, $ff ; ZOOM ; fbb32 Functionfbb32: ; fbb32 callba Function50000 jr c, .asm_fbb9e ld a, [CurPartySpecies] cp MAGIKARP jr nz, .asm_fbba4 ld a, [CurPartyMon] ld hl, PartyMon1Species ld bc, $0030 call AddNTimes push hl ld bc, $0015 add hl, bc ld d, h ld e, l pop hl ld bc, $0006 add hl, bc ld b, h ld c, l call CalcMagikarpLength call Functionfbbdb callba Function105f33 ld hl, $7ba9 call PrintText ld hl, Buffer1 ld de, $dfe8 ld c, $2 call StringCmp jr nc, .asm_fbb98 ld hl, Buffer1 ld de, $dfe8 ld a, [hli] ld [de], a inc de ld a, [hl] ld [de], a inc de ld a, [CurPartyMon] ld hl, PartyMon1OT call SkipNames call CopyBytes ld a, $3 ld [ScriptVar], a ret .asm_fbb98 ld a, $2 ld [ScriptVar], a ret .asm_fbb9e ld a, $1 ld [ScriptVar], a ret .asm_fbba4 xor a ld [ScriptVar], a ret ; fbba9 UnknownText_0xfbba9: ; 0xfbba9 ; Let me measure that MAGIKARP. …Hm, it measures @ . text_jump UnknownText_0x1c1203 db "@" ; 0xfbbae Functionfbbae: ; fbbae ld hl, $96e0 ld de, GFX_fbbbb lb bc, BANK(GFX_fbbbb), $02 call Request2bpp ret ; fbbbb GFX_fbbbb: ; fbbb INCBIN "baserom.gbc",$fbbbb,$fbbdb - $fbbbb ; fbbdb Functionfbbdb: ; fbbdb call Functionfbbae ld hl, StringBuffer1 ld de, Buffer1 ld bc, $4102 call PrintNum ld [hl], $6e inc hl ld de, Buffer2 ld bc, $4102 call PrintNum ld [hl], $6f inc hl ld [hl], $50 ret ; fbbfc INCLUDE "battle/magikarp_length.asm" INCBIN "baserom.gbc",$fbccf,$fbcd2 - $fbccf Functionfbcd2: ; fbcd2 ld a, [$dfe8] ld [Buffer1], a ld a, [$dfe9] ld [Buffer2], a call Functionfbbdb ld hl, $7ce8 call PrintText ret ; fbce8 INCBIN "baserom.gbc",$fbce8,$fbced - $fbce8 INCLUDE "battle/hidden_power.asm" Functionfbd54: ; fbd54 xor a ld [hBGMapMode], a ; $ff00+$d4 ld a, [hBattleTurn] ; $ff00+$e4 and a jr z, .asm_fbd61 call Functionfbd96 jr .asm_fbd64 .asm_fbd61 call Functionfbd9d .asm_fbd64 call ClearBox jr Functionfbd91 ; no known jump sources Functionfbd69: ; fbd69 (3e:7d69) callba BattleCommanda6 jr Functionfbd77 ; no known jump sources Functionfbd71: ; fbd71 (3e:7d71) callba BattleCommanda7 ; known jump sources: fbd6f (3e:7d6f) Functionfbd77: ; fbd77 (3e:7d77) xor a ld [hBGMapMode], a ; $ff00+$d4 ld a, [hBattleTurn] ; $ff00+$e4 and a jr z, .asm_fbd85 call Functionfbd96 xor a jr .asm_fbd8a .asm_fbd85 call Functionfbd9d ld a, $31 .asm_fbd8a ld [$FF00+$ad], a ld a, $13 call Predef Functionfbd91: ; fbd91 (3e:7d91) ld a, $1 ld [hBGMapMode], a ; $ff00+$d4 ret ; known jump sources: fbd5c (3e:7d5c), fbd7f (3e:7d7f) Functionfbd96: ; fbd96 (3e:7d96) ld hl, $c4ac ld bc, $707 ret ; known jump sources: fbd61 (3e:7d61), fbd85 (3e:7d85) Functionfbd9d: ; fbd9d (3e:7d9d) ld hl, $c51a ld bc, $606 ret DoWeatherModifiers: ; fbda4 ld de, .WeatherTypeModifiers ld a, [Weather] ld b, a ld a, [$d265] ; move type ld c, a .CheckWeatherType ld a, [de] inc de cp $ff jr z, .asm_fbdc0 cp b jr nz, .NextWeatherType ld a, [de] cp c jr z, .ApplyModifier .NextWeatherType inc de inc de jr .CheckWeatherType .asm_fbdc0 ld de, .WeatherMoveModifiers ld a, BATTLE_VARS_MOVE_EFFECT call GetBattleVar ld c, a .CheckWeatherMove ld a, [de] inc de cp $ff jr z, .done cp b jr nz, .NextWeatherMove ld a, [de] cp c jr z, .ApplyModifier .NextWeatherMove inc de inc de jr .CheckWeatherMove .ApplyModifier xor a ld [hMultiplicand], a ld hl, CurDamage ld a, [hli] ld [$ffb5], a ld a, [hl] ld [$ffb6], a inc de ld a, [de] ld [hMultiplier], a call Multiply ld a, 10 ld [hMultiplier], a ld b, $4 call Divide ld a, [hMultiplicand] and a ld bc, $ffff jr nz, .Update ld a, [$ffb5] ld b, a ld a, [$ffb6] ld c, a or b jr nz, .Update ld bc, 1 .Update ld a, b ld [CurDamage], a ld a, c ld [CurDamage + 1], a .done ret .WeatherTypeModifiers db WEATHER_RAIN, WATER, 15 db WEATHER_RAIN, FIRE, 05 db WEATHER_SUN, FIRE, 15 db WEATHER_SUN, WATER, 05 db $ff .WeatherMoveModifiers db WEATHER_RAIN, EFFECT_SOLARBEAM, 05 db $ff ; fbe24 DoBadgeTypeBoosts: ; fbe24 ld a, [InLinkBattle] and a ret nz ld a, [$cfc0] and a ret nz ld a, [hBattleTurn] and a ret nz push de push bc ld hl, .BadgeTypes ld a, [KantoBadges] ld b, a ld a, [JohtoBadges] ld c, a .CheckBadge ld a, [hl] cp $ff jr z, .done srl b rr c jr nc, .NextBadge ld a, [$d265] ; move type cp [hl] jr z, .ApplyBoost .NextBadge inc hl jr .CheckBadge .ApplyBoost ld a, [CurDamage] ld h, a ld d, a ld a, [CurDamage + 1] ld l, a ld e, a srl d rr e srl d rr e srl d rr e ld a, e or d jr nz, .asm_fbe6f ld e, 1 .asm_fbe6f add hl, de jr nc, .Update ld hl, $ffff .Update ld a, h ld [CurDamage], a ld a, l ld [$d257], a .done pop bc pop de ret .BadgeTypes db FLYING ; zephyrbadge db BUG ; hivebadge db NORMAL ; plainbadge db GHOST ; fogbadge db STEEL ; mineralbadge db FIGHTING ; stormbadge db ICE ; glacierbadge db DRAGON ; risingbadge db ROCK ; boulderbadge db WATER ; cascadebadge db ELECTRIC ; thunderbadge db GRASS ; rainbowbadge db POISON ; soulbadge db PSYCHIC ; marshbadge db FIRE ; volcanobadge db GROUND ; earthbadge db $ff ; fbe91 SECTION "bank3F", ROMX, BANK[$3F] INCLUDE "tilesets/animations.asm" ; Trade struct TRADE_DIALOG EQU 0 TRADE_GIVEMON EQU 1 TRADE_GETMON EQU 2 TRADE_NICK EQU 3 TRADE_DVS EQU 14 TRADE_ITEM EQU 16 TRADE_OT_ID EQU 17 TRADE_OT_NAME EQU 19 TRADE_GENDER EQU 30 TRADE_PADDING EQU 31 ; Trade dialogs TRADE_INTRO EQU 0 TRADE_CANCEL EQU 1 TRADE_WRONG EQU 2 TRADE_COMPLETE EQU 3 TRADE_AFTER EQU 4 NPCTrade:: ; fcba8 ld a, e ld [$cf63], a call Functionfcc59 ld b, CHECK_FLAG call TradeFlagAction ld a, TRADE_AFTER jr nz, .done ld a, TRADE_INTRO call PrintTradeText call YesNoBox ld a, TRADE_CANCEL jr c, .done ; Select givemon from party ld b, $6 callba Function5001d ld a, TRADE_CANCEL jr c, .done ld e, TRADE_GIVEMON call GetTradeAttribute ld a, [CurPartySpecies] cp [hl] ld a, TRADE_WRONG jr nz, .done call CheckTradeGender ld a, TRADE_WRONG jr c, .done ld b, SET_FLAG call TradeFlagAction ld hl, ConnectLinkCableText call PrintText call Functionfcc63 call Functionfcc07 call GetTradeMonNames ld hl, TradedForText call PrintText call Function3d47 ld a, TRADE_COMPLETE .done call PrintTradeText ret ; fcc07 Functionfcc07: ; fcc07 call Function2ed3 ld a, [$cf63] push af ld a, [$cf64] push af ld a, $1e call Predef pop af ld [$cf64], a pop af ld [$cf63], a call Function2b74 ret ; fcc23 CheckTradeGender: ; fcc23 xor a ld [MonType], a ld e, TRADE_GENDER call GetTradeAttribute ld a, [hl] and a jr z, .asm_fcc46 cp 1 jr z, .asm_fcc3e callba GetGender jr nz, .asm_fcc48 jr .asm_fcc46 .asm_fcc3e callba GetGender jr z, .asm_fcc48 .asm_fcc46 and a ret .asm_fcc48 scf ret ; fcc4a TradeFlagAction: ; fcc4a ld hl, $d960 ld a, [$cf63] ld c, a ld a, PREDEF_FLAG call Predef ld a, c and a ret ; fcc59 Functionfcc59: ; fcc59 ld e, TRADE_DIALOG call GetTradeAttribute ld a, [hl] ld [$cf64], a ret ; fcc63 Functionfcc63: ; fcc63 ld e, TRADE_GIVEMON call GetTradeAttribute ld a, [hl] ld [$c6d0], a ld e, TRADE_GETMON call GetTradeAttribute ld a, [hl] ld [$c702], a ld a, [$c6d0] ld de, $c6d1 call Functionfcde8 call Functionfcdf4 ld a, [$c702] ld de, $c703 call Functionfcde8 call Functionfcdf4 ld hl, PartyMon1OT ld bc, $000b call Functionfcdd7 ld de, $c6f2 call Functionfcdf4 ld hl, PlayerName ld de, $c6e7 call Functionfcdf4 ld hl, PartyMon1ID ld bc, PartyMon2 - PartyMon1 call Functionfcdd7 ld de, $c6ff call Functionfce0f ld hl, PartyMon1DVs ld bc, PartyMon2 - PartyMon1 call Functionfcdd7 ld de, $c6fd call Functionfce0f ld hl, PartyMon1Species ld bc, PartyMon2 - PartyMon1 call Functionfcdd7 ld b, h ld c, l callba GetCaughtGender ld a, c ld [$c701], a ld e, TRADE_DIALOG call GetTradeAttribute ld a, [hl] cp TRADE_COMPLETE ld a, 1 jr c, .asm_fcce6 ld a, 2 .asm_fcce6 ld [$c733], a ld hl, PartyMon1Level ld bc, PartyMon2 - PartyMon1 call Functionfcdd7 ld a, [hl] ld [CurPartyLevel], a ld a, [$c702] ld [CurPartySpecies], a xor a ld [MonType], a ld [$d10b], a callab Functione039 ld a, PREDEF_ADDPARTYMON call Predef ld e, TRADE_DIALOG call GetTradeAttribute ld a, [hl] cp TRADE_COMPLETE ld b, 0 jr c, .asm_fcd1c ld b, 1 .asm_fcd1c callba Function4dba3 ld e, TRADE_NICK call GetTradeAttribute ld de, $c70e call Functionfcdf4 ld hl, PartyMon1Nickname ld bc, PKMN_NAME_LENGTH call Functionfcdde ld hl, $c70e call Functionfcdf4 ld e, TRADE_OT_NAME call GetTradeAttribute push hl ld de, $c724 call Functionfcdf4 pop hl ld de, $c719 call Functionfcdf4 ld hl, PartyMon1OT ld bc, $000b call Functionfcdde ld hl, $c724 call Functionfcdf4 ld e, TRADE_DVS call GetTradeAttribute ld de, $c72f call Functionfce0f ld hl, PartyMon1DVs ld bc, PartyMon2 - PartyMon1 call Functionfcdde ld hl, $c72f call Functionfce0f ld e, TRADE_OT_ID call GetTradeAttribute ld de, $c732 call Functionfce15 ld hl, PartyMon1ID ld bc, PartyMon2 - PartyMon1 call Functionfcdde ld hl, $c731 call Functionfce0f ld e, TRADE_ITEM call GetTradeAttribute push hl ld hl, PartyMon1Item ld bc, PartyMon2 - PartyMon1 call Functionfcdde pop hl ld a, [hl] ld [de], a push af push bc push de push hl ld a, [CurPartyMon] push af ld a, [PartyCount] dec a ld [CurPartyMon], a callba Functione134 pop af ld [CurPartyMon], a pop hl pop de pop bc pop af ret ; fcdc2 GetTradeAttribute: ; 0xfcdc2 ld d, 0 push de ld a, [$cf63] and $f swap a ld e, a ld d, 0 ld hl, NPCTrades add hl, de add hl, de pop de add hl, de ret ; 0xfcdd7 Functionfcdd7: ; fcdd7 ld a, [CurPartyMon] call AddNTimes ret ; fcdde Functionfcdde: ; fcdde ld a, [PartyCount] dec a call AddNTimes ld e, l ld d, h ret ; fcde8 Functionfcde8: ; fcde8 push de ld [$d265], a call GetBasePokemonName ld hl, StringBuffer1 pop de ret ; fcdf4 Functionfcdf4: ; fcdf4 ld bc, $000b call CopyBytes ret ; fcdfb Functionfcdfb: ; fcdfb ld bc, $0004 call CopyBytes ld a, $50 ld [de], a ret ; fce05 Functionfce05: ; fce05 ld bc, $0003 call CopyBytes ld a, $50 ld [de], a ret ; fce0f Functionfce0f: ; fce0f ld a, [hli] ld [de], a inc de ld a, [hl] ld [de], a ret ; fce15 Functionfce15: ; fce15 ld a, [hli] ld [de], a dec de ld a, [hl] ld [de], a ret ; fce1b GetTradeMonNames: ; fce1b ld e, TRADE_GETMON call GetTradeAttribute ld a, [hl] call Functionfcde8 ld de, StringBuffer2 call Functionfcdf4 ld e, TRADE_GIVEMON call GetTradeAttribute ld a, [hl] call Functionfcde8 ld de, $d050 call Functionfcdf4 ld hl, StringBuffer1 .next ld a, [hli] cp "@" jr nz, .next dec hl push hl ld e, TRADE_GENDER call GetTradeAttribute ld a, [hl] pop hl and a ret z cp 1 ld a, "♂" jr z, .done ld a, "♀" .done ld [hli], a ld [hl], "@" ret ; fce58 NPCTrades: ; fce58 db 0, ABRA, MACHOP, "MUSCLE@@@@@", $37, $66, GOLD_BERRY, $54, $92, "MIKE@@@@@@@", 0, 0 db 0, BELLSPROUT, ONIX, "ROCKY@@@@@@", $96, $66, BITTER_BERRY, $1e, $bf, "KYLE@@@@@@@", 0, 0 db 1, KRABBY, VOLTORB, "VOLTY@@@@@@", $98, $88, PRZCUREBERRY, $05, $72, "TIM@@@@@@@@", 0, 0 db 3, DRAGONAIR, DODRIO, "DORIS@@@@@@", $77, $66, SMOKE_BALL, $1b, $01, "EMY@@@@@@@@", 2, 0 db 2, HAUNTER, XATU, "PAUL@@@@@@@", $96, $86, MYSTERYBERRY, $00, $3d, "CHRIS@@@@@@", 0, 0 db 3, CHANSEY, AERODACTYL, "AEROY@@@@@@", $96, $66, GOLD_BERRY, $7b, $67, "KIM@@@@@@@@", 0, 0 db 0, DUGTRIO, MAGNETON, "MAGGIE@@@@@", $96, $66, METAL_COAT, $a2, $c3, "FOREST@@@@@", 0, 0 ; fcf38 PrintTradeText: ; fcf38 push af call GetTradeMonNames pop af ld bc, 2 * 4 ld hl, TradeTexts call AddNTimes ld a, [$cf64] ld c, a add hl, bc add hl, bc ld a, [hli] ld h, [hl] ld l, a call PrintText ret ; fcf53 TradeTexts: ; fcf53 ; intro dw TradeIntroText1 dw TradeIntroText2 dw TradeIntroText3 dw TradeIntroText4 ; cancel dw TradeCancelText1 dw TradeCancelText2 dw TradeCancelText3 dw TradeCancelText4 ; wrong mon dw TradeWrongText1 dw TradeWrongText2 dw TradeWrongText3 dw TradeWrongText4 ; completed dw TradeCompleteText1 dw TradeCompleteText2 dw TradeCompleteText3 dw TradeCompleteText4 ; after dw TradeAfterText1 dw TradeAfterText2 dw TradeAfterText3 dw TradeAfterText4 ; fcf7b ConnectLinkCableText: ; 0xfcf7b ; OK, connect the Game Link Cable. text_jump UnknownText_0x1bd407 db "@" ; 0xfcf80 TradedForText: ; 0xfcf80 ; traded givemon for getmon text_jump UnknownText_0x1bd429 start_asm ld de, MUSIC_NONE call PlayMusic call DelayFrame ld hl, .done ret .done ; sound0x0A ; interpret_data text_jump UnknownText_0x1bd445 db "@" ; 0xfcf97 TradeIntroText1: ; 0xfcf97 ; I collect #MON. Do you have @ ? Want to trade it for my @ ? text_jump UnknownText_0x1bd449 db "@" ; 0xfcf9c TradeCancelText1: ; 0xfcf9c ; You don't want to trade? Aww… text_jump UnknownText_0x1bd48c db "@" ; 0xfcfa1 TradeWrongText1: ; 0xfcfa1 ; Huh? That's not @ . What a letdown… text_jump UnknownText_0x1bd4aa db "@" ; 0xfcfa6 TradeCompleteText1: ; 0xfcfa6 ; Yay! I got myself @ ! Thanks! text_jump UnknownText_0x1bd4d2 db "@" ; 0xfcfab TradeAfterText1: ; 0xfcfab ; Hi, how's my old @ doing? text_jump UnknownText_0x1bd4f4 db "@" ; 0xfcfb0 TradeIntroText2: TradeIntroText3: ; 0xfcfb0 ; Hi, I'm looking for this #MON. If you have @ , would you trade it for my @ ? text_jump UnknownText_0x1bd512 db "@" ; 0xfcfb5 TradeCancelText2: TradeCancelText3: ; 0xfcfb5 ; You don't have one either? Gee, that's really disappointing… text_jump UnknownText_0x1bd565 db "@" ; 0xfcfba TradeWrongText2: TradeWrongText3: ; 0xfcfba ; You don't have @ ? That's too bad, then. text_jump UnknownText_0x1bd5a1 db "@" ; 0xfcfbf TradeCompleteText2: ; 0xfcfbf ; Great! Thank you! I finally got @ . text_jump UnknownText_0x1bd5cc db "@" ; 0xfcfc4 TradeAfterText2: ; 0xfcfc4 ; Hi! The @ you traded me is doing great! text_jump UnknownText_0x1bd5f4 db "@" ; 0xfcfc9 TradeIntroText4: ; 0xfcfc9 ; 's cute, but I don't have it. Do you have @ ? Want to trade it for my @ ? text_jump UnknownText_0x1bd621 db "@" ; 0xfcfce TradeCancelText4: ; 0xfcfce ; You don't want to trade? Oh, darn… text_jump UnknownText_0x1bd673 db "@" ; 0xfcfd3 TradeWrongText4: ; 0xfcfd3 ; That's not @ . Please trade with me if you get one. text_jump UnknownText_0x1bd696 db "@" ; 0xfcfd8 TradeCompleteText4: ; 0xfcfd8 ; Wow! Thank you! I always wanted @ ! text_jump UnknownText_0x1bd6cd db "@" ; 0xfcfdd TradeAfterText4: ; 0xfcfdd ; How is that @ I traded you doing? Your @ 's so cute! text_jump UnknownText_0x1bd6f5 db "@" ; 0xfcfe2 TradeCompleteText3: ; 0xfcfe2 ; Uh? What happened? text_jump UnknownText_0x1bd731 db "@" ; 0xfcfe7 TradeAfterText3: ; 0xfcfe7 ; Trading is so odd… I still have a lot to learn about it. text_jump UnknownText_0x1bd745 db "@" ; 0xfcfec Functionfcfec:: ; fcfec ld a, [$d45c] and a ret nz call Function2d05 and a ret nz xor a ld [$dc18], a call Functionfd044 ret nc call Functionfd0c3 ret nc ld b, BANK(UnknownScript_0xfd00f) ld de, UnknownScript_0xfd00f callba Function97c4f scf ret ; fd00f UnknownScript_0xfd00f: ; 0xfd00f 3callasm Functionfd017 3jump UnknownScript_0x90241 ; 0xfd017 Functionfd017: ; fd017 call Functionfd0a6 call Functionfd0eb ld a, [$dc18] and a jr nz, .asm_fd027 ld hl, $dc17 inc [hl] .asm_fd027 ld a, $1 ld [$dbf9], a ld bc, $d03f ld hl, $0 add hl, bc ld [hl], $0 inc hl ld [hl], $1 ld hl, $9 add hl, bc ld a, $3f ld [hli], a ld a, e ld [hli], a ld a, d ld [hl], a ret ; fd044 Functionfd044: ; fd044 ld a, [$dc17] cp $a jr nc, .asm_fd065 call Functionfd117 ld a, [hli] ld [$ffc3], a ld a, [hli] ld [$ffc4], a ld a, [hli] ld [$ffc5], a ld de, $d851 ld bc, $ffc3 callba Function1600b jr nc, .asm_fd067 .asm_fd065 jr .asm_fd069 .asm_fd067 scf ret .asm_fd069 ld hl, $ffc3 ld [hl], $0 inc hl ld [hl], $8 inc hl ld [hl], $fc .asm_fd074 ld de, $dc19 ld bc, $d851 callba Function1600b jr z, .asm_fd08b jr nc, .asm_fd089 call Functionfd099 jr .asm_fd074 .asm_fd089 xor a ret .asm_fd08b call Functionfd099 ld a, $5 call Function2fb1 inc a ld [$dc18], a scf ret ; fd099 Functionfd099: ; fd099 ld de, $dc19 ld bc, $ffc3 callba Function16053 ret ; fd0a6 ; known jump sources: fd017 (3f:5017) Functionfd0a6: ; fd0a6 (3f:50a6) call Functionfd117 ld de, $3 add hl, de ld a, [hli] ld [$FF00+$c3], a ld a, [hli] ld [$FF00+$c4], a ld a, [hli] ld [$FF00+$c5], a ld de, $d851 ld bc, $ffc3 callba Function15ffa ret Functionfd0c3: ; fd0c3 call Functionfd117 ld de, $0006 add hl, de ld a, [hli] cp $1 jr z, .asm_fd0db ld a, [hl] ld c, a ld b, $1 callba Function26ef1 scf ret .asm_fd0db ld a, [hl] ld [CurItem], a ld a, $1 ld [$d10c], a ld hl, PCItems call ReceiveItem ret ; fd0eb ; known jump sources: fd01a (3f:501a) Functionfd0eb: ; fd0eb (3f:50eb) call Functionfd117 ld de, $6 add hl, de ld a, [hli] ld de, UnknownScript_0xfd0fd cp $1 ret z ld de, UnknownScript_0xfd10a ret ; fd0fd (3f:50fd) UnknownScript_0xfd0fd: ; 0xfd0fd 2writetext UnknownText_0xfd1b1 2writetext UnknownText_0xfd1b6 2writetext UnknownText_0xfd1bb 2writetext UnknownText_0xfd1c0 end ; 0xfd10a UnknownScript_0xfd10a: ; 0xfd10a 2writetext UnknownText_0xfd1b1 2writetext UnknownText_0xfd1c5 2writetext UnknownText_0xfd1bb 2writetext UnknownText_0xfd1ca end ; 0xfd117 Functionfd117: ; fd117 ld a, [$dc18] and a jr z, .asm_fd123 dec a ld de, Unknown_fd136 jr .asm_fd12e .asm_fd123 ld a, [$dc17] cp $a jr c, .asm_fd12b xor a .asm_fd12b ld de, Unknown_fd15e .asm_fd12e ld l, a ld h, 0 add hl, hl add hl, hl add hl, hl add hl, de ret ; fd136 Unknown_fd136: ; fd136 db $00, $00, $00, $00, $02, $58, $01, SUPER_POTION db $00, $00, $00, $00, $00, $5a, $01, ANTIDOTE db $00, $00, $00, $00, $00, $b4, $01, POKE_BALL db $00, $00, $00, $00, $01, $c2, $01, ESCAPE_ROPE db $00, $00, $00, $00, $01, $f4, $01, GREAT_BALL ; fd15e Unknown_fd15e: ; fd15e db $00, $03, $84, $00, $02, $58, $01, SUPER_POTION db $00, $0f, $a0, $00, $01, $0e, $01, REPEL db $00, $1b, $58, $00, $02, $58, $01, SUPER_POTION db $00, $27, $10, $00, $07, $08, $02, $23 ; CHARMANDER_DOLL db $00, $3a, $98, $00, $0b, $b8, $01, MOON_STONE db $00, $4a, $38, $00, $02, $58, $01, SUPER_POTION db $00, $75, $30, $00, $12, $c0, $02, $20 ; CLEFAIRY_DOLL db $00, $9c, $40, $00, $03, $84, $01, HYPER_POTION db $00, $c3, $50, $00, $1f, $40, $02, $1e ; PIKACHU_DOLL db $01, $86, $a0, $00, $59, $10, $02, $1a ; SNORLAX_DOLL ; fd1ae INCBIN "baserom.gbc", $fd1ae, $fd1b1 - $fd1ae UnknownText_0xfd1b1: ; 0xfd1b1 ; Hi, ! How are you? text_jump UnknownText_0x1bc615 db "@" ; 0xfd1b6 UnknownText_0xfd1b6: ; 0xfd1b6 ; I found a useful item shopping, so text_jump UnknownText_0x1bc62a db "@" ; 0xfd1bb UnknownText_0xfd1bb: ; 0xfd1bb ; I bought it with your money. Sorry! text_jump UnknownText_0x1bc64e db "@" ; 0xfd1c0 UnknownText_0xfd1c0: ; 0xfd1c0 ; It's in your PC. You'll like it! text_jump UnknownText_0x1bc673 db "@" ; 0xfd1c5 UnknownText_0xfd1c5: ; 0xfd1c5 ; While shopping today, I saw this adorable doll, so text_jump UnknownText_0x1bc693 db "@" ; 0xfd1ca UnknownText_0xfd1ca: ; 0xfd1ca ; It's in your room. You'll love it! text_jump UnknownText_0x1bc6c7 db "@" ; 0xfd1cf INCBIN "baserom.gbc", $fd1cf, $fd1d0 - $fd1cf Functionfd1d0: ; fd1d0 ret ; fd1d1 INCBIN "baserom.gbc", $fd1d1, $fd1d2 - $fd1d1 SECTION "bank40", ROMX, BANK[$40] Function100000: ; 100000 ld a, [rSVBK] push af ld a, $1 ld [rSVBK], a call Function100022 call Function1000ba call Function100675 call Function100057 call Function10016f call Function100276 push bc call Function100301 pop bc pop af ld [rSVBK], a ret ; 100022 Function100022: ; 100022 push de push bc call Function100063 pop bc pop de ld a, d ld [$cd21], a ld a, e ld [CreditsTimer], a ld a, c ld [$cd23], a ld a, b ld [$cd24], a callba Function10127e callba Function106462 callba Function106464 callba Function11615a ld hl, VramState set 1, [hl] ret ; 100057 Function100057: ; 100057 call Function1000a4 call Function222a ld hl, VramState res 1, [hl] ret ; 100063 Function100063: ; 100063 xor a ld hl, BGMapBuffer ld bc, $0065 call ByteFill xor a ld hl, $c300 ld bc, Start call ByteFill ld a, [rIE] ld [BGMapBuffer], a xor a ld [$ffde], a ld [hLCDStatCustom], a ret ; 100082 INCBIN "baserom.gbc",$100082,$1000a4 - $100082 Function1000a4: ; 1000a4 di xor a ld [$ffc9], a ld [$ffe9], a xor a ld [$ff9e], a call NormalSpeed xor a ld [rIF], a ld a, [BGMapBuffer] ld [rIE], a ei ret ; 1000ba Function1000ba: ; 1000ba .asm_1000ba ld hl, $cd23 ld a, [hli] ld h, [hl] ld l, a ld a, [$cd25] ld e, a ld d, $0 add hl, de add hl, de ld a, [CreditsTimer] call GetFarHalfword ld a, [CreditsTimer] rst FarCall call Function1000e8 call Function1000fa call Function100144 call Function100163 ld a, [$cd2b] and a jr z, .asm_1000ba call DelayFrame ret ; 1000e8 Function1000e8: ; 1000e8 ld hl, $cd29 bit 7, [hl] ret z callba Function115dd3 ld hl, $cd29 set 6, [hl] ret ; 1000fa Function1000fa: ; 1000fa ld a, [$c30d] and a ret z ld hl, $cd29 bit 4, [hl] ret z ld a, [$cd2b] and a jr nz, .asm_100117 callba Function11619d ld hl, $cd29 set 6, [hl] ret .asm_100117 di xor a ld [rIF], a ld a, [rIE] and $13 ld [rIE], a xor a ld [$ffc9], a ld [$ffe9], a ei ld a, [InLinkBattle] push af xor a ld [InLinkBattle], a ld a, $4 ld [$c319], a callba Function11619d ld hl, $cd29 set 6, [hl] pop af ld [InLinkBattle], a ret ; 100144 Function100144: ; 100144 ld hl, $cd29 bit 5, [hl] jr z, .asm_100155 res 5, [hl] res 2, [hl] res 6, [hl] call Function100320 ret .asm_100155 bit 2, [hl] ret z res 2, [hl] res 6, [hl] callba Function10402d ret ; 100163 Function100163: ; 100163 ld hl, $cd29 bit 6, [hl] ret z res 6, [hl] call DelayFrame ret ; 10016f Function10016f: ; 10016f ld a, [$cd2b] cp $1 ret z cp $2 ret z cp $ff jp z, .asm_1001f5 cp $fe jr z, .asm_1001c4 cp $f5 jr z, .asm_1001e7 cp $f6 jr z, .asm_1001b6 cp $fa jp z, .asm_1001bd cp $f7 jp z, .asm_1001ee cp $f4 jr z, .asm_1001d2 cp $f3 jr z, .asm_1001cb cp $f1 jr z, .asm_1001c4 cp $f2 jr z, .asm_1001c4 cp $fc jr z, .asm_1001e6 cp $fb jr z, .asm_1001af cp $f8 ret z ret .asm_1001af ld a, $d7 ld de, $0000 jr .asm_1001d7 .asm_1001b6 ld a, $d5 ld de, $0000 jr .asm_1001d7 .asm_1001bd ld a, $d6 ld de, $0000 jr .asm_1001d7 .asm_1001c4 ld a, $d2 ld de, $0002 jr .asm_1001d7 .asm_1001cb ld a, $d1 ld de, $0001 jr .asm_1001d7 .asm_1001d2 ld a, $d0 ld de, $0000 .asm_1001d7 ld [$c300], a ld a, d ld [$c302], a ld a, e ld [$c301], a call Function10020b ret .asm_1001e6 ret .asm_1001e7 ld de, String10025e call Function100232 ret .asm_1001ee ld de, String10024d call Function100232 ret .asm_1001f5 ld a, [$cd2c] ld [$c300], a ld a, [$cd2d] ld [$c302], a ld a, [$cd2d] ld [$c301], a call Function10020b ret ; 10020b Function10020b: ; 10020b xor a ld [$c303], a callba Function8c084 callba Function106464 call HideSprites call DelayFrame ld a, [rSVBK] push af ld a, $1 ld [rSVBK], a callba Function17f555 pop af ld [rSVBK], a ret ; 100232 Function100232: ; 100232 push de callba Function106464 call Function3f20 call Function1ad2 hlcoord 1, 2 pop de call PlaceString call Function100320 call Functiona36 ret ; 10024d String10024d: ; 10024d db "つうしんを キャンセル しました@" ; 10025e String10025e: ; 10025e db "おともだちと えらんだ へやが", $4e db "ちがうようです@" ; 100276 Function100276: ; 100276 ld a, [$cd2b] cp $1 jr z, .asm_10029f cp $2 jr z, .asm_100296 cp $f5 jr z, .asm_1002a5 cp $f6 jr z, .asm_1002a5 cp $f7 jr z, .asm_100293 cp $f8 jr z, .asm_1002b1 jr .asm_1002c0 .asm_100293 ld c, $2 ret .asm_100296 callba Script_reloadmappart ld c, $4 ret .asm_10029f call Function1002dc ld c, $0 ret .asm_1002a5 callba Script_reloadmappart call Function1002ed ld c, $3 ret .asm_1002b1 call Function1002c9 call Function1002dc ld de, String10024d call Function100232 ld c, $2 ret .asm_1002c0 call Function1002c9 call Function1002dc ld c, $1 ret ; 1002c9 Function1002c9: ; 1002c9 ld hl, $cd2a bit 0, [hl] ret z callba Function3f6d0 callba Function1500c ret ; 1002dc Function1002dc: ; 1002dc ld a, $f8 ld [$ff9f], a callba RunMapSetupScript xor a ld [$ff9f], a call Functione51 ret ; 1002ed Function1002ed: ; 1002ed callba Function49409 callba Function96a4 ld a, $1 ld [hCGBPalUpdate], a call DelayFrame ret ; 100301 Function100301: ; 100301 ld hl, $cd2a bit 1, [hl] ret z callba Function106464 callba Function10202c callba Function115dd3 call Function100320 call Functiona36 ret ; 100320 Function100320: ; 100320 callba Function104099 ret ; 100327 INCBIN "baserom.gbc",$100327,$10032e - $100327 Function10032e: ; 10032e call Function10034d ld e, a ret nc ld [$cd2b], a ret ; 100337 Function100337: ; 100337 call Function10032e ret c ld a, [$c821] bit 4, a jr z, .asm_100345 ld a, e and a ret .asm_100345 ld a, $f9 ld e, a ld [$cd2b], a scf ret ; 10034d Function10034d: ; 10034d ld a, [$c821] bit 1, a jr nz, .asm_10036a bit 2, a jr nz, .asm_10037e bit 3, a jr nz, .asm_100366 bit 0, a jr nz, .asm_100364 ld a, $1 and a ret .asm_100364 xor a ret .asm_100366 ld a, $2 and a ret .asm_10036a ld a, $0 call Function3e32 ld [$cd2c], a ld a, h ld [$cd2d], a ld a, l ld [$cd2e], a ld a, $ff scf ret .asm_10037e ld a, $fe scf ret ; 100382 Function100382: ; 100382 ld a, [$cd27] ld hl, $444e rst JumpTable ret ; 10038a Function10038a: ; 10038a ld hl, $ccb4 ld a, $2e call Function3e32 ret ; 100393 Function100393: ; 100393 ld hl, $cc60 ld a, $3a call Function3e32 ret ; 10039c Function10039c: ; 10039c ld hl, $cc60 ld de, $d000 ld bc, $0054 ld a, $3 call FarCopyWRAM ret ; 1003ab INCBIN "baserom.gbc",$1003ab,$1003ba - $1003ab Function1003ba: ; 1003ba ld hl, $ccb4 ld de, $d080 ld bc, $0054 ld a, $3 call FarCopyWRAM ret ; 1003c9 Function1003c9: ; 1003c9 ld hl, $d080 ld de, $ccb4 ld bc, $0054 ld a, $3 call FarCopyWRAM ret ; 1003d8 Function1003d8: ; 1003d8 ld hl, $ccb4 ld a, [hli] ld c, a ld b, $0 push hl add hl, bc ld a, [BGMapPalBuffer] ld [hl], a pop hl inc bc call Function10043a add hl, bc ld [hl], e inc hl ld [hl], d ld a, c add $2 ld [$ccb4], a ret ; 1003f5 Function1003f5: ; 1003f5 ld a, [$cc60] sub $3 ld [$cc60], a ld a, [$ccb4] sub $3 ld [$ccb4], a ret ; 100406 Function100406: ; 100406 ld a, [$cc60] sub $2 ld c, a ld b, $0 ld hl, $cc61 call Function10043a add hl, bc ld a, [hli] cp e jr nz, .asm_100426 ld a, [hld] cp d jr nz, .asm_100426 dec hl ld a, [BGMapPalBuffer] cp [hl] jr nz, .asm_10042d xor a ret .asm_100426 ld a, $f4 ld [$cd2b], a jr .asm_100432 .asm_10042d ld a, $f3 ld [$cd2b], a .asm_100432 push hl ld hl, $cd7c inc [hl] pop hl scf ret ; 10043a Function10043a: ; 10043a push hl push bc ld de, $0000 .asm_10043f ld a, [hli] add e ld e, a ld a, d adc $0 ld d, a dec bc ld a, b or c jr nz, .asm_10043f pop bc pop hl ret ; 10044e ; no known jump sources Jumptable_10044e: ; 10044e (40:444e) dw Function10046a dw Function10047c dw Function100493 dw Function1004ba dw Function1004f4 dw Function1004ce dw Function1004de dw Function1004a4 dw Function100495 dw Function1004ce dw Function1004de dw Function1004e9 dw Function1004f4 dw Function1004a4 Function10046a: ; 10046a ld hl, BGMapPalBuffer inc [hl] call Function1003d8 call Function1003ba ld a, [$cd27] inc a ld [$cd27], a ret ; 10047c Function10047c: ; 10047c call Function100337 ret c ret z cp $2 jr z, .asm_100487 jr .asm_10048d .asm_100487 ld a, $8 ld [$cd27], a ret .asm_10048d ld a, $2 ld [$cd27], a ret ; 100493 Function100493: ; 100493 jr asm_100497 Function100495: ; 100495 jr asm_100497 asm_100497 call Function100337 ret c ret z ld a, [$cd27] inc a ld [$cd27], a ret ; 1004a4 Function1004a4: ; 1004a4 call Function100406 jr c, .asm_1004b8 call Function1003c9 call Function1003f5 ld a, [$cd27] set 7, a ld [$cd27], a ret .asm_1004b8 scf ret ; 1004ba Function1004ba: ; 1004ba call Function10038a and a jr nz, .asm_1004c8 ld a, [$cd27] inc a ld [$cd27], a ret .asm_1004c8 ld a, $8 ld [$cd27], a ret ; 1004ce Function1004ce: ; 1004ce call Function100337 ret c ret z cp $2 ret nz ld a, [$cd27] inc a ld [$cd27], a ret ; 1004de Function1004de: ; 1004de call Function100393 ld a, [$cd27] inc a ld [$cd27], a ret ; 1004e9 Function1004e9: ; 1004e9 call Function10038a ld a, [$cd27] inc a ld [$cd27], a ret ; 1004f4 Function1004f4: ; 1004f4 call Function100337 ret c ret z ld a, [$cd27] inc a ld [$cd27], a call Function10039c ret ; 100504 Function100504: ; 100504 push de call Function3f20 call Function1ad2 pop de ld hl, $c4cc call PlaceString ret ; 100513 INCBIN "baserom.gbc",$100513,$10062d - $100513 Function10062d: ; 10062d push bc call Function10064e pop bc ld a, [$cd44] cp b jr nc, .asm_10063a and a ret .asm_10063a ld a, $fa ld [$cd2b], a scf ret ; 100641 Function100641: ; 100641 xor a ld [$cd44], a ld [$cd45], a ld [$cd46], a ret ; 10064c INCBIN "baserom.gbc",$10064c,$10064e - $10064c Function10064e: ; 10064e ld hl, $cd46 ld a, [hl] add c cp $3c jr c, .asm_100658 xor a .asm_100658 ld [hld], a ret c ld a, [hl] inc a cp $3c jr c, .asm_100661 xor a .asm_100661 ld [hld], a ret c inc [hl] ret ; 100665 INCBIN "baserom.gbc",$100665,$100675 - $100665 Function100675: ; 100675 ld hl, $cd2a bit 2, [hl] set 2, [hl] ret nz call Function1006d3 ret ; 100681 Function100681: ; 100681 push hl ld hl, $cd2a bit 2, [hl] ld hl, $cd2a set 2, [hl] pop hl jr nz, .asm_100694 push hl call Function1006d3 pop hl .asm_100694 ld de, $cd32 ld a, [de] and a jr nz, .asm_1006bb inc de push de call .asm_1006b4 ld de, String1006c2 call PlaceString ld h, b ld l, c pop de inc de call .asm_1006b4 ld de, String1006c6 call PlaceString ret .asm_1006b4 ld bc, $8102 call PrintNum ret .asm_1006bb ld de, String1006ca call PlaceString ret ; 1006c2 String1006c2: ; 1006c2 db "ふん @" String1006c6: ; 1006c6 db "びょう@" String1006ca: ; 1006ca db "1じかんいじょう@" ; 1006d3 Function1006d3: ; 1006d3 call UpdateTime ld de, $cd34 ld hl, $cd38 Function1006dc: ; 1006dc ld a, [hld] ld c, a ld a, [hSeconds] sub c jr nc, .asm_1006e5 add $3c .asm_1006e5 ld [de], a dec de ld a, [hld] ld c, a ld a, [hMinutes] sbc c jr nc, .asm_1006f0 add $3c .asm_1006f0 ld [de], a dec de ld a, [hl] ld c, a ld a, [hHours] sbc c jr nc, .asm_1006fb add $18 .asm_1006fb ld [de], a ret ; 1006fd Function1006fd: ; 1006fd ld a, $4 ld hl, $a800 call GetSRAMBank xor a ld [hli], a ld [hli], a ld [hli], a call CloseSRAM ret ; 10070d Function10070d: ; 10070d ld a, $4 ld hl, $a800 call GetSRAMBank xor a ld [hli], a ld a, $a ld [hli], a xor a ld [hli], a call CloseSRAM ret ; 100720 INCBIN "baserom.gbc",$100720,$10079c - $100720 Function10079c: ; 10079c ld a, [$cd21] cp $1 jr nz, .asm_1007f4 ld hl, $cd2a bit 5, [hl] jr nz, .asm_1007f4 ld hl, $cd2a bit 6, [hl] jr nz, .asm_1007f4 ld a, [$cd6a] add c cp $3c jr nc, .asm_1007be ld [$cd6a], a and a ret .asm_1007be sub $3c ld [$cd6a], a ld d, b push de call Function1007f6 pop de jr c, .asm_1007e5 ld a, c and a jr nz, .asm_1007e5 ld a, b cp $a jr nc, .asm_1007e5 ld a, d and a ret z ld a, [$cd6b] cp b ret z ld a, b ld [$cd6b], a call Function1008e0 and a ret .asm_1007e5 call Function1008e0 ld hl, $cd2a set 4, [hl] ld a, $fc ld [$cd2b], a scf ret .asm_1007f4 and a ret ; 1007f6 Function1007f6: ; 1007f6 call UpdateTime ld hl, $cd74 ld de, $cd71 call Function1006dc ld a, $4 call GetSRAMBank ld hl, $a802 call Function100826 call CloseSRAM ld hl, $cd6e call Function100826 ld a, [hHours] ld [$cd72], a ld a, [hMinutes] ld [$cd73], a ld a, [hSeconds] ld [$cd74], a ret ; 100826 Function100826: ; 100826 ld a, [$cd71] add [hl] sub $3c jr nc, .asm_100830 add $3c .asm_100830 ld [hld], a ccf ld a, [BGMapBufferPtrs] adc [hl] sub $3c jr nc, .asm_10083c add $3c .asm_10083c ld [hld], a ld b, a ccf ld a, [$cd6f] adc [hl] ld [hl], a ld c, a ret ; 100846 INCBIN "baserom.gbc",$100846,$1008a6 - $100846 Function1008a6: ; 1008a6 ld a, $4 ld hl, $a800 call GetSRAMBank ld a, [hli] ld [StringBuffer2], a ld a, [hli] ld [$d087], a ld a, [hli] ld [$d088], a call CloseSRAM ld a, [$d088] ld b, a ld a, $0 sub b jr nc, .asm_1008c8 add $3c .asm_1008c8 ld b, a ld a, [$d087] ld c, a ld a, $a sbc c ld c, a jr c, .asm_1008da ld a, [StringBuffer2] and a jr nz, .asm_1008da ret .asm_1008da call Function10070d ld c, $0 ret ; 1008e0 Function1008e0: ; 1008e0 ld a, [hBGMapMode] ld b, a ld a, [$ff9e] ld c, a push bc xor a ld [hBGMapMode], a ld a, $3 ld [$ff9e], a call Function100970 call Function100902 call Function100989 call DelayFrame pop bc ld a, c ld [$ff9e], a ld a, b ld [hBGMapMode], a ret ; 100902 Function100902: ; 100902 ld hl, $c56b ld b, $1 ld c, $b call TextBox ld a, [$cd6d] ld c, a ld a, $a sub c ld [StringBuffer2], a jr z, .asm_10093f ld de, .string_100966 ld hl, $c580 call PlaceString ld hl, $c584 ld bc, $0102 ld de, StringBuffer2 call PrintNum ld de, SFX_TWO_PC_BEEPS call PlaySFX callba Function104061 ld c, $3c call DelayFrames ret .asm_10093f ld de, .string_10095a ld hl, $c580 call PlaceString ld de, SFX_4_NOTE_DITTY call PlaySFX callba Function104061 ld c, $78 call DelayFrames ret ; 10095a .string_10095a ; 10095a db "たいせん しゅうりょう@" .string_100966 ; 100966 db "のこり ふん", $e7, "@" ; 100970 Function100970: ; 100970 ld hl, TileMap ld de, $dc00 call Function1009a5 ld hl, AttrMap ld de, $dd68 call Function1009a5 call Function1009d2 call Function1009ae ret ; 100989 Function100989: ; 100989 ld hl, $dc00 ld de, TileMap call Function1009a5 call Function1009ae callba Function104061 ld hl, $dd68 ld de, AttrMap call Function1009a5 ret ; 1009a5 Function1009a5: ; 1009a5 ld bc, $0168 ld a, $3 call FarCopyWRAM ret ; 1009ae Function1009ae: ; 1009ae ld a, [rSVBK] push af ld a, $3 ld [rSVBK], a ld hl, $d800 ld de, AttrMap ld c, $14 ld b, $12 .asm_1009bf push bc .asm_1009c0 ld a, [hli] ld [de], a inc de dec c jr nz, .asm_1009c0 ld bc, $000c add hl, bc pop bc dec b jr nz, .asm_1009bf pop af ld [rSVBK], a ret ; 1009d2 Function1009d2: ; 1009d2 ld a, [rSVBK] push af ld a, $3 ld [rSVBK], a ld a, [rVBK] push af ld a, $1 ld [rVBK], a ld hl, $d800 ld de, VBGMap0 ld bc, $0324 call Get2bpp pop af ld [rVBK], a pop af ld [rSVBK], a ret ; 1009f3 Function1009f3: ; 1009f3 ld a, [hJoyDown] and $5 cp $5 jr nz, .asm_100a07 ld hl, $cd2a set 4, [hl] ld a, $f8 ld [$cd2b], a scf ret .asm_100a07 xor a ret ; 100a09 Function100a09: ; 100a09 call Function100a2e ld [$d431], a callba Function4000 ld a, [InLinkBattle] cp $4 jr nz, .asm_100a2a call Function100a87 call Function100da5 callba Function3ee27 jr .asm_100a2d .asm_100a2a call Function100a53 .asm_100a2d ret ; 100a2e Function100a2e: ; 100a2e ld a, [$d0ec] and a jr nz, .asm_100a48 ld a, [CurPlayerMove] ld b, $e cp $a5 jr z, .asm_100a4f ld b, $d cp $ff jr z, .asm_100a4f ld a, [CurMoveNum] jr .asm_100a50 .asm_100a48 ld a, [CurPartyMon] add $4 jr .asm_100a50 .asm_100a4f ld a, b .asm_100a50 and $f ret ; 100a53 Function100a53: ; 100a53 ld a, [$d431] ld [$cf56], a ld a, $ff ld [$cf52], a .asm_100a5e call Function8c1 call DelayFrame ld a, [$cf52] inc a jr z, .asm_100a5e ld b, $a .asm_100a6c call DelayFrame call Function8c1 dec b jr nz, .asm_100a6c ld b, $a .asm_100a77 call DelayFrame call Function908 dec b jr nz, .asm_100a77 ld a, [$cf52] ld [$d430], a ret ; 100a87 Function100a87: ; 100a87 call Function100acf call Function100641 ld a, $0 ld [$cd27], a .asm_100a92 call DelayFrame call GetJoypad callba Function100382 ld c, $1 ld b, $3 push bc call Function10062d pop bc jr c, .asm_100ac7 ld b, $1 call Function10079c jr c, .asm_100ac7 call Function1009f3 jr c, .asm_100ac7 ld a, [$cd2b] and a jr nz, .asm_100ac7 ld a, [$cd27] bit 7, a jr z, .asm_100a92 call Function100ae7 jr .asm_100ace .asm_100ac7 ld a, $f ld [$d430], a jr .asm_100ace .asm_100ace ret ; 100acf Function100acf: ; 100acf ld de, $4b0a ld hl, $ccb5 ld a, [$d431] ld [hli], a ld c, $1 .asm_100adb ld a, [de] inc de ld [hli], a inc c and a jr nz, .asm_100adb ld a, c ld [$ccb4], a ret ; 100ae7 Function100ae7: ; 100ae7 ld de, $4b0a ld hl, $cc62 .asm_100aed ld a, [de] inc de and a jr z, .asm_100af8 cp [hl] jr nz, .asm_100aff inc hl jr .asm_100aed .asm_100af8 ld a, [$cc61] ld [$d430], a ret .asm_100aff ld a, $f ld [$d430], a ld a, $f1 ld [$cd2b], a ret ; 100b0a INCBIN "baserom.gbc",$100b0a,$100b12 - $100b0a Function100b12: ; 100b12 call Function100dd8 ret c ld hl, $4f2c ld a, $9 ld de, LoadMenuDataHeader call FarCall_de ld a, $9 ld [$cf94], a ld a, [$d0d2] ld [$cf88], a call Function100e72 call Function100b45 callba Function8e85 call Function100ed4 ld a, [$cf88] ld [$d0d2], a call Function1c07 ret ; 100b45 Function100b45: ; 100b45 call Function100b7a .asm_100b48 call Function100dd2 callba Function241ba push bc callba Function10402d call Function100e2d pop bc jr c, .asm_100b6b ld a, [$cfa8] and c jr z, .asm_100b48 callba Function24098 ret .asm_100b6b ld a, [$cfa4] ld c, a ld a, [$cfa3] call SimpleMultiply ld [$cf88], a and a ret ; 100b7a Function100b7a: ; 100b7a ld hl, Function1c66 ld a, [$cf94] rst FarCall callba Function24085 callba MobileTextBorder call Function1ad2 call Function321c callba Function2411a ld hl, $cfa5 set 7, [hl] ret ; 100b9f Function100b9f: ; 100b9f xor a ld [$d0e3], a callba Function3e786 ret z call Function100dd8 jp c, Function2ec8 call Function100e72 call Function100bc2 push af callba Function8e85 call Function100ed4 pop af ret ; 100bc2 Function100bc2: ; 100bc2 xor a ld [hBGMapMode], a call Function100c74 call Function100c98 .asm_100bcb callba MoveInfoBox .asm_100bd1 call Function100dd2 callba Function241ba push bc callba Function10402d call Function100e2d pop bc jr c, .asm_100c25 ld a, [$cfa8] and c bit 6, a jp nz, .asm_100bff bit 7, a jp nz, .asm_100c10 bit 0, a jr nz, .asm_100c30 bit 1, a jr nz, .asm_100c25 jr .asm_100bd1 .asm_100bff ld a, [$cfa9] and a jp nz, .asm_100bcb ld a, [$d0eb] inc a ld [$cfa9], a jp .asm_100bcb .asm_100c10 ld a, [$cfa9] ld b, a ld a, [$d0eb] inc a inc a cp b jp nz, .asm_100bcb ld a, $1 ld [$cfa9], a jp .asm_100bcb .asm_100c25 ld a, [$cfa9] dec a ld [CurMoveNum], a ld a, $1 and a ret .asm_100c30 ld a, [$cfa9] dec a ld [CurMoveNum], a ld a, [$cfa9] dec a ld c, a ld b, $0 ld hl, BattleMonPPMove1 add hl, bc ld a, [hl] and $3f jr z, .asm_100c68 ld a, [PlayerDisableCount] swap a and $f dec a cp c jr z, .asm_100c63 ld a, [$cfa9] dec a ld c, a ld b, $0 ld hl, BattleMonMove1 add hl, bc ld a, [hl] ld [CurPlayerMove], a xor a ret .asm_100c63 ld hl, BattleText_0x80c5b jr .asm_100c6b .asm_100c68 ld hl, BattleText_0x80c39 .asm_100c6b call StdBattleTextBox call Function30b4 jp Function100bc2 ; 100c74 Function100c74: ; 100c74 ld hl, $c540 ld b, $8 ld c, $8 call TextBox ld hl, BattleMonMove1 ld de, $d25e ld bc, $0004 call CopyBytes ld a, $28 ld [MagikarpLength], a ld hl, $c56a ld a, $20 call Predef ret ; 100c98 Function100c98: ; 100c98 ld de, $4cad call Function1bb1 ld a, [$d0eb] inc a ld [$cfa3], a ld a, [CurMoveNum] inc a ld [$cfa9], a ret ; 100cad INCBIN "baserom.gbc",$100cad,$100cb5 - $100cad Function100cb5: ; 100cb5 call Function100dd8 ret c ld hl, $cfa5 set 7, [hl] res 6, [hl] .asm_100cc0 call Function100dd2 callba Function241ba push bc callba Function8cf69 callba Function10402d call Function100dfd pop bc jr c, .asm_100d17 ld a, [$cfa8] and c jr z, .asm_100cc0 call Function1bee ld a, [PartyCount] inc a ld b, a ld a, [$cfa9] cp b jr z, .asm_100d17 ld [$d0d8], a ld a, [$ffa9] ld b, a bit 1, b jr nz, .asm_100d17 ld a, [$cfa9] dec a ld [CurPartyMon], a ld c, a ld b, $0 ld hl, PartySpecies add hl, bc ld a, [hl] ld [CurPartySpecies], a ld de, SFX_READ_TEXT_2 call PlaySFX call WaitSFX and a ret .asm_100d17 ld de, SFX_READ_TEXT_2 call PlaySFX call WaitSFX scf ret ; 100d22 Function100d22: ; 100d22 call Function100dd8 ret c call Function100d67 ld hl, $cfa5 set 7, [hl] res 6, [hl] .asm_100d30 call Function100dd2 callba Function241ba push bc callba Function8cf69 callba Function10402d call Function100dfd pop bc jr c, .asm_100d54 ld a, [$cfa8] and c jr nz, .asm_100d56 jr .asm_100d30 .asm_100d54 scf ret .asm_100d56 push af ld de, SFX_READ_TEXT_2 call PlaySFX pop af bit 1, a jr z, .asm_100d65 ret z scf ret .asm_100d65 and a ret ; 100d67 Function100d67: ; 100d67 ld hl, $4d88 call Function1d3c xor a ld [hBGMapMode], a call Function1cbb call Function1ad2 call Function1c89 call WaitBGMap call Function1c66 call Function1c10 ld hl, $cfa5 set 6, [hl] ret ; 100d88 INCBIN "baserom.gbc",$100d88,$100da5 - $100d88 Function100da5: ; 100da5 ld hl, $cd2a res 3, [hl] ld hl, $cd29 res 0, [hl] ret ; 100db0 Function100db0: ; 100db0 ld hl, $cd2a bit 3, [hl] jr nz, .asm_100dbe ld hl, $cd2a set 3, [hl] scf ret .asm_100dbe xor a ret ; 100dc0 Function100dc0: ; 100dc0 ld a, [InLinkBattle] cp $4 jr nz, .asm_100dd0 ld hl, $cd2a bit 3, [hl] jr z, .asm_100dd0 scf ret .asm_100dd0 xor a ret ; 100dd2 Function100dd2: ; 100dd2 ld a, $1e ld [OverworldDelay], a ret ; 100dd8 Function100dd8: ; 100dd8 ld c, $1 ld b, $3 callba Function10062d jr c, .asm_100dfb ld c, $3c ld b, $1 call Function10079c jr c, .asm_100dfb callba Function10032e ld a, [$cd2b] and a jr nz, .asm_100dfb xor a ret .asm_100dfb scf ret ; 100dfd Function100dfd: ; 100dfd ld a, [OverworldDelay] ld c, a ld a, $1e sub c ld c, a ld b, $3 push bc callba Function10062d pop bc jr c, .asm_100e2b ld b, $1 call Function10079c jr c, .asm_100e2b call Function1009f3 jr c, .asm_100e2b callba Function10032e ld a, [$cd2b] and a jr nz, .asm_100e2b xor a ret .asm_100e2b scf ret ; 100e2d Function100e2d: ; 100e2d ld a, [OverworldDelay] ld c, a ld a, $1e sub c ld c, a ld b, $3 push bc callba Function10062d pop bc jr c, .asm_100e61 ld b, $1 call Function10079c jr c, .asm_100e61 call Function1009f3 jr c, .asm_100e61 callba Function10032e ld a, [$cd2b] and a jr nz, .asm_100e61 call Function100e63 call Function100e84 xor a ret .asm_100e61 scf ret ; 100e63 Function100e63: ; 100e63 ld a, e cp $2 ret nz call Function100db0 ret nc ld de, SFX_ELEVATOR_END call PlaySFX ret ; 100e72 Function100e72: ; 100e72 xor a ld hl, $cd29 bit 0, [hl] jr z, .asm_100e7c ld a, $a .asm_100e7c ld [$cd67], a xor a ld [$cd68], a ret ; 100e84 Function100e84: ; 100e84 ld a, [$cd67] ld hl, Jumptable_100e8c rst JumpTable ret ; 100e8c ; no known jump sources Jumptable_100e8c: ; 100e8c (40:4e8c) dw Function100ea2 dw Function100eae dw Function100eb4 dw Function100eae dw Function100eb4 dw Function100eae dw Function100eb4 dw Function100eae dw Function100eb4 dw Function100eae dw Function100ec4 ; no known jump sources Function100ea2: ; 100ea2 (40:4ea2) call Function100dc0 ret nc ld hl, $cd29 set 0, [hl] call Function100ec5 Function100eae: ; 100eae scf call Function100eca jr asm_100eb8 Function100eb4: ; 100eb4 and a call Function100eca asm_100eb8 ld hl, $cd68 inc [hl] ld a, [hl] cp $2 ret c ld [hl], $0 jr Function100ec5 Function100ec4: ; 100ec4 ret Function100ec5 ld hl, $cd67 inc [hl] ret ; 100eca Function100eca: ; 100eca callba Function8e8b call Function100ed4 ret ; 100ed4 Function100ed4: ; 100ed4 callba Function96a4 ld a, $1 ld [hCGBPalUpdate], a ret ; 100edf INCBIN "baserom.gbc",$100edf,$1011f1 - $100edf Function1011f1: ; 1011f1 ld a, $4 call GetSRAMBank ld a, [$a60c] ld [$dc41], a call CloseSRAM ld hl, $dc41 res 4, [hl] ld hl, GameTimerPause bit 7, [hl] jr z, .asm_101210 ld hl, $dc41 set 4, [hl] .asm_101210 call Function10209c xor a ld [$dc5f], a ld [$dc60], a ld a, $4 ld [InLinkBattle], a ret ; 101220 Function101220: ; 101220 xor a ld [InLinkBattle], a ret ; 101225 Function101225: ; 101225 ld d, $1 ld e, $40 ld bc, $5297 call Function100000 jr Function10123d Function101231: ; 101231 ld d, $2 ld e, $40 ld bc, $5297 call Function100000 jr Function10123d Function10123d: ; 10123d xor a ld [ScriptVar], a ld a, c ld hl, Table101247 rst JumpTable ret ; 101247 Table101247: ; 101247 dw Function101251 dw Function10127d dw Function10127c dw Function10126c dw Function101265 ; 101251 Function101251: ; 101251 call Function1ad2 call ResetWindow ld hl, $61f4 call Function1021e0 call Function1020ea ret c call Function102142 ret ; 101265 Function101265: ; 101265 ld hl, $61ef call Function1021e0 ret ; 10126c Function10126c: ; 10126c call Function1ad2 callba Script_reloadmappart ld hl, $61f4 call Function1021e0 ret ; 10127c Function10127c: ; 10127c ret ; 10127d Function10127d: ; 10127d ret ; 10127e Function10127e: ; 10127e ld a, [$dc5f] and a jr z, .asm_101290 cp $1 ld c, $27 jr z, .asm_101292 cp $2 ld c, $37 jr z, .asm_101292 .asm_101290 ld c, $0 .asm_101292 ld a, c ld [$cd25], a ret ; 101297 INCBIN "baserom.gbc",$101297,$1013aa - $101297 Function1013aa: ; 1013aa call WhiteBGMap call Function1d7d call Function2bae callba Function106464 call Function1ad2 call Function2b5c ret ; 1013c0 INCBIN "baserom.gbc",$1013c0,$1013d6 - $1013c0 Function1013d6: ; 1013d6 callba Function104000 ret ; 1013dd INCBIN "baserom.gbc",$1013dd,$10142c - $1013dd Function10142c: ; 10142c ld a, $1 ld [$c305], a callba Function115e18 ret ; 101438 INCBIN "baserom.gbc",$101438,$101ee4 - $101438 Function101ee4: ; 101ee4 ld d, $0 ld hl, $5ef5 add hl, de add hl, de ld a, [hli] ld d, [hl] ld e, a callba Function100504 ret ; 101ef5 INCBIN "baserom.gbc",$101ef5,$10202c - $101ef5 Function10202c: ; 10202c callba Function115d99 ld hl, $cd29 set 7, [hl] ld c, $2 call Function10142c ld e, $d call Function101ee4 ld hl, $c4f4 call Function100681 ret ; 102048 INCBIN "baserom.gbc",$102048,$10209c - $102048 Function10209c: ; 10209c ld a, $ff ld hl, $dc42 ld bc, $0008 call ByteFill ret ; 1020a8 INCBIN "baserom.gbc",$1020a8,$1020ea - $1020a8 Function1020ea: ; 1020ea ld hl, $dc41 bit 4, [hl] jr z, .asm_102110 ld hl, $dc41 bit 2, [hl] jr nz, .asm_102110 call Function10218d ld hl, EnemyMoveAnimation bit 4, [hl] jr z, .asm_102110 ld hl, EnemyMoveAnimation bit 2, [hl] jr nz, .asm_102110 call Function102112 jr z, .asm_102110 and a ret .asm_102110 scf ret ; 102112 Function102112: ; 102112 ld a, $4 call GetSRAMBank ld hl, $a041 ld c, $28 .asm_10211c push hl ld de, PlayerMoveAnimation ld b, $1f .asm_102122 ld a, [de] cp [hl] jr nz, .asm_10212f inc de inc hl dec b jr nz, .asm_102122 pop hl xor a jr .asm_10213c .asm_10212f pop hl ld de, $0025 add hl, de dec c jr nz, .asm_10211c ld a, $1 and a jr .asm_10213c .asm_10213c push af call CloseSRAM pop af ret ; 102142 Function102142: ; 102142 call Function10218d call Function102180 ld hl, $61d1 call Function1d4f ld de, $0090 call PlaySFX call Functiona36 call Function1c07 call Function10219f ld hl, $61d6 call Function1d4f call YesNoBox call Function1c07 jr c, .asm_10217c call Function1021b8 jr c, .asm_10217c call Function10218d call Function102180 ld hl, $61db call PrintText .asm_10217c call Function1013d6 ret ; 102180 Function102180: ; 102180 ld hl, EnemyMoveEffect ld de, StringBuffer2 ld bc, $000b call CopyBytes ret ; 10218d Function10218d: ; 10218d ld hl, $dc00 ld de, EnemyMoveAnimation ld bc, $0026 ld a, $5 call FarCopyWRAM ld de, EnemyMoveEffect ret ; 10219f Function10219f: ; 10219f call FadeToMenu call Function10218d ld de, EnemyMoveEffect callba Function8ac4e call Functiona36 call PlayClickSFX call Function1013aa ret ; 1021b8 Function1021b8: ; 1021b8 call FadeToMenu call Function10218d ld de, PlayerMoveAnimation callba Function8ac70 ld a, c ld [StringBuffer1], a push af call Function1013aa pop af ret ; 1021d1 INCBIN "baserom.gbc",$1021d1,$1021e0 - $1021d1 Function1021e0: ; 1021e0 call Function1d4f call Functiona36 call Function1c07 ret ; 1021ea INCBIN "baserom.gbc",$1021ea,$103612 - $1021ea Function103612: ; 103612 ld hl, $7640 call LoadMenuDataHeader ld a, [$dc40] and $f jr z, .asm_103622 ld [$cf88], a .asm_103622 call Function1d81 call Function1c17 jr c, .asm_10363b ld a, [$cfa9] ld [ScriptVar], a ld c, a ld a, [$dc40] and $f0 or c ld [$dc40], a ret .asm_10363b xor a ld [ScriptVar], a ret ; 103640 INCBIN "baserom.gbc",$103640,$10366e - $103640 Function10366e: ; 10366e callba Function10632f bit 7, c jr z, .asm_10369b ld hl, $775d call PrintText call YesNoBox jr c, .asm_103696 callba Function8b1e1 jr nc, .asm_103690 call Functiona36 jr .asm_103696 .asm_103690 ld a, $1 ld [ScriptVar], a ret .asm_103696 xor a ld [ScriptVar], a ret .asm_10369b ld hl, $dc40 bit 7, [hl] set 7, [hl] jr nz, .asm_1036b5 ld hl, $7762 call PrintText call YesNoBox jr c, .asm_1036b5 call Function1036f9 call Functiona36 .asm_1036b5 call Function103700 jr c, .asm_1036f4 ld hl, $7747 call LoadMenuDataHeader call Function1d81 call Function1c07 jr c, .asm_1036f4 ld a, [$cfa9] cp $1 jr z, .asm_1036d9 cp $2 jr z, .asm_1036f4 cp $3 jr z, .asm_1036ec jr .asm_1036b5 .asm_1036d9 callba Function8b1e1 jr nc, .asm_1036e6 call Functiona36 jr .asm_1036f4 .asm_1036e6 ld a, $1 ld [ScriptVar], a ret .asm_1036ec call Function1036f9 call Functiona36 jr .asm_1036b5 .asm_1036f4 xor a ld [ScriptVar], a ret ; 1036f9 Function1036f9: ; 1036f9 ld hl, $7767 call PrintText ret ; 103700 Function103700: ; 103700 ld c, $a ld hl, $dc20 bit 4, [hl] jr z, .asm_10370f callba Function1008a6 .asm_10370f ld a, c ld [StringBuffer2], a ld a, [StringBuffer2] cp $5 jr nc, .asm_103724 cp $2 jr nc, .asm_10372c cp $1 jr nc, .asm_103734 jr .asm_10373c .asm_103724 ld hl, $776c call PrintText and a ret .asm_10372c ld hl, $7771 call PrintText and a ret .asm_103734 ld hl, $7776 call PrintText and a ret .asm_10373c ld hl, $777b call PrintText call Functiona36 scf ret ; 103747 INCBIN "baserom.gbc",$103747,$103780 - $103747 Function103780: ; 103780 ld a, [$d265] push af call Function10378c pop af ld [$d265], a ret ; 10378c Function10378c: ; 10378c ld c, $0 ld hl, $dc20 bit 4, [hl] jr nz, .asm_10379c ld c, $1 ld hl, $dc20 set 4, [hl] .asm_10379c push bc callba Function14ab2 pop bc jr c, .asm_1037b5 ld a, $1 ld [ScriptVar], a ld a, c and a ret z callba Function1006fd ret .asm_1037b5 xor a ld [ScriptVar], a ld a, c and a ret z ld hl, $dc20 res 4, [hl] ret ; 1037c2 Function1037c2: ; 1037c2 call Function103823 jr c, .asm_1037de ld a, [$dc5f] and a jr z, .asm_1037de ld hl, $77e6 call PrintText call YesNoBox jr c, .asm_1037de ld a, $1 ld [ScriptVar], a ret .asm_1037de xor a ld [$dc5f], a ld [ScriptVar], a ret ; 1037e6 INCBIN "baserom.gbc",$1037e6,$1037eb - $1037e6 Function1037eb: ; 1037eb call Function103823 jr nc, .asm_103807 ld hl, $7819 call PrintText call Functiona36 ld hl, $781e call PrintText call Functiona36 xor a ld [ScriptVar], a ret .asm_103807 ld a, [$dc60] and a jr nz, .asm_103813 ld a, $1 ld [ScriptVar], a ret .asm_103813 ld a, $2 ld [ScriptVar], a ret ; 103819 INCBIN "baserom.gbc",$103819,$103823 - $103819 Function103823: ; 103823 callba Function10632f bit 7, c jr nz, .asm_103838 callba Function1008a6 ld a, c cp $1 jr c, .asm_10383a .asm_103838 xor a ret .asm_10383a scf ret ; 10383c Function10383c: ; 10383c ld a, $1 ld [$dc60], a xor a ld hl, $dc5c ld [hli], a ld [hli], a ld [hl], a ld hl, $7876 call PrintText call Functiona36 callba Script_reloadmappart callba Function4a94e jr c, .asm_103870 ld hl, DefaultFlypoint ld de, $dc5c ld bc, $0003 call CopyBytes xor a ld [ScriptVar], a ret .asm_103870 ld a, $1 ld [ScriptVar], a ret ; 103876 INCBIN "baserom.gbc",$103876,$10387b - $103876 Function10387b: ; 10387b callba Function10632f bit 7, c ret nz callba Function1008a6 ld a, c ld [StringBuffer2], a ld hl, $7898 call PrintText call Functiona36 ret ; 103898 INCBIN "baserom.gbc",$103898,$10389d - $103898 SECTION "bank41", ROMX, BANK[$41] Function104000:: ; 104000 ld hl, $4006 jp Function104177 ; 104006 INCBIN "baserom.gbc",$104006,$10402d - $104006 Function10402d:: ; 10402d ld hl, $4033 jp Function104177 ; 104033 ld de, TileMap ; $c4a0 (aliases: SpritesEnd) ld hl, Unkn1Pals ; $d000 call Function10425f ld a, $0 ld [rVBK], a ; $ff00+$4f ld hl, Unkn1Pals ; $d000 call Function10419d ret Function104047: ; 104047 ld hl, $404d jp Function104177 ; 10404d ld de, AttrMap ; $cdd9 ld hl, $d400 call Function104263 ld a, $1 ld [rVBK], a ; $ff00+$4f ld hl, $d400 call Function10419d ret Function104061:: ; 104061 ld hl, $4067 jp Function104177 ; 104067 ld de, AttrMap ; $cdd9 ld hl, $d400 call Function104263 ld de, TileMap ; $c4a0 (aliases: SpritesEnd) ld hl, Unkn1Pals ; $d000 call Function10425f call DelayFrame di ld a, [rVBK] ; $ff00+$4f push af ld a, $1 ld [rVBK], a ; $ff00+$4f ld hl, $d400 call Function1041ad ld a, $0 ld [rVBK], a ; $ff00+$4f ld hl, Unkn1Pals ; $d000 call Function1041ad pop af ld [rVBK], a ; $ff00+$4f ei ret Function104099: ; 104099 ld hl, Function104061 ld hl, $40a2 jp Function104177 ; 1040a2 INCBIN "baserom.gbc",$1040a2,$104110 - $1040a2 Function104110:: ; 104110 ld hl, $4116 jp Function104177 ; 104116 ld de, AttrMap ; $cdd9 ld hl, $d400 call Function104263 ld de, TileMap ; $c4a0 (aliases: SpritesEnd) ld hl, Unkn1Pals ; $d000 call Function10425f call DelayFrame di ld a, [rVBK] ; $ff00+$4f push af ld a, $1 ld [rVBK], a ; $ff00+$4f ld hl, $d400 call Function1041b7 ld a, $0 ld [rVBK], a ; $ff00+$4f ld hl, Unkn1Pals ; $d000 call Function1041b7 pop af ld [rVBK], a ; $ff00+$4f ei ret ; no known jump sources Function104148: ; 104148 (41:4148) ld hl, $414e jp Function104177 ; 10414e (41:414e) INCBIN "baserom.gbc",$10414e,$104177 - $10414e Function104177: ; 104177 ld a, [hBGMapMode] push af ld a, [$ffde] push af xor a ld [hBGMapMode], a ld [$ffde], a ld a, [rSVBK] push af ld a, $6 ld [rSVBK], a ld a, [rVBK] push af call Function10419c pop af ld [rVBK], a pop af ld [rSVBK], a pop af ld [$ffde], a pop af ld [hBGMapMode], a ret ; 10419c Function10419c: ; 10419c jp [hl] ; 10419d ; known jump sources: 104043 (41:4043), 10405d (41:405d) Function10419d: ; 10419d (41:419d) call Function10424e ld a, $23 ld [hDMATransfer], a ; $ff00+$e8 .asm_1041a4 call DelayFrame ld a, [hDMATransfer] ; $ff00+$e8 and a jr nz, .asm_1041a4 ret ; known jump sources: 104087 (41:4087), 104091 (41:4091) Function1041ad: ; 1041ad (41:41ad) ld a, [$FF00+$d7] ld d, a ld a, [hBGMapAddress] ; $ff00+$d6 ld e, a ld c, $24 jr Function104209 ; known jump sources: 104136 (41:4136), 104140 (41:4140) Function1041b7: ; 1041b7 (41:41b7) ld a, [$FF00+$d7] ld d, a ld a, [hBGMapAddress] ; $ff00+$d6 ld e, a ld c, $24 jr .asm_104205 ; 1041c1 (41:41c1) INCBIN "baserom.gbc",$1041c1,$104205 - $1041c1 .asm_104205 ld b, $7b jr asm_10420b Function104209: ; 104209 ld b, $7f asm_10420b: ld a, h ld [rHDMA1], a ld a, l and $f0 ld [rHDMA2], a ld a, d and $1f ld [rHDMA3], a ld a, e and $f0 ld [rHDMA4], a ld a, c dec c or $80 ld e, a ld a, b sub c ld d, a .asm_104225 ld a, [rLY] cp d jr nc, .asm_104225 di .asm_10422b ld a, [rSTAT] and $3 jr nz, .asm_10422b .asm_104231 ld a, [rSTAT] and $3 jr z, .asm_104231 ld a, e ld [rHDMA5], a ld a, [rLY] inc c ld hl, rLY .asm_104240 cp [hl] jr z, .asm_104240 ld a, [hl] dec c jr nz, .asm_104240 ld hl, rHDMA5 res 7, [hl] ei ret ; 10424e ; known jump sources: 10419d (41:419d) Function10424e: ; 10424e (41:424e) ld a, h ld [rHDMA1], a ; $ff00+$51 ld a, l ld [rHDMA2], a ; $ff00+$52 ld a, [$FF00+$d7] and $1f ld [rHDMA3], a ; $ff00+$53 ld a, [hBGMapAddress] ; $ff00+$d6 ld [rHDMA4], a ; $ff00+$54 ret ; known jump sources: 104039 (41:4039), 104076 (41:4076), 104125 (41:4125) Function10425f: ; 10425f (41:425f) ld c, $7f jr asm_104265 ; known jump sources: 104053 (41:4053), 10406d (41:406d), 10411c (41:411c) Function104263: ; 104263 (41:4263) ld c, $0 ; known jump sources: 104261 (41:4261) asm_104265: ; 104265 (41:4265) ld a, [hConnectionStripLength] ; $ff00+$af push af ld a, c ld [hConnectionStripLength], a ; $ff00+$af ld c, $12 .asm_10426d ld b, $14 .asm_10426f ld a, [de] inc de ld [hli], a dec b jr nz, .asm_10426f ld a, [hConnectionStripLength] ; $ff00+$af ld b, $c .asm_104279 ld [hli], a dec b jr nz, .asm_104279 dec c jr nz, .asm_10426d pop af ld [hConnectionStripLength], a ; $ff00+$af ret Function104284:: ; 104284 ld a, [rSVBK] push af ld a, $6 ld [rSVBK], a push bc push hl ld a, b ld l, c ld h, $0 add hl, hl add hl, hl add hl, hl add hl, hl ld b, h ld c, l ld h, d ld l, e ld de, $d000 call FarCopyBytes pop hl pop bc push bc call DelayFrame pop bc ld d, h ld e, l ld hl, $d000 call Function104209 pop af ld [rSVBK], a ret ; 1042b2 Function1042b2:: ; 1042b2 .asm_1042b2 ld a, c cp $10 jp c, Function1042d6 jp z, Function1042d6 push bc push hl push de ld c, $10 call Function1042d6 pop de ld hl, $0080 add hl, de ld d, h ld e, l pop hl ld bc, Start add hl, bc pop bc ld a, c sub $10 ld c, a jr .asm_1042b2 ; 1042d6 Function1042d6: ; 1042d6 ld a, [rSVBK] push af ld a, $6 ld [rSVBK], a push bc push hl ld a, b ld l, c ld h, $0 add hl, hl add hl, hl add hl, hl ld c, l ld b, h ld h, d ld l, e ld de, $d000 call Functiondef pop hl pop bc push bc call DelayFrame pop bc ld d, h ld e, l ld hl, $d000 call Function104209 pop af ld [rSVBK], a ret ; 104303 Function104303: ; 104303 ld hl, $4309 jp Function104177 ; 104309 ld hl, Unkn1Pals ; $d000 ld de, TileMap ; $c4a0 (aliases: SpritesEnd) call Function10433a ld hl, BGPals ; $d080 ld de, AttrMap ; $cdd9 call Function10433a ld a, $1 ld [rVBK], a ; $ff00+$4f ld c, $8 ld hl, BGPals ; $d080 ld de, $9c00 call Function104209 ld a, $0 ld [rVBK], a ; $ff00+$4f ld c, $8 ld hl, Unkn1Pals ; $d000 ld de, $9c00 call Function104209 ret ; known jump sources: 10430f (41:430f), 104318 (41:4318) Function10433a: ; 10433a (41:433a) ld b, $4 .asm_10433c ld c, $14 .asm_10433e ld a, [de] ld [hli], a inc de dec c jr nz, .asm_10433e ld a, l add $c ld l, a ld a, h adc $0 ld h, a dec b jr nz, .asm_10433c ret ; 104350 ShockEmote: INCBIN "gfx/emotes/shock.2bpp" QuestionEmote: INCBIN "gfx/emotes/question.2bpp" HappyEmote: INCBIN "gfx/emotes/happy.2bpp" SadEmote: INCBIN "gfx/emotes/sad.2bpp" HeartEmote: INCBIN "gfx/emotes/heart.2bpp" BoltEmote: INCBIN "gfx/emotes/bolt.2bpp" SleepEmote: INCBIN "gfx/emotes/sleep.2bpp" FishEmote: INCBIN "gfx/emotes/fish.2bpp" FishingRodGFX: INCBIN "gfx/misc/fishing.2bpp" Function1045b0: ; 1045b0 call Function210f call Function2e50 call Function2e5d call GetCurrentMapTrigger call Function2e56 ld a, $5 call Function263b Function1045c4: ; 1045c4 callba Function97df9 ld a, $3 call Function263b call Function2cff ld [$c2d0], a ret EnterMapConnection: ; 1045d6 ; Return carry if a connection has been entered. ld a, [$d151] and a jp z, EnterSouthConnection cp 1 jp z, EnterNorthConnection cp 2 jp z, EnterWestConnection cp 3 jp z, EnterEastConnection ret ; 1045ed EnterWestConnection: ; 1045ed ld a, [WestConnectedMapGroup] ld [MapGroup], a ld a, [WestConnectedMapNumber] ld [MapNumber], a ld a, [WestConnectionStripXOffset] ld [XCoord], a ld a, [WestConnectionStripYOffset] ld hl, YCoord add [hl] ld [hl], a ld c, a ld hl, WestConnectionWindow ld a, [hli] ld h, [hl] ld l, a srl c jr z, .asm_10461e ld a, [WestConnectedMapWidth] add 6 ld e, a ld d, 0 .asm_10461a add hl, de dec c jr nz, .asm_10461a .asm_10461e ld a, l ld [$d194], a ld a, h ld [$d195], a jp EnteredConnection ; 104629 EnterEastConnection: ; 104629 ld a, [EastConnectedMapGroup] ld [MapGroup], a ld a, [EastConnectedMapNumber] ld [MapNumber], a ld a, [EastConnectionStripXOffset] ld [XCoord], a ld a, [EastConnectionStripYOffset] ld hl, YCoord add [hl] ld [hl], a ld c, a ld hl, EastConnectionWindow ld a, [hli] ld h, [hl] ld l, a srl c jr z, .asm_10465a ld a, [EastConnectedMapWidth] add 6 ld e, a ld d, 0 .asm_104656 add hl, de dec c jr nz, .asm_104656 .asm_10465a ld a, l ld [$d194], a ld a, h ld [$d195], a jp EnteredConnection ; 104665 EnterNorthConnection: ; 104665 ld a, [NorthConnectedMapGroup] ld [MapGroup], a ld a, [NorthConnectedMapNumber] ld [MapNumber], a ld a, [NorthConnectionStripYOffset] ld [YCoord], a ld a, [NorthConnectionStripXOffset] ld hl, XCoord add [hl] ld [hl], a ld c, a ld hl, NorthConnectionWindow ld a, [hli] ld h, [hl] ld l, a ld b, 0 srl c add hl, bc ld a, l ld [$d194], a ld a, h ld [$d195], a jp EnteredConnection ; 104696 EnterSouthConnection: ; 104696 ld a, [SouthConnectedMapGroup] ld [MapGroup], a ld a, [SouthConnectedMapNumber] ld [MapNumber], a ld a, [SouthConnectionStripYOffset] ld [YCoord], a ld a, [SouthConnectionStripXOffset] ld hl, XCoord add [hl] ld [hl], a ld c, a ld hl, SouthConnectionWindow ld a, [hli] ld h, [hl] ld l, a ld b, 0 srl c add hl, bc ld a, l ld [$d194], a ld a, h ld [$d195], a ; fallthrough ; 1046c4 EnteredConnection: ; 1046c4 scf ret ; 1046c6 Function1046c6: ; 1046c6 call Function1046df call Function104718 ld a, [$d146] ld [WarpNumber], a ; $dcb4 ld a, [$d147] ld [MapGroup], a ; $dcb5 ld a, [$d148] ld [MapNumber], a ; $dcb6 ret ; known jump sources: 1046c6 (41:46c6) Function1046df: ; 1046df (41:46df) call GetMapPermission call CheckOutdoorMap ret nz ld a, [$d147] ld b, a ld a, [$d148] ld c, a call GetAnyMapPermission call CheckIndoorMap ret nz ld a, [$d14a] cp $f jr nz, .asm_104705 ld a, [$d14b] cp $a ret z cp $c ret z .asm_104705 ld a, [$d149] ld [$dca9], a ld a, [$d14a] ld [$dcaa], a ld a, [$d14b] ld [$dcab], a ret ; known jump sources: 1046c9 (41:46c9) Function104718: ; 104718 (41:4718) call GetMapPermission call CheckOutdoorMap ret nz ld a, [$d147] ld b, a ld a, [$d148] ld c, a call GetAnyMapPermission call CheckIndoorMap ret nz ld a, [$d147] ld b, a ld a, [$d148] ld c, a call GetAnyMapTileset ld a, c cp $7 jr z, .asm_104743 cp $15 jr z, .asm_104743 ret .asm_104743 ld a, [$d14a] ld [$dcb2], a ld a, [$d14b] ld [$dcb3], a ret Function104750: ; 104750 ld hl, VramState ; $d0ed res 6, [hl] ld a, $1 ld [$c2ce], a callba Function8c0e5 callba Function8c001 call Function2173 call Function104770 call Function1047a3 ret ; known jump sources: 104769 (41:4769) Function104770: ; 104770 (41:4770) ld a, $98 ld [$d153], a xor a ld [$d152], a ld [hSCY], a ; $ff00+$d0 ld [hSCX], a ; $ff00+$cf callba Function5958 ld a, [rVBK] ; $ff00+$4f push af ld a, $1 ld [rVBK], a ; $ff00+$4f xor a ld bc, $400 ld hl, $9800 call ByteFill pop af ld [rVBK], a ; $ff00+$4f ld a, $60 ld bc, $400 ld hl, $9800 call ByteFill ret ; known jump sources: 10476c (41:476c) Function1047a3: ; 1047a3 (41:47a3) ld de, TileMap ; $c4a0 (aliases: SpritesEnd) call Function1047b4 ld a, [hCGB] ; $ff00+$e6 and a ret z ld de, AttrMap ; $cdd9 ld a, $1 ld [rVBK], a ; $ff00+$4f ; known jump sources: 1047a6 (41:47a6) Function1047b4: ; 1047b4 (41:47b4) ld hl, $9800 ld c, $14 ld b, $12 .asm_1047bb push bc .asm_1047bc ld a, [de] inc de ld [hli], a dec c jr nz, .asm_1047bc ld bc, $c add hl, bc pop bc dec b jr nz, .asm_1047bb ld a, $0 ld [rVBK], a ; $ff00+$4f ret Function1047cf: ; 1047cf call LoadTilesetHeader call Function2821 xor a ld [$FF00+$de], a xor a ld [hTileAnimFrame], a ; $ff00+$df callba Function14168 call Functione5f callba Function106594 ret Function1047eb: ; 1047eb ld b, $9 jp GetSGBLayout ; 1047f0 Function1047f0: ; 1047f0 call ClearSprites callba Functionb8000 call Function2914 callba Function579d callba Function154f7 ld hl, $d45b bit 6, [hl] jr nz, .asm_104817 ld hl, VramState ; $d0ed set 0, [hl] call Function2e31 .asm_104817 ld a, [$d45b] and $1c ld [$d45b], a ret ; no known jump sources Function104820:: ; 104820 (41:4820) ld a, [$d151] cp $ff ret z and a jr z, .asm_104837 cp $1 jr z, .asm_104846 cp $2 jr z, .asm_104851 cp $3 jr z, .asm_10485c and a ret .asm_104837 ld a, [MapY] ; $d4e7 sub $4 ld b, a ld a, [MapHeight] add a cp b jr z, .asm_10486b and a ret .asm_104846 ld a, [MapY] ; $d4e7 sub $4 cp $ff jr z, .asm_10486b and a ret .asm_104851 ld a, [MapX] ; $d4e6 sub $4 cp $ff jr z, .asm_10486b and a ret .asm_10485c ld a, [MapX] ; $d4e6 sub $4 ld b, a ld a, [MapWidth] add a cp b jr z, .asm_10486b and a ret .asm_10486b scf ret Function10486d:: ; 10486d ld hl, OverworldMap ld a, [XCoord] bit 0, a jr nz, .asm_10487d srl a add $1 jr .asm_104881 .asm_10487d add $1 srl a .asm_104881 ld c, a ld b, $0 add hl, bc ld a, [MapWidth] add $6 ld c, a ld b, $0 ld a, [YCoord] bit 0, a jr nz, .asm_10489a srl a add $1 jr .asm_10489e .asm_10489a add $1 srl a .asm_10489e call AddNTimes ld a, l ld [$d194], a ld a, h ld [$d195], a ld a, [YCoord] and $1 ld [$d196], a ld a, [XCoord] and $1 ld [$d197], a ret ; 1048ba ; known jump sources: 1049ba (41:49ba) Function1048ba: ; 1048ba (41:48ba) call ClearTileMap call ClearSprites call WaitBGMap call Function105153 ld hl, $c543 ld de, $49cd call PlaceString call WaitBGMap callba Function2c642 call Function1050fb ld a, $2 ld [$ca01], a ld a, $14 ld [$ca02], a ld a, [rIE] ; $ff00+$ff push af call Function104a95 ld d, a xor a ld [rIF], a ; $ff00+$f pop af ld [rIE], a ; $ff00+$ff push de call ClearTileMap call EnableLCD call WaitBGMap ld b, $8 call GetSGBLayout call Function32f9 pop de ld hl, $c542 ld a, d ld de, $49fd cp $10 jp z, Function1049af cp $6c jp nz, Function1049b4 ld a, [$c900] cp $3 jr z, .asm_10492f call Function104a25 ld hl, $4a11 jp nc, Function1049c5 call Function104a30 ld hl, $4a16 jp c, Function1049c5 .asm_10492f ld a, [$c962] and a jp nz, Function1049bd ld a, [$c912] and a jp nz, Function1049c2 ld a, [$c900] cp $3 jr z, .asm_104963 call Function104a56 ld a, [$c900] cp $4 jr z, .asm_104963 call Function104a71 callba Function10619d callba Function1060a9 callba Function106187 .asm_104963 ld a, [$c90f] and a jr z, .asm_104990 ld a, [$c911] ld c, a callba Function2c715 push bc call Function105069 pop bc jr nz, .asm_104990 callab Function26ef5 ld h, d ld l, e ld de, StringBuffer1 ; $d073 ld bc, $d call CopyBytes ld hl, $4a20 jr Function1049c5 .asm_104990 call Function105106 ld a, [$c910] ld c, a callba Function2c708 ld a, c ld [$abe4], a ld [$d265], a call CloseSRAM call GetItemName ld hl, $4a1b jr Function1049c5 ; known jump sources: 10490e (41:490e) Function1049af: ; 1049af (41:49af) ld hl, $49fd jr Function1049c5 ; known jump sources: 104913 (41:4913) Function1049b4: ; 1049b4 (41:49b4) ld hl, $4a02 call PrintText jp Function1048ba ; known jump sources: 104933 (41:4933) Function1049bd: ; 1049bd (41:49bd) ld hl, $4a07 jr Function1049c5 ; known jump sources: 10493a (41:493a) Function1049c2: ; 1049c2 (41:49c2) ld hl, $4a0c ; known jump sources: 104923 (41:4923), 10492c (41:492c), 10498e (41:498e), 1049ad (41:49ad), 1049b2 (41:49b2), 1049c0 (41:49c0) Function1049c5: ; 1049c5 (41:49c5) call PrintText ld a, $e3 ld [rLCDC], a ; $ff00+$40 ret ; 1049cd (41:49cd) INCBIN "baserom.gbc",$1049cd,$104a25 - $1049cd ; known jump sources: 10491d (41:491d) Function104a25: ; 104a25 (41:4a25) call Function105106 ld a, [$abe5] cp $5 jp CloseSRAM ; known jump sources: 104926 (41:4926) Function104a30: ; 104a30 (41:4a30) call Function105106 ld a, [$c901] ld b, a ld a, [$c902] ld c, a ld a, [$abe5] ld d, a ld hl, $abe6 .asm_104a42 ld a, d and a jr z, .asm_104a53 ld a, [hli] cp b jr nz, .asm_104a4e ld a, [hl] cp c jr z, .asm_104a52 .asm_104a4e inc hl dec d jr .asm_104a42 .asm_104a52 scf .asm_104a53 jp CloseSRAM ; known jump sources: 104944 (41:4944) Function104a56: ; 104a56 (41:4a56) call Function105106 ld hl, $abe5 ld a, [hl] inc [hl] ld hl, $abe6 ld e, a ld d, $0 add hl, de add hl, de ld a, [$c901] ld [hli], a ld a, [$c902] ld [hl], a jp CloseSRAM ; known jump sources: 10494e (41:494e) Function104a71: ; 104a71 (41:4a71) call Function105106 ld a, $1 ld [$abfd], a ld hl, $c903 ld de, $abfe ld bc, $b call CopyBytes ld a, $1 ld [de], a inc de ld hl, $c850 ld bc, $26 call CopyBytes jp CloseSRAM ; known jump sources: 1048e8 (41:48e8) Function104a95: ; 104a95 (41:4a95) di callba ClearChannels call Function104d5e .asm_104a9f call Function104d96 call Function104ddd ld a, [$FF00+$bc] cp $10 jp z, Function104bd0 cp $6c jr nz, .asm_104a9f ld a, [$FF00+$bb] cp $2 jr z, Function104b22 ld hl, hPastLeadingZeroes ; $ffb3 (aliases: hDividend, hProduct) ld b, $1 call Function104d56 jr nz, .asm_104ac8 call Function104b49 jp nz, Function104bd0 jr asm_104b0a .asm_104ac8 ld a, [rLY] ; $ff00+$44 cp $90 jr c, .asm_104ac8 ld c, $56 ld a, $c0 ld [$ff00+c], a ld b, $f0 .asm_104ad5 push bc call Function105038 ld b, $2 ld c, $56 .asm_104add ld a, [$ff00+c] and b ld b, a ld a, [rLY] ; $ff00+$44 cp $90 jr nc, .asm_104add .asm_104ae6 ld a, [$ff00+c] and b ld b, a ld a, [rLY] ; $ff00+$44 cp $90 jr c, .asm_104ae6 ld a, b pop bc dec b jr z, .asm_104a9f or a jr nz, .asm_104a9f ld a, [$FF00+$c4] bit 1, a jr z, .asm_104ad5 ld a, $10 ld [$FF00+$bc], a jp Function104bd0 ; known jump sources: 104c0d (41:4c0d) Function104b04: ; 104b04 (41:4b04) call Function104b40 jp nz, Function104bd0 ; known jump sources: 104ac6 (41:4ac6) asm_104b0a: ; 104b0a (41:4b0a) call Function104d38 jp nz, Function104bd0 call Function104b88 jp nz, Function104bd0 call Function104d43 jp nz, Function104bd0 call Function105033 jp Function104bd0 ; known jump sources: 104ab4 (41:4ab4), 104c15 (41:4c15) Function104b22: ; 104b22 (41:4b22) call Function104b88 jp nz, Function104bd0 call Function104d43 jp nz, Function104bd0 call Function104b40 jp nz, Function104bd0 call Function104d38 jp nz, Function104bd0 call Function10502e jp Function104bd0 ; known jump sources: 104b04 (41:4b04), 104b2e (41:4b2e) Function104b40: ; 104b40 (41:4b40) ld hl, hPastLeadingZeroes ; $ffb3 (aliases: hDividend, hProduct) ld b, $1 call Function104d56 ret nz ; known jump sources: 104ac0 (41:4ac0) Function104b49: ; 104b49 (41:4b49) call Function105033 ld a, [$FF00+$bc] cp $6c ret nz ld a, [hPastLeadingZeroes] ; $ff00+$b3 (aliases: hDividend, hProduct) cp $96 jp nz, Function104d32 ld a, $90 ld [hPastLeadingZeroes], a ; $ff00+$b3 (aliases: hDividend, hProduct) call Function104d38 ret nz ld hl, hPastLeadingZeroes ; $ffb3 (aliases: hDividend, hProduct) ld b, $1 call Function104d4e ret nz call Function10502e ld a, [$FF00+$bc] cp $6c ret nz call Function104d43 ret nz ld hl, $c850 ld a, [$ca02] ld b, a call Function104d56 ret nz call Function105033 ld a, [$FF00+$bc] cp $6c ret ; known jump sources: 104b10 (41:4b10), 104b22 (41:4b22) Function104b88: ; 104b88 (41:4b88) ld a, $96 ld [hPastLeadingZeroes], a ; $ff00+$b3 (aliases: hDividend, hProduct) ld hl, hPastLeadingZeroes ; $ffb3 (aliases: hDividend, hProduct) ld b, $1 call Function104d4e ret nz call Function10502e ld a, [$FF00+$bc] cp $6c ret nz call Function104d43 ret nz ld hl, hPastLeadingZeroes ; $ffb3 (aliases: hDividend, hProduct) ld b, $1 call Function104d56 ret nz call Function105033 ld a, [$FF00+$bc] cp $6c ret nz ld a, [hPastLeadingZeroes] ; $ff00+$b3 (aliases: hDividend, hProduct) cp $90 jp nz, Function104d32 call Function104d38 ret nz ld hl, OverworldMap ; $c800 ld a, [$ca02] ld b, a call Function104d4e ret nz call Function10502e ld a, [$FF00+$bc] cp $6c ret ; known jump sources: 104aa9 (41:4aa9), 104ac3 (41:4ac3), 104b01 (41:4b01), 104b07 (41:4b07), 104b0d (41:4b0d), 104b13 (41:4b13), 104b19 (41:4b19), 104b1f (41:4b1f), 104b25 (41:4b25), 104b2b (41:4b2b), 104b31 (41:4b31), 104b37 (41:4b37), 104b3d (41:4b3d), 104c0b (41:4c0b), 104c13 (41:4c13) Function104bd0: ; 104bd0 (41:4bd0) nop ld a, [$FF00+$bc] cp $10 jr z, .asm_104c18 cp $6c jr nz, .asm_104c18 ld hl, $ca01 dec [hl] jr z, .asm_104c18 ld hl, $c850 ld de, $c900 ld bc, $14 call CopyBytes ld a, [$c850] cp $3 jr nc, .asm_104c18 callba Function10510b call Function1050fb ld a, $26 ld [$ca02], a ld a, [$FF00+$bb] cp $2 jr z, .asm_104c10 call Function104d43 jr nz, Function104bd0 jp Function104b04 .asm_104c10 call Function104d38 jr nz, Function104bd0 jp Function104b22 .asm_104c18 ld a, [$FF00+$bc] push af call Function104da0 xor a ld [rIF], a ; $ff00+$f ld a, [rIE] ; $ff00+$ff or $1 ld [rIE], a ; $ff00+$ff ei call DelayFrame pop af ret ; known jump sources: 1056ae (41:56ae) Function104c2d: ; 104c2d (41:4c2d) di callba ClearChannels call Function104d5e .asm_104c37 call Function104d96 call Function104ddd ld a, [$FF00+$bc] cp $10 jp z, Function104d1c cp $6c jr nz, .asm_104c37 ld a, [$FF00+$bb] cp $2 jr z, .asm_104c6c call Function104c8a jp nz, Function104d1c call Function104d38 jp nz, Function104d1c call Function104cd2 jp nz, Function104d1c call Function104d43 jp nz, Function104d1c call Function105033 jp Function104d1c .asm_104c6c call Function104cd2 jp nz, Function104d1c call Function104d43 jp nz, Function104d1c call Function104c8a jp nz, Function104d1c call Function104d38 jp nz, Function104d1c call Function10502e jp Function104d1c ; known jump sources: 104c4e (41:4c4e), 104c78 (41:4c78) Function104c8a: ; 104c8a (41:4c8a) ld hl, hPastLeadingZeroes ; $ffb3 (aliases: hDividend, hProduct) ld b, $1 call Function104d56 ret nz call Function105033 ld a, [$FF00+$bc] cp $6c ret nz ld a, [hPastLeadingZeroes] ; $ff00+$b3 (aliases: hDividend, hProduct) cp $3c jp nz, Function104d32 swap a ld [hPastLeadingZeroes], a ; $ff00+$b3 (aliases: hDividend, hProduct) call Function104d38 ret nz ld hl, hPastLeadingZeroes ; $ffb3 (aliases: hDividend, hProduct) ld b, $1 call Function104d4e ret nz call Function10502e ld a, [$FF00+$bc] cp $6c ret nz call Function104d43 ret nz ld hl, $c850 ld a, [$ca02] ld b, a call Function104d56 ret nz call Function105033 ld a, [$FF00+$bc] cp $6c ret ; known jump sources: 104c5a (41:4c5a), 104c6c (41:4c6c) Function104cd2: ; 104cd2 (41:4cd2) ld a, $3c ld [hPastLeadingZeroes], a ; $ff00+$b3 (aliases: hDividend, hProduct) ld hl, hPastLeadingZeroes ; $ffb3 (aliases: hDividend, hProduct) ld b, $1 call Function104d4e ret nz call Function10502e ld a, [$FF00+$bc] cp $6c ret nz call Function104d43 ret nz ld hl, hPastLeadingZeroes ; $ffb3 (aliases: hDividend, hProduct) ld b, $1 call Function104d56 ret nz call Function105033 ld a, [$FF00+$bc] cp $6c ret nz ld a, [hPastLeadingZeroes] ; $ff00+$b3 (aliases: hDividend, hProduct) swap a cp $3c jp nz, Function104d32 call Function104d38 ret nz ld hl, OverworldMap ; $c800 ld a, [$ca02] ld b, a call Function104d4e ret nz call Function10502e ld a, [$FF00+$bc] cp $6c ret ; known jump sources: 104c41 (41:4c41), 104c51 (41:4c51), 104c57 (41:4c57), 104c5d (41:4c5d), 104c63 (41:4c63), 104c69 (41:4c69), 104c6f (41:4c6f), 104c75 (41:4c75), 104c7b (41:4c7b), 104c81 (41:4c81), 104c87 (41:4c87) Function104d1c: ; 104d1c (41:4d1c) nop ld a, [$FF00+$bc] push af call Function104da0 xor a ld [rIF], a ; $ff00+$f ld a, [rIE] ; $ff00+$ff or $1 ld [rIE], a ; $ff00+$ff ei call DelayFrame pop af ret ; known jump sources: 104b55 (41:4b55), 104bb6 (41:4bb6), 104c9f (41:4c9f), 104d02 (41:4d02) Function104d32: ; 104d32 (41:4d32) ld a, $80 ld [$FF00+$bc], a and a ret ; known jump sources: 104b0a (41:4b0a), 104b34 (41:4b34), 104b5c (41:4b5c), 104bb9 (41:4bb9), 104c10 (41:4c10), 104c54 (41:4c54), 104c7e (41:4c7e), 104ca6 (41:4ca6), 104d05 (41:4d05) Function104d38: ; 104d38 (41:4d38) call Function104d96 call Function104e46 ld a, [$FF00+$bc] cp $6c ret ; known jump sources: 104b16 (41:4b16), 104b28 (41:4b28), 104b71 (41:4b71), 104b9d (41:4b9d), 104c08 (41:4c08), 104c60 (41:4c60), 104c72 (41:4c72), 104cbb (41:4cbb), 104ce7 (41:4ce7) Function104d43: ; 104d43 (41:4d43) call Function104d96 call Function104dfe ld a, [$FF00+$bc] cp $6c ret ; known jump sources: 104b65 (41:4b65), 104b91 (41:4b91), 104bc4 (41:4bc4), 104caf (41:4caf), 104cdb (41:4cdb), 104d10 (41:4d10) Function104d4e: ; 104d4e (41:4d4e) call Function104e93 ld a, [$FF00+$bc] cp $6c ret ; known jump sources: 104abb (41:4abb), 104b45 (41:4b45), 104b7c (41:4b7c), 104ba6 (41:4ba6), 104c8f (41:4c8f), 104cc6 (41:4cc6), 104cf0 (41:4cf0) Function104d56: ; 104d56 (41:4d56) call Function104f57 ld a, [$FF00+$bc] cp $6c ret ; known jump sources: 104a9c (41:4a9c), 104c34 (41:4c34) Function104d5e: ; 104d5e (41:4d5e) call Function104d74 ld a, $4 ld [rIE], a ; $ff00+$ff xor a ld [rIF], a ; $ff00+$f call Function104d96 xor a ld b, a .asm_104d6d inc a jr nz, .asm_104d6d inc b jr nz, .asm_104d6d ret ; known jump sources: 104d5e (41:4d5e), 10501a (41:501a) Function104d74: ; 104d74 (41:4d74) xor a ld [rTAC], a ; $ff00+$7 ld a, $fe ld [rTMA], a ; $ff00+$6 ld [rTIMA], a ; $ff00+$5 ld a, $2 ld [rTAC], a ; $ff00+$7 or $4 ld [rTAC], a ; $ff00+$7 ret ; known jump sources: 104fcf (41:4fcf) Function104d86: ; 104d86 (41:4d86) xor a ld [rTAC], a ; $ff00+$7 ld [rTMA], a ; $ff00+$6 ld [rTIMA], a ; $ff00+$5 ld a, $2 ld [rTAC], a ; $ff00+$7 or $4 ld [rTAC], a ; $ff00+$7 ret ; known jump sources: 104a9f (41:4a9f), 104c37 (41:4c37), 104d38 (41:4d38), 104d43 (41:4d43), 104d68 (41:4d68) Function104d96: ; 104d96 (41:4d96) ld a, $c0 call Function104e8c ld a, $1 ld [$FF00+$bb], a ret ; known jump sources: 104c1b (41:4c1b), 104d20 (41:4d20) Function104da0: ; 104da0 (41:4da0) xor a call Function104e8c ld a, $2 ld [rTAC], a ; $ff00+$7 ret ; known jump sources: 104db3 (41:4db3), 104e0a (41:4e0a), 104e16 (41:4e16), 104e70 (41:4e70), 104e7c (41:4e7c), 104fbb (41:4fbb), 105022 (41:5022) Function104da9: ; 104da9 (41:4da9) inc d ret z xor a ld [rIF], a ; $ff00+$f db $76 ;halt (prevents rgbasm from putting in an extra nop) nop ld a, [$ff00+c] bit 1, a jr z, Function104da9 or a ret ; known jump sources: 104dc1 (41:4dc1), 104e03 (41:4e03), 104e10 (41:4e10), 104e69 (41:4e69), 104e76 (41:4e76), 104fb3 (41:4fb3), 104fc3 (41:4fc3) Function104db7: ; 104db7 (41:4db7) inc d ret z xor a ld [rIF], a ; $ff00+$f db $76 ;halt (prevents rgbasm from putting in an extra nop) nop ld a, [$ff00+c] bit 1, a jr nz, Function104db7 or a ret ; known jump sources: 104e27 (41:4e27), 104e31 (41:4e31), 104e56 (41:4e56), 104e60 (41:4e60), 104edf (41:4edf), 104f39 (41:4f39) Function104dc5: ; 104dc5 (41:4dc5) ld a, $c1 ld [$ff00+c], a .asm_104dc8 dec d ret z xor a ld [rIF], a ; $ff00+$f db $76 ;halt (prevents rgbasm from putting in an extra nop) nop jr .asm_104dc8 ; known jump sources: 104e22 (41:4e22), 104e2c (41:4e2c), 104e36 (41:4e36), 104e51 (41:4e51), 104e5b (41:4e5b), 104e65 (41:4e65), 104e84 (41:4e84), 104e9e (41:4e9e), 104eda (41:4eda), 104ee4 (41:4ee4), 104f3e (41:4f3e), 104f9b (41:4f9b), 10502a (41:502a) Function104dd1: ; 104dd1 (41:4dd1) ld a, $c0 ld [$ff00+c], a .asm_104dd4 dec d ret z xor a ld [rIF], a ; $ff00+$f db $76 ;halt (prevents rgbasm from putting in an extra nop) nop jr .asm_104dd4 ; known jump sources: 104aa2 (41:4aa2), 104c3a (41:4c3a) Function104ddd: ; 104ddd (41:4ddd) ld d, $0 ld e, d ld a, $1 ld [$FF00+$bb], a .asm_104de4 call Function105038 ld b, $2 ld c, $56 ld a, [$FF00+$c4] bit 1, a jr z, .asm_104df6 ld a, $10 ld [$FF00+$bc], a ret .asm_104df6 bit 0, a jr nz, asm_104e3a ld a, [$ff00+c] and b jr nz, .asm_104de4 ; known jump sources: 104d46 (41:4d46) Function104dfe: ; 104dfe (41:4dfe) ld c, $56 ld d, $0 ld e, d call Function104db7 jp z, Function104f42 ld d, e call Function104da9 jp z, Function104f42 call Function104db7 jp z, Function104f42 call Function104da9 jp z, Function104f42 ld a, $6c ld [$FF00+$bc], a ld d, $3d call Function104dd1 ld d, $5 call Function104dc5 ld d, $15 call Function104dd1 ld d, $5 call Function104dc5 ld d, $5 call Function104dd1 ret ; known jump sources: 104df8 (41:4df8) asm_104e3a: ; 104e3a (41:4e3a) call Random ld e, a and $f ld d, a .asm_104e41 dec de ld a, d or e jr nz, .asm_104e41 ; known jump sources: 104d3b (41:4d3b) Function104e46: ; 104e46 (41:4e46) ld a, $2 ld [$FF00+$bb], a ld c, $56 ld d, $0 ld e, d ld d, $3d call Function104dd1 ld d, $5 call Function104dc5 ld d, $15 call Function104dd1 ld d, $5 call Function104dc5 ld d, $5 call Function104dd1 ld d, e call Function104db7 jp z, Function104f42 ld d, e call Function104da9 jp z, Function104f42 call Function104db7 jp z, Function104f42 call Function104da9 jp z, Function104f42 ld d, $3d call Function104dd1 ld a, $6c ld [$FF00+$bc], a ret ; known jump sources: 104d98 (41:4d98), 104da1 (41:4da1) Function104e8c: ; 104e8c (41:4e8c) ld [rRP], a ; $ff00+$56 ld a, $ff ld [$FF00+$bc], a ret ; known jump sources: 104d4e (41:4d4e), 105030 (41:5030) Function104e93: ; 104e93 (41:4e93) xor a ld [hDivisor], a ; $ff00+$b7 (aliases: hMultiplier) ld [hMathBuffer], a ; $ff00+$b8 push hl push bc ld c, $56 ld d, $3d call Function104dd1 ld hl, hQuotient ; $ffb4 (aliases: hMultiplicand) ld a, $5a ld [hli], a ld [hl], b dec hl ld b, $2 call Function104ed6 pop bc pop hl call Function104ed6 ld a, [hDivisor] ; $ff00+$b7 (aliases: hMultiplier) ld [hQuotient], a ; $ff00+$b4 (aliases: hMultiplicand) ld a, [hMathBuffer] ; $ff00+$b8 ld [$FF00+$b5], a push hl ld hl, hQuotient ; $ffb4 (aliases: hMultiplicand) ld b, $2 call Function104ed6 ld hl, $ffbc ld b, $1 call Function104faf ld a, [hQuotient] ; $ff00+$b4 (aliases: hMultiplicand) ld [hDivisor], a ; $ff00+$b7 (aliases: hMultiplier) ld a, [$FF00+$b5] ld [hMathBuffer], a ; $ff00+$b8 pop hl ret ; known jump sources: 104eab (41:4eab), 104eb0 (41:4eb0), 104ec1 (41:4ec1), 104fa3 (41:4fa3) Function104ed6: ; 104ed6 (41:4ed6) ld c, $56 ld d, $5 call Function104dd1 ld d, $5 call Function104dc5 ld d, $15 call Function104dd1 ld a, b cpl ld b, a ld a, $f4 ld [rTMA], a ; $ff00+$6 .asm_104eee inc b jr z, .asm_104f2e ld a, $8 ld [$FF00+$b6], a ld a, [hli] ld e, a ld a, [hDivisor] ; $ff00+$b7 (aliases: hMultiplier) add e ld [hDivisor], a ; $ff00+$b7 (aliases: hMultiplier) ld a, [hMathBuffer] ; $ff00+$b8 adc $0 ld [hMathBuffer], a ; $ff00+$b8 .asm_104f02 xor a ld [rIF], a ; $ff00+$f db $76 ;halt (prevents rgbasm from putting in an extra nop) nop ld a, $c1 ld [rRP], a ; $ff00+$56 ld d, $1 ld a, e rlca ld e, a jr nc, .asm_104f13 inc d .asm_104f13 ld a, [rTIMA] ; $ff00+$5 cp $f8 jr c, .asm_104f13 ld a, $c0 ld [rRP], a ; $ff00+$56 dec d jr z, .asm_104f25 xor a ld [rIF], a ; $ff00+$f db $76 ;halt (prevents rgbasm from putting in an extra nop) nop .asm_104f25 ld a, [$FF00+$b6] dec a jr z, .asm_104eee ld [$FF00+$b6], a jr .asm_104f02 .asm_104f2e ld a, $fe ld [rTMA], a ; $ff00+$6 xor a ld [rIF], a ; $ff00+$f db $76 ;halt (prevents rgbasm from putting in an extra nop) nop ld d, $5 call Function104dc5 ld d, $11 call Function104dd1 ret ; known jump sources: 104e06 (41:4e06), 104e0d (41:4e0d), 104e13 (41:4e13), 104e19 (41:4e19), 104e6c (41:4e6c), 104e73 (41:4e73), 104e79 (41:4e79), 104e7f (41:4e7f), 104fb6 (41:4fb6), 104fbe (41:4fbe), 104fc6 (41:4fc6), 105025 (41:5025) Function104f42: ; 104f42 (41:4f42) ld a, [$FF00+$bc] or $2 ld [$FF00+$bc], a ret ; known jump sources: 104f95 (41:4f95) Function104f49: ; 104f49 (41:4f49) ld a, [$FF00+$bc] or $1 ld [$FF00+$bc], a ret ; known jump sources: 104f6e (41:4f6e), 104f75 (41:4f75) Function104f50: ; 104f50 (41:4f50) ld a, [$FF00+$bc] or $80 ld [$FF00+$bc], a ret ; known jump sources: 104d56 (41:4d56), 105035 (41:5035) Function104f57: ; 104f57 (41:4f57) xor a ld [hDivisor], a ; $ff00+$b7 (aliases: hMultiplier) ld [hMathBuffer], a ; $ff00+$b8 push bc push hl ld hl, hQuotient ; $ffb4 (aliases: hMultiplicand) ld b, $2 call Function104faf ld a, [$FF00+$b5] ld [$FF00+$ba], a ld b, a pop hl pop af cp b jp c, Function104f50 ld a, [hQuotient] ; $ff00+$b4 (aliases: hMultiplicand) cp $5a jp nz, Function104f50 call Function104faf ld a, [hDivisor] ; $ff00+$b7 (aliases: hMultiplier) ld d, a ld a, [hMathBuffer] ; $ff00+$b8 ld e, a push hl push de ld hl, hQuotient ; $ffb4 (aliases: hMultiplicand) ld b, $2 call Function104faf pop de ld hl, hQuotient ; $ffb4 (aliases: hMultiplicand) ld a, [hli] xor d ld b, a ld a, [hl] xor e or b call nz, Function104f49 push de ld d, $3d call Function104dd1 ld hl, $ffbc ld b, $1 call Function104ed6 pop de pop hl ld a, d ld [hDivisor], a ; $ff00+$b7 (aliases: hMultiplier) ld a, e ld [hMathBuffer], a ; $ff00+$b8 ret ; known jump sources: 104ec9 (41:4ec9), 104f63 (41:4f63), 104f78 (41:4f78), 104f88 (41:4f88) Function104faf: ; 104faf (41:4faf) ld c, $56 ld d, $0 call Function104db7 jp z, Function104f42 ld d, $0 call Function104da9 jp z, Function104f42 ld d, $0 call Function104db7 jp z, Function104f42 ld a, b cpl ld b, a xor a ld [$FF00+$c5], a call Function104d86 .asm_104fd2 inc b jr z, .asm_10501a ld a, $8 ld [$FF00+$b6], a .asm_104fd9 ld d, $0 .asm_104fdb inc d jr z, .asm_104fe5 ld a, [$ff00+c] bit 1, a jr z, .asm_104fdb ld d, $0 .asm_104fe5 inc d jr z, .asm_104fed ld a, [$ff00+c] bit 1, a jr nz, .asm_104fe5 .asm_104fed ld a, [$FF00+$c5] ld d, a ld a, [rTIMA] ; $ff00+$5 ld [$FF00+$c5], a sub d cp $12 jr c, .asm_104ffd set 0, e jr .asm_104fff .asm_104ffd res 0, e .asm_104fff ld a, [$FF00+$b6] dec a ld [$FF00+$b6], a jr z, .asm_10500b ld a, e rlca ld e, a jr .asm_104fd9 .asm_10500b ld a, e ld [hli], a ld a, [hDivisor] ; $ff00+$b7 (aliases: hMultiplier) add e ld [hDivisor], a ; $ff00+$b7 (aliases: hMultiplier) ld a, [hMathBuffer] ; $ff00+$b8 adc $0 ld [hMathBuffer], a ; $ff00+$b8 jr .asm_104fd2 .asm_10501a call Function104d74 xor a ld [rIF], a ; $ff00+$f ld d, $0 call Function104da9 jp z, Function104f42 ld d, $10 call Function104dd1 ret ; known jump sources: 104b3a (41:4b3a), 104b69 (41:4b69), 104b95 (41:4b95), 104bc8 (41:4bc8), 104c84 (41:4c84), 104cb3 (41:4cb3), 104cdf (41:4cdf), 104d14 (41:4d14) Function10502e: ; 10502e (41:502e) ld b, $0 jp Function104e93 ; known jump sources: 104b1c (41:4b1c), 104b49 (41:4b49), 104b80 (41:4b80), 104baa (41:4baa), 104c66 (41:4c66), 104c93 (41:4c93), 104cca (41:4cca), 104cf4 (41:4cf4) Function105033: ; 105033 (41:5033) ld b, $0 jp Function104f57 ; known jump sources: 104ad6 (41:4ad6), 104de4 (41:4de4) Function105038: ; 105038 (41:5038) ld a, $20 ld [rJOYP], a ; $ff00+$0 ld a, [rJOYP] ; $ff00+$0 ld a, [rJOYP] ; $ff00+$0 cpl and $f swap a ld b, a ld a, $10 ld [rJOYP], a ; $ff00+$0 ld a, [rJOYP] ; $ff00+$0 ld a, [rJOYP] ; $ff00+$0 ld a, [rJOYP] ; $ff00+$0 ld a, [rJOYP] ; $ff00+$0 ld a, [rJOYP] ; $ff00+$0 ld a, [rJOYP] ; $ff00+$0 cpl and $f or b ld c, a ld a, [$FF00+$c3] xor c and c ld [$FF00+$c4], a ld a, c ld [$FF00+$c3], a ld a, $30 ld [rJOYP], a ; $ff00+$0 ret ; known jump sources: 104974 (41:4974) Function105069: ; 105069 (41:5069) call Function105106 ld d, $0 ld b, $2 ld hl, $abf0 ld a, $3 push hl push bc call Predef call CloseSRAM ld a, c and a pop bc pop hl ret nz call Function105106 ld b, $1 ld a, $3 call Predef call CloseSRAM xor a ret ; no known jump sources Function105091: ; 105091 (41:5091) call Function105106 ld c, $0 .asm_105096 push bc ld d, $0 ld b, $2 ld hl, $abf0 ld a, $3 call Predef ld a, c and a pop bc jr z, .asm_1050b0 push bc callab Function26f02 pop bc .asm_1050b0 inc c ld a, c cp $2b jr c, .asm_105096 jp CloseSRAM Function1050b9: ; 1050b9 call Function105106 ld hl, $abe3 ld a, [hl] inc a jr nz, .asm_1050c5 ld [hld], a ld [hl], a .asm_1050c5 jp CloseSRAM ; 1050c8 Function1050c8: ; 1050c8 call Function105106 ld a, [$abe5] cp $ff jr z, .asm_1050d6 xor a ld [$abe5], a .asm_1050d6 jp CloseSRAM ; 1050d9 Function1050d9: ; 1050d9 call Function105106 ld hl, $abe2 ld de, $abe4 ld a, [hli] ld [de], a inc de ld a, [hl] ld [de], a jp CloseSRAM ; 1050ea ; no known jump sources Function1050ea: ; 1050ea (41:50ea) call Function105106 ld hl, $abe4 ld de, $abe2 ld a, [hli] ld [de], a inc de ld a, [hl] ld [de], a jp CloseSRAM ; known jump sources: 1048d8 (41:48d8), 104bfa (41:4bfa), 1056a3 (41:56a3) Function1050fb: ; 1050fb (41:50fb) ld hl, $c850 xor a ld b, $26 .asm_105101 ld [hli], a dec b jr nz, .asm_105101 ret Function105106: ; 105106 ld a, $0 jp GetSRAMBank ; 10510b ; no known jump sources Function10510b: ; 10510b (41:510b) ld a, $1 call GetSRAMBank ld de, OverworldMap ; $c800 ld bc, $a86d ld hl, $a866 .asm_105119 ld a, [hli] cp $ff jr z, .asm_105148 cp $fd jr z, .asm_10513e push hl ld hl, $1f add hl, bc ld a, [hl] ld [de], a inc de ld hl, $0 add hl, bc ld a, [hl] ld [de], a inc de ld hl, $2 add hl, bc push bc ld bc, $4 call CopyBytes pop bc pop hl .asm_10513e push hl ld hl, $30 add hl, bc ld b, h ld c, l pop hl jr .asm_105119 .asm_105148 ld a, $ff ld [de], a ld a, $26 ld [$ca00], a jp CloseSRAM ; known jump sources: 1048c3 (41:48c3) Function105153: ; 105153 (41:5153) call WhiteBGMap call DisableLCD ld hl, $5258 ld de, $9000 ld a, $41 ld bc, $430 call FarCopyBytes ld hl, TileMap ; $c4a0 (aliases: SpritesEnd) ld a, $42 ld bc, $168 call ByteFill ld hl, $c52f ld bc, $90f call ClearBox ld hl, TileMap ; $c4a0 (aliases: SpritesEnd) ld a, $0 ld [hli], a inc a ld [hl], a ld hl, $c4b4 inc a ld [hli], a inc a ld [hl], a ld hl, $c4bb ld a, $12 call Function10522e ld hl, $c4ca ld a, $17 call Function105236 ld hl, $c4de ld a, $27 call Function105236 ld hl, $c4f9 ld a, $37 ld [hli], a inc a ld [hl], a ld hl, $c4c9 ld [hl], $4 ld hl, $c4dd ld a, $5 call Function105246 ld a, $9 ld hl, $c516 call Function105242 ld hl, $c506 ld a, $b call Function105251 ld hl, $c5e2 ld a, $7 call Function105251 ld hl, $c506 ld a, $d call Function10522e ld hl, $c50b ld [hl], $c ld hl, $c516 ld [hl], $a ld hl, $c5f2 ld [hl], $8 ld hl, $c5e1 ld [hl], $6 ld hl, $c51a ld a, $3a call Function105251 ld hl, $c5ce ld a, $40 call Function105251 ld hl, $c51a ld a, $3c call Function10523e ld hl, $c529 ld a, $3e call Function10523e ld hl, $c51a ld [hl], $39 ld hl, $c529 ld [hl], $3b ld hl, $c5ce ld [hl], $3f ld hl, $c5dd ld [hl], $41 call EnableLCD call WaitBGMap ld b, $1d call GetSGBLayout call Function32f9 ret ; known jump sources: 10518f (41:518f), 1051d4 (41:51d4) Function10522e: ; 10522e (41:522e) ld b, $5 jr asm_105238 ; 105232 (41:5232) INCBIN "baserom.gbc",$105232,$105236 - $105232 ; known jump sources: 105197 (41:5197), 10519f (41:519f) Function105236: ; 105236 (41:5236) ld b, $10 ; known jump sources: 105230 (41:5230), 10523b (41:523b) asm_105238: ; 105238 (41:5238) ld [hli], a inc a dec b jr nz, asm_105238 ret ; known jump sources: 105200 (41:5200), 105208 (41:5208) Function10523e: ; 10523e (41:523e) ld b, $9 jr asm_105248 ; known jump sources: 1051bc (41:51bc) Function105242: ; 105242 (41:5242) ld b, $b jr asm_105248 ; known jump sources: 1051b4 (41:51b4) Function105246: ; 105246 (41:5246) ld b, $e ; known jump sources: 105240 (41:5240), 105244 (41:5244), 10524e (41:524e) asm_105248: ; 105248 (41:5248) ld [hl], a ld de, $14 add hl, de dec b jr nz, asm_105248 ret ; known jump sources: 1051c4 (41:51c4), 1051cc (41:51cc), 1051f0 (41:51f0), 1051f8 (41:51f8) Function105251: ; 105251 (41:5251) ld b, $10 .asm_105253 ld [hli], a dec b jr nz, .asm_105253 ret MysteryGiftGFX: INCBIN "gfx/misc/mystery_gift.2bpp" ; known jump sources: 105723 (41:5723) Function105688: ; 105688 (41:5688) call ClearTileMap call ClearSprites call WaitBGMap call Function1057d7 ld hl, $c543 ld de, $572e call PlaceString call WaitBGMap call Function10578c call Function1050fb ld a, $24 ld [$ca02], a ld a, [rIE] ; $ff00+$ff push af call Function104c2d ld d, a xor a ld [rIF], a ; $ff00+$f pop af ld [rIE], a ; $ff00+$ff ld a, d cp $10 jp z, Function105712 cp $6c jp nz, Function10571a call Function1056eb ld c, $3c call DelayFrames call Function105777 ld hl, $575e call PrintText ld de, $c850 callba Function8ac70 ld a, c ld [$d265], a ld hl, $5768 jr c, asm_105726 ld hl, $5763 jr asm_105726 ; known jump sources: 1056c3 (41:56c3) Function1056eb: ; 1056eb (41:56eb) ld c, $10 .asm_1056ed ld hl, Sprites ; $c400 ld b, $8 .asm_1056f2 dec [hl] inc hl inc hl inc hl inc hl dec b jr nz, .asm_1056f2 ld hl, $c420 ld b, $8 .asm_1056ff inc [hl] inc hl inc hl inc hl inc hl dec b jr nz, .asm_1056ff dec c ret z push bc ld c, $4 call DelayFrames pop bc jr .asm_1056ed ; known jump sources: 1056bb (41:56bb) Function105712: ; 105712 (41:5712) call Function105777 ld hl, $576d jr asm_105726 ; known jump sources: 1056c0 (41:56c0) Function10571a: ; 10571a (41:571a) call Function105777 ld hl, $5772 call PrintText jp Function105688 ; known jump sources: 1056e4 (41:56e4), 1056e9 (41:56e9), 105718 (41:5718) asm_105726: ; 105726 (41:5726) call PrintText ld a, $e3 ld [rLCDC], a ; $ff00+$40 ret ; 10572e (41:572e) INCBIN "baserom.gbc",$10572e,$105777 - $10572e ; known jump sources: 1056cb (41:56cb), 105712 (41:5712), 10571a (41:571a) Function105777: ; 105777 (41:5777) call ClearSprites call ClearTileMap call EnableLCD call WaitBGMap ld b, $8 call GetSGBLayout call Function32f9 ret ; known jump sources: 1056a0 (41:56a0) Function10578c: ; 10578c (41:578c) ld de, OverworldMap ; $c800 ld a, $1 call GetSRAMBank ld hl, $a00b ld bc, $b call CopyBytes ld hl, $a009 ld bc, $2 call CopyBytes ld hl, $a3d8 ld bc, $2 call CopyBytes call CloseSRAM ld a, $1 call GetSRAMBank ld a, [$be3d] ld [de], a inc de ld a, $4 call GetSRAMBank ld hl, $a603 ld bc, $8 call CopyBytes ld hl, $a007 ld bc, $c call CopyBytes call CloseSRAM ret ; known jump sources: 105691 (41:5691) Function1057d7: ; 1057d7 (41:57d7) call WhiteBGMap call DisableLCD ld hl, $5930 ld de, $9000 ld a, $41 ld bc, $400 call FarCopyBytes ld hl, $5d30 ld de, $8000 ld a, $41 ld bc, $80 call FarCopyBytes ld hl, TileMap ; $c4a0 (aliases: SpritesEnd) ld a, $3f ld bc, $168 call ByteFill ld hl, $c52f ld bc, $90f call ClearBox ld hl, TileMap ; $c4a0 (aliases: SpritesEnd) ld a, $0 ld [hli], a inc a ld [hl], a ld hl, $c4b4 inc a ld [hli], a inc a ld [hl], a ld hl, $c4cc ld a, $13 call Function1058ca ld hl, $c4e0 ld a, $1e call Function1058ce ld hl, $c4f4 ld a, $2a call Function1058ce ld hl, $c4c9 ld [hl], $4 ld hl, $c4dd ld a, $5 call Function1058de ld a, $9 ld hl, $c516 call Function1058da ld hl, $c506 ld a, $b call Function1058e9 ld hl, $c5e2 ld a, $7 call Function1058e9 ld hl, $c506 ld a, $d call Function1058c6 ld hl, $c50c ld [hl], $c ld hl, $c516 ld [hl], $a ld hl, $c5f2 ld [hl], $8 ld hl, $c5e1 ld [hl], $6 ld hl, $c51a ld a, $37 call Function1058e9 ld hl, $c5ce ld a, $3d call Function1058e9 ld hl, $c51a ld a, $39 call Function1058d6 ld hl, $c529 ld a, $3b call Function1058d6 ld hl, $c51a ld [hl], $36 ld hl, $c529 ld [hl], $38 ld hl, $c5ce ld [hl], $3c ld hl, $c5dd ld [hl], $3e ld de, Sprites ; $c400 ld hl, $58f0 ld bc, $40 call CopyBytes call EnableLCD call WaitBGMap ld b, $2 callba Function4930f jp Function32f9 ; known jump sources: 10585e (41:585e) Function1058c6: ; 1058c6 (41:58c6) ld b, $6 jr asm_1058d0 ; known jump sources: 105821 (41:5821) Function1058ca: ; 1058ca (41:58ca) ld b, $b jr asm_1058d0 ; known jump sources: 105829 (41:5829), 105831 (41:5831) Function1058ce: ; 1058ce (41:58ce) ld b, $c ; known jump sources: 1058c8 (41:58c8), 1058cc (41:58cc), 1058d3 (41:58d3) asm_1058d0: ; 1058d0 (41:58d0) ld [hli], a inc a dec b jr nz, asm_1058d0 ret ; known jump sources: 10588a (41:588a), 105892 (41:5892) Function1058d6: ; 1058d6 (41:58d6) ld b, $9 jr asm_1058e0 ; known jump sources: 105846 (41:5846) Function1058da: ; 1058da (41:58da) ld b, $b jr asm_1058e0 ; known jump sources: 10583e (41:583e) Function1058de: ; 1058de (41:58de) ld b, $e ; known jump sources: 1058d8 (41:58d8), 1058dc (41:58dc), 1058e6 (41:58e6) asm_1058e0: ; 1058e0 (41:58e0) ld [hl], a ld de, $14 add hl, de dec b jr nz, asm_1058e0 ret ; known jump sources: 10584e (41:584e), 105856 (41:5856), 10587a (41:587a), 105882 (41:5882) Function1058e9: ; 1058e9 (41:58e9) ld b, $10 .asm_1058eb ld [hli], a dec b jr nz, .asm_1058eb ret ; 1058f0 (41:58f0) INCBIN "baserom.gbc",$1058f0,$105930 - $1058f0 ; japanese mystery gift gfx INCBIN "gfx/misc/mystery_gift_jp.2bpp" DisplayUsedMoveText: ; 105db0 ; battle command 03 ld hl, UsedMoveText call BattleTextBox jp WaitBGMap ; 105db9 UsedMoveText: ; 105db9 ; this is a stream of text and asm from 105db9 to 105ef6 ; print actor name text_jump _ActorNameText start_asm ; ???? ld a, [hBattleTurn] and a jr nz, .start ; append used move list ld a, [PlayerMoveAnimation] call UpdateUsedMoves .start ; get address for last move ld a, $13 ; last move call _GetBattleVar ld d, h ld e, l ; get address for last counter move ld a, $11 call _GetBattleVar ; get move animation (id) ld a, $c ; move animation call GetBattleVar ld [$d265], a ; check actor ???? push hl callba Function34548 pop hl jr nz, .grammar ; update last move ld a, [$d265] ld [hl], a ld [de], a .grammar call GetMoveGrammar ; $d265 now contains MoveGrammar ; everything except 'instead' made redundant in localization ; check obedience ld a, [AlreadyDisobeyed] and a ld hl, UsedMove2Text ret nz ; check move grammar ld a, [$d265] cp $3 ld hl, UsedMove2Text ret c ld hl, UsedMove1Text ret ; 105e04 UsedMove1Text: ; 105e04 text_jump _UsedMove1Text start_asm jr Function105e10 ; 105e0b UsedMove2Text: ; 105e0b text_jump _UsedMove2Text start_asm ; 105e10 Function105e10: ; 105e10 ; check obedience ld a, [AlreadyDisobeyed] and a jr z, GetMoveNameText ; print "instead," ld hl, UsedInsteadText ret ; 105e1a UsedInsteadText: ; 105e1a text_jump _UsedInsteadText start_asm ; 105e1f GetMoveNameText: ; 105e1f ld hl, MoveNameText ret ; 105e23 MoveNameText: ; 105e23 text_jump _MoveNameText start_asm ; 105e28 GetUsedMoveTextEnder: ; 105e28 ; get start address ld hl, .endusedmovetexts ; get move id ld a, [$d265] ; 2-byte pointer add a ; seek push bc ld b, $0 ld c, a add hl, bc pop bc ; get pointer to usedmovetext ender ld a, [hli] ld h, [hl] ld l, a ret ; 105e39 .endusedmovetexts ; 105e39 dw EndUsedMove1Text dw EndUsedMove2Text dw EndUsedMove3Text dw EndUsedMove4Text dw EndUsedMove5Text ; 105e43 EndUsedMove1Text: ; 105e43 text_jump _EndUsedMove1Text db "@" ; 105e48 EndUsedMove2Text: ; 105e48 text_jump _EndUsedMove2Text db "@" ; 105e4d EndUsedMove3Text: ; 105e4d text_jump _EndUsedMove3Text db "@" ; 105e52 EndUsedMove4Text: ; 105e52 text_jump _EndUsedMove4Text db "@" ; 105e57 EndUsedMove5Text: ; 105e57 text_jump _EndUsedMove5Text db "@" ; 105e5c GetMoveGrammar: ; 105e5c ; store move grammar type in $d265 push bc ; c = move id ld a, [$d265] ld c, a ld b, $0 ; read grammar table ld hl, MoveGrammar .loop ld a, [hli] ; end of table? cp $ff jr z, .end ; match? cp c jr z, .end ; advance grammar type at $00 and a jr nz, .loop ; next grammar type inc b jr .loop .end ; $d265 now contains move grammar ld a, b ld [$d265], a ; we're done pop bc ret ; 105e7a MoveGrammar: ; 105e7a ; made redundant in localization ; each move is given an identifier for what usedmovetext to use (0-4): ; 0 db SWORDS_DANCE db GROWTH db STRENGTH db HARDEN db MINIMIZE db SMOKESCREEN db WITHDRAW db DEFENSE_CURL db EGG_BOMB db SMOG db BONE_CLUB db FLASH db SPLASH db ACID_ARMOR db BONEMERANG db REST db SHARPEN db SUBSTITUTE db MIND_READER db SNORE db PROTECT db SPIKES db ENDURE db ROLLOUT db SWAGGER db SLEEP_TALK db HIDDEN_POWER db PSYCH_UP db EXTREMESPEED db 0 ; end set ; 1 db RECOVER db TELEPORT db BIDE db SELFDESTRUCT db AMNESIA db FLAIL db 0 ; end set ; 2 db MEDITATE db AGILITY db MIMIC db DOUBLE_TEAM db BARRAGE db TRANSFORM db STRUGGLE db SCARY_FACE db 0 ; end set ; 3 db POUND db SCRATCH db VICEGRIP db WING_ATTACK db FLY db BIND db SLAM db HORN_ATTACK db WRAP db THRASH db TAIL_WHIP db LEER db BITE db GROWL db ROAR db SING db PECK db ABSORB db STRING_SHOT db EARTHQUAKE db FISSURE db DIG db TOXIC db SCREECH db METRONOME db LICK db CLAMP db CONSTRICT db POISON_GAS db BUBBLE db SLASH db SPIDER_WEB db NIGHTMARE db CURSE db FORESIGHT db CHARM db ATTRACT db ROCK_SMASH db 0 ; end set ; all other moves = 4 db $ff ; end ; 105ed0 UpdateUsedMoves: ; 105ed0 ; append move a to PlayerUsedMoves unless it has already been used push bc ; start of list ld hl, PlayerUsedMoves ; get move id ld b, a ; loop count ld c, NUM_MOVES .loop ; get move from the list ld a, [hli] ; not used yet? and a jr z, .add ; already used? cp b jr z, .quit ; next byte dec c jr nz, .loop ; if the list is full and the move hasn't already been used ; shift the list back one byte, deleting the first move used ; this can occur with struggle or a new learned move ld hl, PlayerUsedMoves + 1 ; 1 = 2 ld a, [hld] ld [hli], a ; 2 = 3 inc hl ld a, [hld] ld [hli], a ; 3 = 4 inc hl ld a, [hld] ld [hl], a ; 4 = new move ld a, b ld [PlayerUsedMoves + 3], a jr .quit .add ; go back to the byte we just inced from dec hl ; add the new move ld [hl], b .quit ; list updated pop bc ret ; 105ef6 Mobile_HallOfFame2:: ; 0x105ef6 ret ; 105ef7 Function105ef7: ; 105ef7 ld a, $5 call GetSRAMBank ld hl, GameTimeHours ld de, $a001 ld bc, $0004 call CopyBytes ld hl, $a010 ld de, $a005 ld bc, $0004 call CopyBytes ld hl, $a039 ld de, $a009 ld bc, $0004 call CopyBytes ld hl, $a01b ld de, $a00d ld bc, $0003 call CopyBytes call Function106162 call CloseSRAM ret ; 105f33 Function105f33: ; 105f33 ret ; 105f34 Function105f34: ; 105f34 ld a, $5 call GetSRAMBank ld de, Buffer1 ld hl, $a07b ld a, [de] cp [hl] jr z, .asm_105f47 jr nc, .asm_105f4f jr .asm_105f55 .asm_105f47 inc hl inc de ld a, [de] cp [hl] dec hl dec de jr c, .asm_105f55 .asm_105f4f ld a, [de] inc de ld [hli], a ld a, [de] dec de ld [hl], a .asm_105f55 ld hl, $a07d ld a, [hli] or [hl] dec hl jr z, .asm_105f6d ld a, [de] cp [hl] jr z, .asm_105f65 jr c, .asm_105f6d jr .asm_105f72 .asm_105f65 inc hl inc de ld a, [de] cp [hl] jr nc, .asm_105f72 dec hl dec de .asm_105f6d ld a, [de] inc de ld [hli], a ld a, [de] ld [hl], a .asm_105f72 call Function106162 call CloseSRAM ret ; 105f79 Function105f79: ; 105f79 ret ; 105f7a Function105f7a: ; 105f7a ld a, $5 call GetSRAMBank ld a, [hProduct] ld hl, $a07f cp [hl] jr z, .asm_105f8b jr nc, .asm_105f92 jr .asm_105f98 .asm_105f8b inc hl ld a, [hMultiplicand] cp [hl] jr c, .asm_105f98 dec hl .asm_105f92 ld a, [hProduct] ld [hli], a ld a, [hMultiplicand] ld [hl], a .asm_105f98 call Function106162 call CloseSRAM ret ; 105f9f Function105f9f: ; 105f9f ret ; 105fa0 Function105fa0: ; 105fa0 ld a, $5 call GetSRAMBank ld hl, $a070 inc [hl] jr nz, .asm_105fae dec hl inc [hl] inc hl .asm_105fae dec hl ld a, [$a071] cp [hl] jr z, .asm_105fb9 jr c, .asm_105fc1 jr .asm_105fc9 .asm_105fb9 inc hl ld a, [$a072] cp [hl] jr nc, .asm_105fc9 dec hl .asm_105fc1 ld a, [hli] ld [$a071], a ld a, [hl] ld [$a072], a .asm_105fc9 call Function106162 call CloseSRAM ret ; 105fd0 Function105fd0: ; 105fd0 ret ; 105fd1 Function105fd1: ; 105fd1 ld a, $5 call GetSRAMBank ld hl, $a06f xor a ld [hli], a ld [hl], a call Function106162 call CloseSRAM ret ; 105fe3 Function105fe3: ; 105fe3 ret ; 105fe4 Function105fe4: ; 105fe4 ld a, $5 call GetSRAMBank ld hl, $a076 ld a, e add [hl] ld [hld], a ld a, d adc [hl] ld [hld], a jr nc, .asm_106001 inc [hl] jr nz, .asm_106001 dec hl inc [hl] jr nz, .asm_106001 ld a, $ff ld [hli], a ld [hli], a ld [hli], a ld [hl], a .asm_106001 call Function106162 call CloseSRAM ret ; 106008 Function106008: ; 106008 ret ; 106009 Function106009: ; 106009 ld a, $5 call GetSRAMBank ld hl, $a07a ld a, [bc] dec bc add [hl] ld [hld], a ld a, [bc] dec bc adc [hl] ld [hld], a ld a, [bc] adc [hl] ld [hld], a jr nc, .asm_106027 inc [hl] jr nz, .asm_106027 ld a, $ff ld [hli], a ld [hli], a ld [hli], a ld [hl], a .asm_106027 call Function106162 call CloseSRAM ret ; 10602e ; no known jump sources Function10602e: ; 10602e (41:602e) ret ; 10602f (41:602f) INCBIN "baserom.gbc",$10602f,$106049 - $10602f Function106049: ; 106049 ret ; 10604a (41:604a) INCBIN "baserom.gbc",$10604a,$106050 - $10604a Function106050: ; 106050 ret ; 106051 Function106051: ; 106051 ld a, [BattleType] cp $3 ret z ld hl, $a01b jp Function10611d ; 10605d Function10605d: ; 10605d ret ; 10605e Function10605e: ; 10605e ld a, [BattleType] cp $3 ret z ld hl, $a01e jp Function10611d ; 10606a Function10606a: ; 10606a ret ; 10606b Function10606b: ; 10606b ld hl, $a021 jp Function10611d ; 106071 INCBIN "baserom.gbc",$106071,$106078 - $106071 Mobile_HallOfFame:: ; 0x106078 ret Function106079: ; 106079 ld hl, $a027 jp Function10611d ; 10607f ; no known jump sources Function10607f: ; 10607f (41:607f) ret ; 106080 (41:6080) INCBIN "baserom.gbc",$106080,$106086 - $106080 Function106086: ; 106086 ret ; 106087 Function106087: ; 106087 ld hl, $a02d jp Function10611d ; 10608d ; no known jump sources Function10608d: ; 10608d (41:608d) ret ; 10608e (41:608e) INCBIN "baserom.gbc",$10608e,$106094 - $10608e Function106094: ; 106094 ret ; 106095 Function106095: ; 106095 ld hl, $a033 jp Function10611d ; 10609b Function10609b: ; 10609b ret ; 10609c (41:609c) INCBIN "baserom.gbc",$10609c,$1060a2 - $10609c Function1060a2: ; 1060a2 ret ; 1060a3 Function1060a3: ; 1060a3 ld hl, $a039 jp Function10611d ; 1060a9 ; no known jump sources Function1060a9: ; 1060a9 (41:60a9) ret ; 1060aa (41:60aa) INCBIN "baserom.gbc",$1060aa,$1060af - $1060aa Function1060af: ; 1060af ret ; 1060b0 INCBIN "baserom.gbc",$1060b0,$1060b5 - $1060b0 Function1060b5: ; 1060b5 ret ; 1060b6 INCBIN "baserom.gbc",$1060b6,$1060bb - $1060b6 Function1060bb: ; 1060bb ret ; 1060bc INCBIN "baserom.gbc",$1060bc,$1060c1 - $1060bc Function1060c1: ; 1060c1 ret ; 1060c2 INCBIN "baserom.gbc",$1060c2,$1060c7 - $1060c2 Function1060c7: ; 1060c7 ret ; 1060c8 (41:60c8) INCBIN "baserom.gbc",$1060c8,$1060cd - $1060c8 Function1060cd: ; 1060cd ret ; 1060ce INCBIN "baserom.gbc",$1060ce,$1060d3 - $1060ce Function1060d3: ; 1060d3 ret ; 1060d4 INCBIN "baserom.gbc",$1060d4,$1060df - $1060d4 Function1060df: ; 1060df ret ; 1060e0 INCBIN "baserom.gbc",$1060e0,$1060e5 - $1060e0 Function1060e5: ; 1060e5 ret ; 1060e6 (41:60e6) INCBIN "baserom.gbc", $1060e6, $1060ef - $1060e6 Function1060ef: ; 1060ef ret ; 1060f0 INCBIN "baserom.gbc", $1060f0, $1060fb - $1060f0 Function1060fb: ; 1060fb ret ; 1060fc INCBIN "baserom.gbc",$1060fc,$106101 - $1060fc Function106101: ; 106101 ret ; 106102 Function106102: ; 106102 ld hl, $a066 jr Function10611d ; 106107 Function106107: ; 106107 ret ; 106108 Function106108: ; 106108 ld hl, $a069 jr Function10611d ; 10610d Function10610d: ; 10610d ret ; 10610e Function10610e: ; 10610e ld a, [hBattleTurn] and a ret nz ld hl, $a06c jr Function10611d ; 106117 Function106117: ; 106117 push bc ld bc, 3 jr Function10612d ; 10611d Function10611d: ; 10611d push bc ld bc, 2 jr Function10612d ; 106123 Function106123: ; 106123 push bc ld bc, 1 jr Function10612d ; 106129 Function106129: ; 106129 push bc ld bc, 0 Function10612d: ; 10612d ld a, $5 call GetSRAMBank push hl push de ld e, c inc e .asm_106136 ld a, [hli] inc a jr nz, .asm_10613d dec e jr nz, .asm_106136 .asm_10613d pop de pop hl jr z, .asm_10614d add hl, bc .asm_106142 inc [hl] jr nz, .asm_10614d ld a, c and a jr z, .asm_10614d dec hl dec c jr .asm_106142 .asm_10614d call Function106162 call CloseSRAM pop bc ret ; 106155 INCBIN "baserom.gbc",$106155,$106162 - $106155 Function106162: ; 106162 push de call Function10616e ld hl, $a081 ld [hl], d inc hl ld [hl], e pop de ret ; 10616e Function10616e: ; 10616e push bc ld hl, $a001 ld bc, $0080 xor a ld de, $0000 .asm_106179 ld a, e add [hl] ld e, a jr nc, .asm_10617f inc d .asm_10617f inc hl dec bc ld a, b or c jr nz, .asm_106179 pop bc ret ; 106187 Function106187: ; 106187 ld a, $1 call GetSRAMBank ld a, [$be3c] push af ld a, $1 call GetSRAMBank pop af ld [$be44], a call CloseSRAM ret ; 10619d ; no known jump sources Function10619d: ; 10619d (41:619d) ld a, $1 call GetSRAMBank ld a, [$be44] push af ld a, $1 call GetSRAMBank pop af ld [$be3c], a call CloseSRAM ret ; 1061b3 (41:61b3) INCBIN "baserom.gbc",$1061b3,$1061c0 - $1061b3 ; no known jump sources Function1061c0: ; 1061c0 (41:61c0) ld a, $1 call GetSRAMBank xor a ld [$be3c], a call CloseSRAM ret ; 1061cd (41:61cd) INCBIN "baserom.gbc",$1061cd,$1061ef - $1061cd Function1061ef:: ; 1061ef push bc xor a ld [hProduct], a ld [hMultiplicand], a ld [$ffb5], a ld a, b and $f cp $1 jr z, .asm_106212 cp $2 jr z, .asm_10620e cp $3 jr z, .asm_10620a ld a, [de] ld [hProduct], a inc de .asm_10620a ld a, [de] ld [hMultiplicand], a inc de .asm_10620e ld a, [de] ld [$ffb5], a inc de .asm_106212 ld a, [de] ld [$ffb6], a inc de push de xor a ld [$ffbb], a ld a, b ld [$ffbc], a ld a, c cp $2 jr z, .asm_10626a ld de, $62ae cp $3 jr z, .asm_106256 ld de, $62aa cp $4 jr z, .asm_106256 ld de, $62a6 cp $5 jr z, .asm_106256 ld de, $62a2 cp $6 jr z, .asm_106256 ld de, $629e cp $7 jr z, .asm_106256 ld de, $629a cp $8 jr z, .asm_106256 ld de, $6296 cp $9 jr z, .asm_106256 ld de, $6292 .asm_106256 inc de inc de inc de dec a dec a .asm_10625b push af call Function1062b2 call Function1062ff inc de inc de inc de inc de pop af dec a jr nz, .asm_10625b .asm_10626a ld c, $0 ld a, [$ffb6] .asm_10626e cp $a jr c, .asm_106277 sub $a inc c jr .asm_10626e .asm_106277 ld b, a ld a, [$ffbb] or c ld [$ffbb], a jr nz, .asm_106284 call Function1062f7 jr .asm_106288 .asm_106284 ld a, $f6 add c ld [hl], a .asm_106288 call Function1062ff ld a, $f6 add b ld [hli], a pop de pop bc ret ; 106292 INCBIN "baserom.gbc",$106292,$1062b2 - $106292 Function1062b2: ; 1062b2 ld c, $0 .asm_1062b4 ld a, [de] dec de ld b, a ld a, [$ffb6] sub b ld [$ffba], a ld a, [de] dec de ld b, a ld a, [$ffb5] sbc b ld [$ffb9], a ld a, [de] dec de ld b, a ld a, [hMultiplicand] sbc b ld [hMathBuffer], a ld a, [de] inc de inc de inc de ld b, a ld a, [hProduct] sbc b ld [hMultiplier], a jr c, .asm_1062eb ld a, [hMultiplier] ld [hProduct], a ld a, [hMathBuffer] ld [hMultiplicand], a ld a, [$ffb9] ld [$ffb5], a ld a, [$ffba] ld [$ffb6], a inc c jr .asm_1062b4 .asm_1062eb ld a, [$ffbb] or c jr z, Function1062f7 ld a, $f6 add c ld [hl], a ld [$ffbb], a ret Function1062f7 ld a, [$ffbc] bit 7, a ret z ld [hl], $f6 ret ; 1062ff Function1062ff: ; 1062ff ld a, [$ffbc] bit 7, a jr nz, .asm_10630d bit 6, a jr z, .asm_10630d ld a, [$ffbb] and a ret z .asm_10630d inc hl ret ; 10630f Function10630f: ; 10630f xor a ld [ScriptVar], a ret ; 106314 INCBIN "baserom.gbc",$106314,$10632f - $106314 Function10632f: ; 10632f or a ret ; 106331 INCBIN "baserom.gbc",$106331,$106462 - $106331 Function106462: ; 106462 ret ; 106463 INCBIN "baserom.gbc",$106463,$106464 - $106463 Function106464:: ; 106464 ld de, $5214 ld hl, $9600 ld bc, $3e01 call Get2bpp ld de, $5424 ld hl, $9610 ld bc, $3e01 call Get2bpp ld de, $6514 ld hl, $9620 ld c, $9 ld b, $41 call Get2bpp ld de, $40b0 ld hl, $96b0 ld b, $f call Get2bpp callba Functionfb4cc ret ; 10649b INCBIN "baserom.gbc",$10649b,$106594 - $10649b Function106594:: ; 106594 ld de, $65ad ld hl, VTiles1 ld bc, $4180 call Get2bpp ld de, $6dad ld hl, $97f0 ld bc, $4101 call Get2bpp ret ; 1065ad INCBIN "baserom.gbc",$1065ad,$106dbc - $1065ad SECTION "bank42", ROMX, BANK[$42] INCBIN "baserom.gbc",$108000,$108016 - $108000 Function108016: ; 108016 ld a, $0 ld [$cf65], a ld de, $4021 jp Function108089 ; 108021 INCBIN "baserom.gbc",$108021,$108089 - $108021 Function108089: ; 108089 ld hl, BattleEnded ld [hl], e inc hl ld [hl], d ld a, [$ffde] push af xor a ld [$ffde], a ld hl, VramState ld a, [hl] push af res 0, [hl] ld hl, Options ld a, [hl] push af set 4, [hl] call Function108157 .asm_1080a6 call Function10824b jr nc, .asm_1080a6 pop af ld [Options], a pop af ld [VramState], a pop af ld [$ffde], a ret ; 1080b7 INCBIN "baserom.gbc",$1080b7,$108157 - $1080b7 Function108157: ; 108157 xor a ld [$cf63], a call WhiteBGMap call ClearSprites call ClearTileMap call DisableLCD call Function1081ad call Function1081ca call Functione51 call Functione58 call EnableLCD xor a ld [hSCX], a ld [hSCY], a ld a, $7 ld [hWX], a ld a, $90 ld [hWY], a callba Function8cf53 xor a ld hl, $c300 ld [hli], a ld [hl], $0 call DelayFrame ld a, [PlayerSDefLevel] ld de, PlayerAccLevel call Function108239 ld a, [PlayerLightScreenCount] ld de, PlayerReflectCount call Function108239 xor a call Function108b98 call Function108af4 ret ; 1081ad Function1081ad: ; 1081ad ld a, $1 ld [rVBK], a ld hl, VTiles0 ld bc, $1800 xor a call ByteFill ld a, $0 ld [rVBK], a ld hl, VTiles0 ld bc, $1800 xor a call ByteFill ret ; 1081ca Function1081ca: ; 1081ca ld a, $1 ld [rVBK], a ld hl, VBGMap0 ld bc, $0800 ld a, $0 call ByteFill ld a, $0 ld [rVBK], a ld hl, VBGMap0 ld bc, $0800 ld a, $7f call ByteFill ret ; 1081e9 INCBIN "baserom.gbc",$1081e9,$108239 - $1081e9 Function108239: ; 108239 push de ld [$d265], a call GetPokemonName ld hl, StringBuffer1 pop de ld bc, $000b call CopyBytes ret ; 10824b Function10824b: ; 10824b ld a, [$cf63] bit 7, a jr nz, .asm_10825a call Function10827b call DelayFrame and a ret .asm_10825a xor a ld [hSCX], a ld [hSCY], a ld a, $7 ld [hWX], a ld a, $90 ld [hWY], a call Functione51 call Functione58 callba Function106462 callba Function106464 scf ret ; 10827b Function10827b: ; 10827b ld a, [$cf63] ld e, a ld d, $0 ld hl, $428a add hl, de add hl, de ld a, [hli] ld h, [hl] ld l, a jp [hl] ; 10828a INCBIN "baserom.gbc",$10828a,$108af4 - $10828a Function108af4: ; 108af4 ld a, [rSVBK] push af ld a, $5 ld [rSVBK], a ld a, [$cf65] and $1 jr z, .asm_108b1c ld hl, $5187 ld de, Unkn2Pals ld bc, $0040 call CopyBytes ld hl, $5187 ld de, OBPals ld bc, $0040 call CopyBytes jr .asm_108b34 .asm_108b1c ld hl, $5147 ld de, Unkn2Pals ld bc, $0040 call CopyBytes ld hl, $5147 ld de, OBPals ld bc, $0040 call CopyBytes .asm_108b34 pop af ld [rSVBK], a ld a, $e4 call Functioncf8 ld a, $e4 call DmgToCgbBGPals call DelayFrame ret ; 108b45 INCBIN "baserom.gbc",$108b45,$108b98 - $108b45 Function108b98: ; 108b98 ld d, a ld a, [rSVBK] push af ld a, $5 ld [rSVBK], a ld a, [$cf65] and $1 xor d jr z, .asm_108bad ld hl, $4ba0 jr .asm_108bb0 .asm_108bad ld hl, $4b98 .asm_108bb0 ld de, $d038 ld bc, $0040 call CopyBytes pop af ld [rSVBK], a ret ; 108bbd INCBIN "baserom.gbc",$108bbd,$108bc7 - $108bbd ; no known jump sources Function108bc7: ; 108bc7 (42:4bc7) ld a, [$cf64] and a ret z ld hl, $5 add hl, bc ld a, [hl] cp $f2 jr z, .asm_108bd9 sub $8 ld [hl], a ret .asm_108bd9 callba Function8d036 ret ; no known jump sources Function108be0: ; 108be0 (42:4be0) ld hl, $5 add hl, bc ld a, [hl] cp $4a ret z add $8 ld [hl], a ret ; 108bec (42:4bec) INCBIN "baserom.gbc",$108bec,$109407 - $108bec IntroLogoGFX: ; 109407 INCBIN "gfx/intro/logo.2bpp.lz" ; 109847 SECTION "bank43", ROMX, BANK[$43] UnusedTitleScreen: ; 10c000 call WhiteBGMap call ClearTileMap call DisableLCD xor a ld [hBGMapMode], a ld hl, $cf63 ld [hli], a ld [hli], a ld [hli], a ld [hl], a ld hl, UnusedTitleBG_GFX ld de, VTiles2 ld bc, $800 call CopyBytes ld hl, UnusedTitleBG_GFX + $800 ld de, VTiles1 ld bc, $800 call CopyBytes ld hl, UnusedTitleFG_GFX ld de, VTiles0 ld bc, $800 call CopyBytes ld hl, UnusedTitleBG_Tilemap ld de, VBGMap0 ld bc, 32 * 32 .copy ld a, 0 ld [rVBK], a ld a, [hli] ld [de], a ld a, 1 ld [rVBK], a ld a, [hli] ld [de], a inc de dec bc ld a, b or c jr nz, .copy ld hl, UnusedTitleFG_OAM ld de, Sprites ld bc, $a0 call CopyBytes call EnableLCD ld a, [rLCDC] set 1, a set 2, a ld [rLCDC], a call DelayFrame ld a, [rSVBK] push af ld a, $5 ld [rSVBK], a ld hl, UnsuedTitleBG_Palettes ld de, Unkn1Pals ld bc, $40 call CopyBytes ld hl, UnsuedTitleFG_Palettes ld de, Unkn2Pals ld bc, $40 call CopyBytes ld hl, UnsuedTitleBG_Palettes ld de, BGPals ld bc, $40 call CopyBytes ld hl, UnsuedTitleFG_Palettes ld de, OBPals ld bc, $40 call CopyBytes pop af ld [rSVBK], a ld a, $1 ld [hCGBPalUpdate], a ld de, MUSIC_TITLE call PlayMusic ret ; 10c0b1 UnusedTitleBG_GFX: ; 10c0b1 INCBIN "gfx/title/old_bg.2bpp" ; 10d0b1 UnusedTitleBG_Tilemap: ; 10d0b1 ; 32x32 (tile, attributes) db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $01,$00, $02,$01, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00 db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $03,$00, $04,$00, $05,$01, $06,$01, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00 db $00,$00, $00,$00, $07,$05, $08,$05, $09,$05, $0a,$05, $0b,$00, $0c,$00, $0d,$00, $0e,$00, $0f,$01, $10,$01, $11,$01, $12,$01, $13,$05, $14,$05, $15,$05, $16,$05, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00 db $00,$00, $00,$00, $17,$04, $18,$04, $19,$04, $1a,$04, $1b,$00, $1c,$00, $1d,$02, $1e,$02, $1f,$07, $20,$07, $21,$01, $22,$01, $23,$04, $24,$04, $25,$04, $26,$04, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00 db $00,$00, $00,$00, $27,$04, $28,$04, $29,$04, $2a,$04, $2b,$00, $2c,$00, $2d,$03, $2e,$01, $2f,$01, $30,$01, $31,$01, $32,$01, $33,$04, $34,$04, $35,$04, $36,$04, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00 db $00,$00, $00,$00, $37,$04, $38,$04, $39,$04, $3a,$04, $3b,$00, $3c,$00, $3d,$01, $00,$00, $00,$00, $3e,$07, $3f,$01, $40,$01, $41,$04, $42,$04, $43,$04, $44,$04, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00 db $00,$00, $00,$00, $45,$04, $46,$04, $47,$04, $48,$04, $49,$00, $3c,$00, $4a,$01, $00,$00, $00,$00, $4b,$07, $3f,$01, $4c,$01, $4d,$06, $4e,$06, $4f,$06, $50,$06, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00 db $00,$00, $00,$00, $51,$04, $52,$06, $53,$06, $54,$06, $55,$00, $3c,$00, $56,$01, $00,$00, $00,$00, $57,$07, $58,$01, $59,$01, $5a,$06, $5b,$06, $5c,$06, $5d,$06, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00 db $00,$00, $00,$00, $5e,$06, $5f,$06, $60,$06, $61,$06, $62,$00, $63,$00, $64,$03, $65,$01, $66,$01, $67,$07, $68,$01, $69,$01, $26,$04, $6a,$06, $26,$04, $26,$04, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00 db $00,$00, $00,$00, $6b,$00, $6c,$05, $6d,$05, $6e,$05, $6f,$00, $70,$02, $71,$02, $72,$01, $73,$00, $74,$02, $75,$01, $76,$01, $77,$05, $78,$05, $79,$05, $6b,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00 db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $7a,$00, $7b,$00, $7c,$00, $7d,$00, $0f,$01, $7e,$01, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00 db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $a2,$00, $80,$00, $81,$00, $82,$00, $83,$00, $84,$07, $85,$01, $86,$01, $87,$01, $88,$01, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00 db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $89,$00, $8a,$00, $8b,$00, $8c,$07, $8d,$01, $8e,$01, $8f,$01, $90,$01, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00 db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $91,$01, $92,$01, $93,$01, $94,$01, $95,$01, $00,$00, $00,$00, $00,$00, $96,$05, $97,$05, $98,$05, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00 db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $99,$05, $9a,$05, $9b,$05, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00 db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $9c,$05, $9d,$05, $9e,$05, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00 db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $9f,$05, $a0,$05, $a1,$05, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00 db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00 db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00 db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00 db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00 db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00 db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00 db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00 db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00 db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00 db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $6b,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00 db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00 db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00 db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00 db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00 db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00 ; 10d8b1 UnsuedTitleBG_Palettes: ; 10d8b1 RGB 00, 00, 00 RGB 25, 15, 28 RGB 22, 11, 28 RGB 19, 08, 26 RGB 00, 00, 00 RGB 17, 07, 22 RGB 13, 07, 16 RGB 19, 08, 26 RGB 25, 15, 28 RGB 22, 11, 28 RGB 19, 08, 26 RGB 17, 07, 22 RGB 22, 11, 28 RGB 19, 08, 26 RGB 17, 07, 22 RGB 13, 07, 16 RGB 00, 00, 00 RGB 31, 31, 31 RGB 16, 16, 24 RGB 02, 13, 21 RGB 00, 00, 00 RGB 31, 31, 31 RGB 20, 20, 20 RGB 12, 12, 12 RGB 00, 00, 00 RGB 01, 11, 23 RGB 16, 16, 24 RGB 02, 13, 21 RGB 00, 00, 00 RGB 22, 10, 31 RGB 19, 08, 26 RGB 17, 07, 22 RGB 31, 31, 31 RGB 31, 31, 31 RGB 31, 31, 31 RGB 31, 31, 31 RGB 31, 31, 31 RGB 20, 04, 20 RGB 16, 08, 16 RGB 24, 00, 24 rept 54 RGB 31, 31, 31 RGB 31, 31, 31 RGB 31, 31, 31 RGB 31, 31, 31 endr ; 10dab1 UnusedTitleFG_GFX: ; 10dab1 INCBIN "gfx/title/old_fg.2bpp" ; 10eab1 UnsuedTitleFG_Palettes: ; 10eab1 RGB 00, 00, 00 RGB 31, 31, 31 RGB 16, 16, 24 RGB 02, 13, 21 RGB 00, 00, 00 RGB 31, 31, 31 RGB 20, 20, 20 RGB 12, 12, 12 RGB 00, 00, 00 RGB 01, 11, 23 RGB 16, 16, 24 RGB 02, 13, 21 RGB 00, 00, 00 RGB 31, 22, 00 RGB 31, 27, 00 RGB 31, 31, 00 RGB 00, 00, 00 RGB 31, 31, 31 RGB 16, 16, 24 RGB 02, 13, 21 RGB 00, 00, 00 RGB 31, 31, 31 RGB 20, 20, 20 RGB 12, 12, 12 RGB 00, 00, 00 RGB 01, 11, 23 RGB 16, 16, 24 RGB 02, 13, 21 RGB 16, 31, 00 RGB 22, 31, 00 RGB 27, 31, 00 RGB 31, 31, 00 RGB 31, 00, 18 RGB 31, 31, 31 RGB 16, 16, 24 RGB 02, 13, 21 RGB 00, 00, 00 RGB 31, 31, 31 RGB 20, 20, 20 RGB 12, 12, 12 RGB 00, 00, 00 RGB 01, 11, 23 RGB 16, 16, 24 RGB 02, 13, 21 RGB 16, 31, 00 RGB 22, 31, 00 RGB 27, 31, 00 RGB 31, 31, 00 RGB 24, 18, 31 RGB 31, 31, 00 RGB 31, 31, 01 RGB 31, 31, 03 RGB 31, 31, 05 RGB 31, 31, 08 RGB 31, 31, 10 RGB 31, 31, 12 RGB 31, 31, 14 RGB 31, 31, 16 RGB 31, 31, 18 RGB 31, 31, 20 RGB 31, 31, 22 RGB 31, 31, 25 RGB 31, 31, 27 RGB 31, 31, 29 RGB 24, 06, 06 RGB 01, 01, 01 RGB 03, 03, 03 RGB 05, 05, 05 RGB 08, 08, 08 RGB 10, 10, 10 RGB 12, 12, 12 RGB 14, 14, 14 RGB 16, 16, 16 RGB 18, 18, 18 RGB 20, 20, 20 RGB 22, 22, 22 RGB 25, 25, 25 RGB 27, 27, 27 RGB 29, 29, 29 RGB 31, 31, 31 RGB 18, 24, 18 RGB 31, 29, 01 RGB 31, 27, 03 RGB 31, 25, 05 RGB 31, 22, 08 RGB 31, 20, 10 RGB 31, 18, 12 RGB 31, 16, 14 RGB 31, 14, 16 RGB 31, 12, 18 RGB 31, 10, 20 RGB 31, 08, 22 RGB 31, 05, 25 RGB 31, 03, 27 RGB 31, 01, 29 RGB 31, 00, 31 RGB 18, 06, 31 RGB 00, 31, 31 RGB 00, 31, 29 RGB 00, 31, 27 RGB 00, 31, 25 RGB 00, 31, 22 RGB 00, 31, 20 RGB 00, 31, 18 RGB 00, 31, 16 RGB 00, 31, 14 RGB 00, 31, 12 RGB 00, 31, 10 RGB 00, 31, 08 RGB 00, 31, 05 RGB 00, 31, 03 RGB 00, 31, 01 RGB 12, 31, 06 RGB 00, 00, 31 RGB 00, 01, 31 RGB 00, 03, 31 RGB 00, 05, 31 RGB 00, 08, 31 RGB 00, 10, 31 RGB 00, 12, 31 RGB 00, 14, 31 RGB 00, 16, 31 RGB 00, 18, 31 RGB 00, 20, 31 RGB 00, 22, 31 RGB 00, 25, 31 RGB 00, 27, 31 RGB 00, 29, 31 RGB 00, 00, 00 RGB 06, 00, 04 RGB 19, 02, 09 RGB 28, 04, 11 RGB 31, 07, 16 RGB 31, 17, 23 RGB 31, 26, 30 RGB 07, 05, 10 RGB 14, 10, 18 RGB 20, 20, 25 RGB 25, 27, 31 RGB 09, 05, 06 RGB 23, 16, 13 RGB 30, 23, 22 RGB 31, 28, 28 RGB 31, 31, 31 RGB 06, 31, 31 RGB 04, 00, 04 RGB 11, 02, 04 RGB 17, 02, 04 RGB 24, 05, 04 RGB 28, 07, 04 RGB 31, 11, 04 RGB 02, 01, 15 RGB 04, 11, 22 RGB 12, 25, 25 RGB 20, 31, 31 RGB 09, 04, 03 RGB 22, 11, 08 RGB 27, 19, 16 RGB 30, 28, 26 RGB 31, 31, 31 RGB 06, 18, 06 RGB 04, 04, 02 RGB 07, 07, 02 RGB 18, 18, 04 RGB 24, 24, 06 RGB 27, 27, 11 RGB 31, 31, 20 RGB 02, 03, 10 RGB 04, 05, 13 RGB 06, 10, 25 RGB 08, 15, 31 RGB 04, 00, 06 RGB 11, 07, 14 RGB 21, 16, 23 RGB 29, 26, 31 RGB 31, 31, 31 RGB 06, 00, 18 RGB 00, 04, 03 RGB 02, 09, 05 RGB 11, 19, 07 RGB 16, 24, 08 RGB 22, 31, 09 RGB 24, 31, 18 RGB 03, 01, 03 RGB 10, 04, 10 RGB 20, 08, 20 RGB 31, 17, 31 RGB 01, 03, 06 RGB 05, 09, 10 RGB 15, 21, 21 RGB 23, 25, 25 RGB 31, 31, 31 RGB 00, 18, 31 RGB 00, 05, 07 RGB 00, 08, 13 RGB 00, 12, 17 RGB 01, 20, 24 RGB 04, 27, 31 RGB 14, 31, 31 RGB 04, 02, 02 RGB 15, 01, 03 RGB 26, 04, 07 RGB 31, 13, 16 RGB 00, 05, 02 RGB 01, 11, 03 RGB 06, 21, 06 RGB 13, 31, 16 RGB 31, 31, 31 RGB 00, 06, 06 RGB 00, 01, 08 RGB 00, 05, 14 RGB 00, 08, 19 RGB 02, 14, 26 RGB 04, 21, 31 RGB 06, 26, 31 RGB 13, 00, 00 RGB 27, 07, 00 RGB 31, 17, 05 RGB 31, 25, 16 RGB 02, 04, 00 RGB 07, 11, 03 RGB 17, 19, 05 RGB 27, 31, 16 RGB 31, 31, 31 RGB 02, 00, 00 RGB 04, 01, 06 RGB 11, 03, 14 RGB 16, 04, 19 RGB 20, 07, 22 RGB 26, 12, 27 RGB 26, 20, 31 RGB 04, 07, 00 RGB 16, 20, 07 RGB 24, 28, 15 RGB 29, 31, 24 RGB 05, 02, 02 RGB 15, 04, 02 RGB 24, 11, 10 RGB 31, 22, 20 RGB 31, 31, 31 RGB 00, 00, 14 RGB 12, 00, 00 RGB 27, 05, 00 RGB 31, 15, 05 RGB 31, 26, 13 RGB 31, 30, 21 RGB 05, 07, 16 RGB 04, 16, 20 RGB 04, 24, 26 RGB 08, 31, 31 RGB 23, 31, 31 RGB 00, 00, 00 RGB 05, 05, 05 RGB 17, 17, 15 RGB 28, 28, 24 RGB 31, 31, 31 ; 10ecb1 UnusedTitleFG_OAM: ; 10ecb1 db $18, $38, $00, $01, $18, $40, $02, $01, $18, $48, $04, $01, $18, $50, $06, $01 db $18, $58, $08, $01, $18, $60, $0a, $01, $18, $68, $0c, $01, $18, $70, $0e, $01 db $28, $38, $10, $00, $28, $40, $12, $00, $28, $48, $14, $00, $28, $50, $16, $00 db $28, $58, $18, $00, $28, $60, $1a, $00, $28, $68, $1c, $00, $28, $70, $1e, $00 db $38, $38, $20, $00, $38, $40, $22, $00, $38, $48, $24, $00, $38, $50, $26, $00 db $38, $58, $28, $00, $38, $60, $2a, $00, $38, $68, $2c, $00, $38, $70, $2e, $00 db $48, $38, $30, $02, $48, $40, $32, $02, $48, $48, $34, $02, $48, $50, $36, $02 db $48, $58, $38, $02, $48, $60, $3a, $02, $48, $68, $3c, $02, $48, $70, $3e, $02 db $58, $38, $40, $01, $58, $40, $42, $01, $58, $48, $44, $01, $58, $50, $46, $01 db $58, $58, $48, $01, $58, $60, $4a, $01, $58, $68, $4c, $01, $58, $70, $4e, $01 ; 10ed51 Function10ed51: ; 10ed51 call _TitleScreen .loop call Functiona57 ld a, [$ffa9] ld b, a and 1 jr nz, .done call Function10eea7 call DelayFrame jr .loop .done ret ; 10ed67 INCLUDE "engine/title.asm" SECTION "bank44", ROMX, BANK[$44] INCLUDE "lib/mobile/main.asm" SECTION "bank45", ROMX, BANK[$45] INCBIN "baserom.gbc",$114000,$114243 - $114000 Function114243:: ; 114243 ld a, $a ld [MBC3SRamEnable], a ld a, [$ff8c] push af push de ld a, [$dc02] add a ld e, a ld d, $0 ld hl, $4165 add hl, de ld a, [hli] ld h, [hl] ld l, a pop de jp [hl] ; 11425c INCBIN "baserom.gbc",$11425c,$115d99 - $11425c Function115d99: ; 115d99 ld de, $601a ld hl, $8600 ld bc, $4514 call Get2bpp xor a ld [$c305], a ld [$c306], a ld [$c309], a ld [$c30a], a ld [$c30b], a ld [$c30c], a ld a, $10 ld [$c307], a ld a, $18 ld [$c308], a ret ; 115dc3 INCBIN "baserom.gbc",$115dc3,$115dd3 - $115dc3 Function115dd3: ; 115dd3 ld a, [$c305] and a ret z ld a, $a0 ld hl, $c47c ld bc, $0020 call ByteFill call Function115e22 ld a, [$c309] sla a ld c, a ld b, $0 ld hl, $5e86 add hl, bc ld a, [hli] ld e, a ld a, [hl] ld d, a push de pop hl ld de, $c47c ld a, [$c307] ld c, a ld a, [$c308] ld b, a ld a, [hli] .asm_115e04 push af ld a, [hli] add b ld [de], a inc de ld a, [hli] add c ld [de], a inc de ld a, [hli] ld [de], a inc de ld a, [hli] ld [de], a inc de pop af dec a jr nz, .asm_115e04 ret ; 115e18 Function115e18: ; 115e18 ld a, c ld [$c30a], a xor a ld [$c30b], a jr Function115e2b ; 115e22 Function115e22: ; 115e22 ld hl, $c30c dec [hl] ret nz ld hl, $c30b inc [hl] Function115e2b: ; 115e2b ld a, [$c30a] sla a ld c, a ld b, $0 ld hl, $5e59 add hl, bc ld a, [hli] ld e, a ld a, [hli] ld d, a push de pop hl ld a, [$c30b] sla a ld c, a ld b, $0 add hl, bc ld a, [hli] cp $ff jr nz, .asm_115e51 xor a ld [$c30b], a jr Function115e2b .asm_115e51 ld [$c309], a ld a, [hl] ld [$c30c], a ret ; 115e59 INCBIN "baserom.gbc",$115e59,$11615a - $115e59 Function11615a: ; 11615a xor a ld [$c30d], a ld [$c319], a ld [$c310], a ld [$c311], a ld [$c312], a ld [$c313], a ld [$c314], a ld [$c315], a ld [$c318], a ld [$c3f6], a ld [$c3f8], a ld [$c3f2], a ld [$c3f4], a ld a, $24 ld [$c3f5], a ld a, $7 ld [$c3f7], a ld a, $b0 ld [$c30e], a ld [$c3f1], a ld a, $48 ld [$c30f], a ld [$c3f3], a ret ; 11619d Function11619d: ; 11619d ld a, [$c30d] and a ret z ld a, [$c319] cp $2 jr c, .asm_1161b4 ld a, $a0 ld hl, Sprites ld bc, $0064 call ByteFill .asm_1161b4 call Function1161b8 ret ; 1161b8 Function1161b8: ; 1161b8 ld a, [$c319] ld e, a ld d, $0 ld hl, $61c7 add hl, de add hl, de ld a, [hli] ld h, [hl] ld l, a jp [hl] ; 1161c7 INCBIN "baserom.gbc",$1161c7,$117656 - $1161c7 Function117656: ; 117656 callba GiveOddEgg ret ; 11765d ; no known jump sources Function11765d: ; 11765d (45:765d) ld a, [$FF00+$aa] push af ld a, $1 ld [$FF00+$aa], a call Function11766b pop af ld [$FF00+$aa], a ret ; known jump sources: 117664 (45:7664) Function11766b: ; 11766b (45:766b) call Function117699 ld a, [rSVBK] ; $ff00+$70 push af ld a, $5 ld [rSVBK], a ; $ff00+$70 call Function1176ee ld a, $5 call GetSRAMBank ld hl, $b1f3 ld de, $cd49 ld bc, $8 call CopyBytes ld de, $c708 ld bc, $11 call CopyBytes call CloseSRAM pop af ld [rSVBK], a ; $ff00+$70 ret ; known jump sources: 11766b (45:766b) Function117699: ; 117699 (45:7699) ld a, $5 call GetSRAMBank ld hl, $cd49 ld de, $b1f3 ld bc, $8 call CopyBytes ld hl, $c708 ld bc, $11 call CopyBytes call CloseSRAM xor a ld [$cd49], a ld [$cd4a], a ld [$cd4b], a ld [$cd4c], a ld [$cd4d], a ld [$cd4e], a ld [$cd4f], a ld hl, $c708 ld bc, $11 call ByteFill call WhiteBGMap call ClearSprites callba Function171c87 callba Function104061 callba Function8cf53 ret ; known jump sources: 117675 (45:7675), 117707 (45:7707) Function1176ee: ; 1176ee (45:76ee) call Functiona57 ld a, [$cd49] bit 7, a jr nz, .asm_117709 call Function117719 callba Function8cf69 callba Function104061 jr Function1176ee .asm_117709 callba Function8cf53 call WhiteBGMap call Functionfdb call ClearSprites ret ; known jump sources: 1176f8 (45:76f8) Function117719: ; 117719 (45:7719) ld a, [$cd49] ld e, a ld d, 0 ld hl, Jumptable_117728 add hl, de add hl, de ld a, [hli] ld h, [hl] ld l, a jp [hl] ; no known jump sources Jumptable_117728: ; 117728 (45:7728) dw Function117738 dw Function117764 dw Function1178aa dw Function1178e8 dw Function117942 dw Function117976 dw Function117984 dw Function1179a7 ; no known jump sources Function117738: ; 117738 (45:7738) callba Function171ccd ld de, $3018 ld a, $1d call Function3b2a ld hl, $c add hl, bc ld a, $6 ld [hl], a ld de, $4820 ld a, $1d call Function3b2a ld hl, $c add hl, bc ld a, $7 ld [hl], a ld a, $3 ld [$cd23], a jp Function117a0a ; no known jump sources Function117764: ; 117764 (45:7764) ld a, [$cd4a] cp $10 jr nz, .asm_11776f ld a, $1 jr .asm_117770 .asm_11776f xor a .asm_117770 ld [$cd24], a ld hl, hJoyPressed ; $ffa7 ld a, [hl] and $4 jr nz, Function1177a5 ld a, [hl] and $8 jr nz, Function1177ac ld a, [hl] and $1 jp nz, Function11784c ld a, [hl] and $2 jr nz, asm_1177d6 ld hl, $ffa9 ld a, [hl] and $40 jr nz, asm_1177f1 ld a, [hl] and $80 jr nz, asm_11780a ld a, [hl] and $20 jp nz, Function11782d ld a, [hl] and $10 jp nz, Function117837 ret ; known jump sources: 117779 (45:7779), 117863 (45:7863) Function1177a5: ; 1177a5 (45:77a5) callba Function171cf0 ret ; known jump sources: 11777e (45:777e), 11786c (45:786c), 1178a7 (45:78a7) Function1177ac: ; 1177ac (45:77ac) ld a, $2 ld [$cd4c], a ld a, $4 ld [$cd4d], a ret ; known jump sources: 11785b (45:785b) Function1177b7: ; 1177b7 (45:77b7) ld a, $3 ld [$cd24], a ld a, [$cd4a] and a jr z, .asm_1177c5 jp Function117a0a .asm_1177c5 ld a, $6 ld [$cd49], a ret ; known jump sources: 117860 (45:7860) Function1177cb: ; 1177cb (45:77cb) ld a, $80 ld [$cd49], a ld [ScriptVar], a ; $c2dd jp Function117a0a asm_1177d6: ; 1177d6 (45:77d6) call PlayClickSFX ld a, [$cd4a] and a ret z dec a ld [$cd4a], a ld e, a ld d, $0 ld hl, $c708 add hl, de xor a ld [hl], a ld hl, $c4f2 add hl, de ld [hl], a ret asm_1177f1: ; 1177f1 (45:77f1) ld a, [$cd4d] and a ret z dec a ld [$cd4d], a cp $3 ret nz ld a, [$cd4c] ld e, a sla a sla a add e asm_117806: ; 117806 (45:7806) ld [$cd4c], a ret asm_11780a: ; 11780a (45:780a) ld a, [$cd4d] cp $4 ret z inc a ld [$cd4d], a cp $4 ret nz ld a, [$cd4c] cp $a jr nc, .asm_117825 cp $5 jr nc, .asm_117829 xor a jr asm_117806 .asm_117825 ld a, $2 jr asm_117806 .asm_117829 ld a, $1 jr asm_117806 ; known jump sources: 11779b (45:779b) Function11782d: ; 11782d (45:782d) ld a, [$cd4c] and a ret z dec a ld [$cd4c], a ret ; known jump sources: 1177a1 (45:77a1) Function117837: ; 117837 (45:7837) ld e, $d ld a, [$cd4d] cp $4 jr nz, .asm_117842 ld e, $2 .asm_117842 ld a, [$cd4c] cp e ret z inc a ld [$cd4c], a ret ; known jump sources: 117783 (45:7783) Function11784c: ; 11784c (45:784c) call PlayClickSFX ld a, [$cd4d] cp $4 jr nz, .asm_117866 ld a, [$cd4c] cp $2 jp z, Function1177b7 cp $1 jp z, Function1177cb jp Function1177a5 .asm_117866 ld a, [$cd4a] ld e, a cp $10 jp z, Function1177ac inc a ld [$cd4a], a ld d, $0 ld a, [$cd4b] and a jr nz, .asm_117880 ld hl, $7a0f jr .asm_117883 .asm_117880 ld hl, $7a47 .asm_117883 push de ld a, [$cd4c] ld b, a ld a, [$cd4d] ld c, $e call SimpleMultiply add b ld c, a ld b, $0 add hl, bc ld a, [hl] ld hl, $c708 add hl, de ld [hl], a pop de ld hl, $c4f2 add hl, de sub $20 ld [hl], a ld a, e cp $f ret nz jp Function1177ac ; no known jump sources Function1178aa: ; 1178aa (45:78aa) ld hl, $79b5 call LoadMenuDataHeader call Function1cbb call Function1cfd ld hl, $79bd call LoadMenuDataHeader call Function1cbb call Function1cfd callba Function104061 ld hl, $c550 ld de, $79c5 call PlaceString ld hl, $c577 ld a, $ed ld [hl], a ld hl, $c5b9 ld de, $79cc call PlaceString ld a, $1 ld [$cd4e], a jp Function117a0a ; no known jump sources Function1178e8: ; 1178e8 (45:78e8) ld a, [hJoyPressed] ; $ff00+$a7 cp $2 jr z, .asm_117939 cp $1 jr z, .asm_117925 cp $80 jr z, .asm_11790f cp $40 ret nz ld a, [$cd4e] and a ret z dec a ld [$cd4e], a ld hl, $c54f ld a, $ed ld [hl], a ld hl, $c577 ld a, $7f ld [hl], a ret .asm_11790f ld a, [$cd4e] and a ret nz inc a ld [$cd4e], a ld hl, $c54f ld a, $7f ld [hl], a ld hl, $c577 ld a, $ed ld [hl], a ret .asm_117925 call PlayClickSFX ld a, [$cd4e] and a jr nz, .asm_117939 call Function1c07 ld a, $1 ld [$cd4f], a jp Function117a0a .asm_117939 call Function1c07 call Function1c07 jp Function117a0a ; no known jump sources Function117942: ; 117942 (45:7942) call SpeechTextBox ld hl, $c5b9 ld de, $79f7 call PlaceString ld a, $1e ld [$cd4e], a ld a, $5 call GetSRAMBank ld a, [$cd4f] ld [$aa4b], a ld hl, $c708 ld de, $aa4c ld bc, $11 call CopyBytes call CloseSRAM ld a, [$cd4f] and a jr z, asm_11797e call Function117a0a ; no known jump sources Function117976: ; 117976 (45:7976) ld hl, $cd4e dec [hl] ret nz call Function1c07 asm_11797e: ; 11797e (45:797e) ld a, $80 ld [$cd49], a ret ; no known jump sources Function117984: ; 117984 (45:7984) ld hl, $79b5 call LoadMenuDataHeader call Function1cbb call Function1cfd callba Function104061 ld hl, $c5b9 ld de, $79e1 call PlaceString ld a, $1e ld [$cd4e], a call Function117a0a ; no known jump sources Function1179a7: ; 1179a7 (45:79a7) ld hl, $cd4e dec [hl] ret nz call Function1c07 ld a, $1 ld [$cd49], a ret ; 1179b5 (45:79b5) INCBIN "baserom.gbc",$1179b5,$117a0a - $1179b5 ; known jump sources: 117761 (45:7761), 1177c2 (45:77c2), 1177d3 (45:77d3), 1178e5 (45:78e5), 117936 (45:7936), 11793f (45:793f), 117973 (45:7973), 1179a4 (45:79a4) Function117a0a: ; 117a0a (45:7a0a) ld hl, $cd49 inc [hl] ret ; 117a0f (45:7a0f) INCBIN "baserom.gbc",$117a0f,$117a7f - $117a0f ; everything from here to the end of the bank is related to the ; Mobile Stadium option from the continue/newgame menu. ; XXX better function names MobileStudium: ; 0x117a7f ld a, [$ffaa] push af ld a, $1 ld [$ffaa], a call Function117a8d pop af ld [$ffaa], a ret ; 0x117a8d Function117a8d: ; 0x117a8d call Function117a94 call Function117acd ret ; 0x117a94 Function117a94: ; 0x117a94 xor a ld [$cf63], a ld [$cf64], a ld [$cf65], a ld [$cf66], a call WhiteBGMap call ClearSprites callba Function172e78 callba Function104000 ret ; 0x117ab4 Function117ab4: ; 0x117ab4 call WhiteBGMap call ClearSprites callba Function172e78 callba Function172eb9 callba Function104061 ret ; 0x117acd Function117acd: ; 0x117acd call Functiona57 ld a, [$cf63] bit 7, a jr nz, .asm_117ae2 ; 0x117ad5 $b call Function117ae9 callba Function104000 jr Function117acd .asm_117ae2 call WhiteBGMap call ClearSprites ret Function117ae9: ; 0x117ae9 ld a, [$cf63] ld e, a ld d, $0 ld hl, Pointers117af8 add hl, de add hl, de ld a, [hli] ld h, [hl] ld l, a jp [hl] Pointers117af8: ; 0x117af8 dw Function117b06 dw Function117b14 dw Function117b28 dw Function117b31 dw Function117b4f dw Function117bb6 dw Function117c4a Function117b06: callba Function172eb9 ld a, $10 ld [$cf64], a jp Function117cdd Function117b14: ld hl, $cf64 dec [hl] ret nz ld hl, Data117cbc call LoadMenuDataHeader call Function1cbb call Function1cfd jp Function117cdd Function117b28: ld hl, MobileStadiumEntryText call PrintText jp Function117cdd Function117b31: ld hl, Data117cc4 call LoadMenuDataHeader call Function1cbb call Function1cfd ld hl, $c550 ld de, YesNo117ccc call PlaceString ld hl, $c54f ld a, "▶" ld [hl], a jp Function117cdd Function117b4f: ld a, [hJoyPressed] cp $2 jr z, .asm_117ba4 ; 0x117b53 $4f cp $1 jr z, .asm_117b8c ; 0x117b57 $33 cp $80 jr z, .asm_117b76 ; 0x117b5b $19 cp $40 ret nz ld a, [$cf64] and a ret z dec a ld [$cf64], a ld hl, $c54f ld a, "▶" ld [hl], a ld hl, $c577 ld a, " " ld [hl], a ret .asm_117b76 ld a, [$cf64] and a ret nz inc a ld [$cf64], a ld hl, $c54f ld a, " " ld [hl], a ld hl, $c577 ld a, "▶" ld [hl], a ret .asm_117b8c call PlayClickSFX ld a, [$cf64] and a jr nz, .asm_117ba4 ; 0x117b93 $f call Function1c07 call Function1c07 callba Function104061 jp Function117cdd .asm_117ba4 call Function1c07 call Function1c07 callba Function104061 ld a, $80 ld [$cf63], a ret Function117bb6: call Function117c89 ld a, $1 ld [hBGMapMode], a callba Function118284 call ClearSprites ld a, [$c300] and a jr z, .asm_117be7 ; 0x117bca $1b cp $a jr z, .asm_117be1 ; 0x117bce $11 .asm_117bd0 ld a, $2 ld [$c303], a callba Function17f555 ld a, $80 ld [$cf63], a ret .asm_117be1 ld a, $80 ld [$cf63], a ret .asm_117be7 ld a, [rSVBK] push af ld a, $3 ld [rSVBK], a ld a, [$cd89] and $1 jr nz, .asm_117c16 ; 0x117bf3 $21 ld a, [$d000] cp $fe jr nz, .asm_117c16 ; 0x117bfa $1a ld a, [$d001] cp $f jr nz, .asm_117c16 ; 0x117c01 $13 ld hl, $dfec ld de, $cd69 ld c, $10 .asm_117c0b ld a, [de] inc de cp [hl] jr nz, .asm_117c16 ; 0x117c0e $6 inc hl dec c jr nz, .asm_117c0b ; 0x117c12 $f7 jr .asm_117c20 ; 0x117c14 $a .asm_117c16 pop af ld [rSVBK], a ld a, $d3 ld [$c300], a jr .asm_117bd0 ; 0x117c1e $b0 .asm_117c20 pop af ld [rSVBK], a callba Function172eb9 ld a, [rSVBK] push af ld a, $3 ld [rSVBK], a ld a, $7 call GetSRAMBank ld hl, DefaultFlypoint ld de, $b000 ld bc, $1000 call CopyBytes call CloseSRAM pop af ld [rSVBK], a jp Function117cdd Function117c4a: ld hl, Data117cbc call LoadMenuDataHeader call Function1cbb call Function1cfd callba Function104061 ld hl, MobileStadiumSuccessText call PrintText ld a, [rSVBK] push af ld a, $5 ld [rSVBK], a ld hl, $d000 ld de, $0008 ld c, $8 .asm_117c71 push hl ld a, $ff ld [hli], a ld a, " " ld [hl], a pop hl add hl, de dec c jr nz, .asm_117c71 ; 0x117c7b $f4 call Function4b6 pop af ld [rSVBK], a ld a, $80 ld [$cf63], a ret Function117c89: ld a, $7 call GetSRAMBank ld l, $0 ld h, l ld de, $b000 ld bc, $0ffc .asm_117c97 push bc ld a, [de] inc de ld c, a ld b, $0 add hl, bc pop bc dec bc ld a, b or c jr nz, .asm_117c97 ; 0x117ca2 $f3 ld a, l ld [$cd83], a ld a, h ld [$cd84], a ld hl, $bfea ld de, $cd69 ld bc, $0010 call CopyBytes call CloseSRAM ret Data117cbc: ; 0x117cbc db $40, $0c, $00, $11, $13, $00, $00, $00 Data117cc4: ; 0x117cc4 db $40, $07, $0e, $0b, $13, $00, $00, $00 ; XXX what is this YesNo117ccc: ; 0x117ccc db "はい", $4e ; Yes db "いいえ@" ; No MobileStadiumEntryText: ; 0x117cd3 TX_FAR _MobileStadiumEntryText db "@" MobileStadiumSuccessText: ; 0x117cd8 TX_FAR _MobileStadiumSuccessText db "@" Function117cdd: ; 0x117cdd ld hl, $cf63 inc [hl] ret SECTION "bank46", ROMX, BANK[$46] Function118000: ; 118000 ld a, $1 ld [$cd38], a jr .asm_11800b xor a ld [$cd38], a .asm_11800b call Function1183cb ld a, $18 ld [$cd33], a ld a, $19 ld [$cd34], a ld a, $4 ld [$c3f0], a ld a, [rSVBK] push af ld a, $3 ld [rSVBK], a .asm_118024 call Functiona57 call Function118473 ld a, [$cf66] cp $1b jr c, .asm_118037 ld a, [$cd34] ld [$cf66], a .asm_118037 call Function1184a5 call Function11a8fa callba Function115dd3 callba Function11619d call DelayFrame ld a, [$cf66] ld hl, $cd33 cp [hl] jr nz, .asm_118024 pop af ld [rSVBK], a call Function118452 call Function222a Function11805e: ; 11805e (46:405e) ret ; 11805f Function11805f: ; 11805f ld a, $1 ld [$cd38], a call Function1183cb ld a, $18 ld [$cd33], a ld a, $19 ld [$cd34], a ld a, $4 ld [$c3f0], a ld a, [rSVBK] push af ld a, $3 ld [rSVBK], a .asm_11807d call Functiona57 call Function118473 ld a, [$cf66] cp $1b jr c, .asm_118090 ld a, [$cd34] ld [$cf66], a .asm_118090 call Function11857c call Function11a8fa callba Function115dd3 callba Function11619d call DelayFrame ld a, [$cf66] ld hl, $cd33 cp [hl] jr nz, .asm_11807d pop af ld [rSVBK], a call Function118452 call Function222a ret ; 1180b8 INCBIN "baserom.gbc",$1180b8,$11811a - $1180b8 Function11811a: ; 11811a ld a, 1 ld [$cd38], a jr Function118125 Function118121: ; 118121 xor a ld [$cd38], a Function118125: ; 118125 call Function1183cb ld a, $3 ld [$cd33], a ld a, $d ld [$cd34], a ld a, $4 ld [$c3f0], a ld a, [rSVBK] push af ld a, $3 ld [rSVBK], a .asm_11813e call Functiona57 call Function118473 ld a, [$cf66] cp $f jr c, .asm_118151 ld a, [$cd34] ld [$cf66], a .asm_118151 call Function11854d call Function11a8fa callba Function115dd3 callba Function11619d call DelayFrame ld a, [$cf66] ld hl, $cd33 cp [hl] jr nz, .asm_11813e xor a ld [Unkn1Pals], a pop af ld [rSVBK], a call Function118452 call Function118180 call Function222a ret ; 118180 Function118180: ; 118180 ld a, [ScriptVar] and a ret nz ld a, [$cd38] and a ret z ld a, $5 call GetSRAMBank ld hl, $cd69 ld de, $a89c ld bc, $0016 call CopyBytes ld a, [rSVBK] push af ld a, $3 ld [rSVBK], a ld de, $d202 ld c, $96 callba Function17d0b3 jr c, .asm_1181d0 ld de, $d202 ld bc, $0196 callba Function17d1e1 jr c, .asm_1181d0 ld hl, $d202 ld de, $a8b2 ld bc, $0096 call CopyBytes .asm_1181c9 pop af ld [rSVBK], a call CloseSRAM ret .asm_1181d0 ld a, $d3 ld [$c300], a ld [ScriptVar], a jr .asm_1181c9 ; 1181da Function1181da: ; 1181da call Function1183cb ld a, $2 ld [$cd38], a ld a, $21 ld [$cd33], a ld a, $22 ld [$cd34], a ld a, $4 ld [$c3f0], a ld a, [rSVBK] push af ld a, $3 ld [rSVBK], a .asm_1181f8 call Functiona57 call Function118473 ld a, [$cf66] cp $28 jr c, .asm_11820b ld a, [$cd34] ld [$cf66], a .asm_11820b call Function1185c3 call Function11a8fa callba Function115dd3 callba Function11619d call DelayFrame ld a, [$cf66] ld hl, $cd33 cp [hl] jr nz, .asm_1181f8 pop af ld [rSVBK], a call Function118452 call Function222a ret ; 118233 INCBIN "baserom.gbc",$118233,$118284 - $118233 Function118284: ; 118284 call Function1183cb ld a, $19 ld [$cd33], a ld a, $1e ld [$cd34], a ld a, $5 ld [$c3f0], a ld a, [rSVBK] ; $ff00+$70 push af ld a, $3 ld [rSVBK], a ; $ff00+$70 .asm_11829d call Functiona57 call Function118473 ld a, [$cf66] cp $20 jr c, .asm_1182b0 ld a, [$cd34] ld [$cf66], a .asm_1182b0 call Function1186f5 call Function11a8fa callba Function115dd3 callba Function11619d call DelayFrame ld a, [$cf66] ld hl, $cd33 cp [hl] jr nz, .asm_11829d pop af ld [rSVBK], a ; $ff00+$70 call Function118452 ret ; 1182d5 (46:42d5) INCBIN "baserom.gbc",$1182d5,$1183cb - $1182d5 Function1183cb: ; 1183cb di ld a, [rIE] ld [$cd32], a call DoubleSpeed xor a ld [rIF], a ld [$c300], a ld [$c301], a ld [$c302], a ld [$cd80], a ld [$cd65], a ld [$cd66], a ld [$cd67], a ld [$cd68], a ld [$c31a], a ld [$cd89], a ld [$cd8a], a ld [$cd8b], a ld [$c3ec], a ld [$c3ed], a ld [$c3ee], a ld [$c3ef], a ld hl, VramState ld a, [hl] ld [$cd7f], a set 1, [hl] ld a, $f ld [rIE], a ld a, $1 ld [$ffc9], a ld [$ffe9], a ei callba Function106462 callba Function106464 callba Function115d99 callba Function11615a ld a, $5 call GetSRAMBank xor a ld [$bfff], a call CloseSRAM ret ; 118440 INCBIN "baserom.gbc",$118440,$118452 - $118440 Function118452: ; 118452 di xor a ld [$ffc9], a ld [$ffe9], a ld [$ff9e], a call NormalSpeed xor a ld [rIF], a ld a, [$cd32] ld [rIE], a ei ld a, [$cd7f] ld [VramState], a ld a, [$c300] ld [ScriptVar], a ret ; 118473 Function118473: ; 118473 ld a, [$cd65] and a ret z ld a, [$cd66] inc a ld [$cd66], a cp $3c ret nz xor a ld [$cd66], a ld a, [$cd67] inc a ld [$cd67], a cp $3c ret nz ld a, [$cd68] inc a ld [$cd68], a cp $63 jr z, .asm_1184a0 xor a ld [$cd67], a ret .asm_1184a0 xor a ld [$cd65], a ret ; 1184a5 Function1184a5: ; 1184a5 ld a, [$cf66] ld e, a ld d, $0 ld hl, $44b4 add hl, de add hl, de ld a, [hli] ld h, [hl] ld l, a jp [hl] ; 1184b4 INCBIN "baserom.gbc",$1184b4,$11854d - $1184b4 Function11854d: ; 11854d ld a, [$cf66] ld e, a ld d, $0 ld hl, $455c add hl, de add hl, de ld a, [hli] ld h, [hl] ld l, a jp [hl] ; 11855c INCBIN "baserom.gbc",$11855c,$11857c - $11855c Function11857c: ; 11857c ld a, [$cf66] ld e, a ld d, $0 ld hl, $458b add hl, de add hl, de ld a, [hli] ld h, [hl] ld l, a jp [hl] ; 11858b INCBIN "baserom.gbc",$11858b,$1185c3 - $11858b Function1185c3: ; 1185c3 ld a, [$cf66] ld e, a ld d, $0 ld hl, $45d2 add hl, de add hl, de ld a, [hli] ld h, [hl] ld l, a jp [hl] ; 1185d2 INCBIN "baserom.gbc",$1185d2,$1186f5 - $1185d2 ; known jump sources: 1182b0 (46:42b0) Function1186f5: ; 1186f5 (46:46f5) ld a, [$cf66] ld e, a ld d, 0 ld hl, Jumptable_118704 add hl, de add hl, de ld a, [hli] ld h, [hl] ld l, a jp [hl] ; 118704 (46:4704) ; no known jump sources Jumptable_118704: ; 118704 (46:4704) dw Function11886a dw Function118880 dw Function11878d dw Function1188b0 dw Function11878d dw Function1188b8 dw Function11878d dw Function1188c0 dw Function11878d dw Function1188c8 dw Function11878d dw Function118903 dw Function118abc dw Function11878d dw Function119451 dw Function1195f8 dw Function119612 dw Function119629 dw Function119648 dw Function11878d dw Function118e6d dw Function11878d dw Function118e76 dw Function118e7e dw Function11878d dw Function11805e dw Function11967d dw Function119685 dw Function119665 dw Function11966d dw Function118e76 dw Function118e87 ; 118744 (46:4744) INCBIN "baserom.gbc",$118744,$11878d - $118744 ; no known jump sources Function11878d: ; 11878d (46:478d) ld a, [$c821] bit 1, a jr nz, .asm_1187af bit 2, a jr nz, .asm_1187d1 bit 0, a jr nz, .asm_1187aa ld a, [$cd89] and $1 jr z, .asm_1187a7 ld a, $3 ld [rSVBK], a ; $ff00+$70 .asm_1187a7 jp Function119e2e .asm_1187aa call Function118821 ret c ret .asm_1187af ld a, $0 call Function3e32 ld [$c300], a ld a, l ld [$c301], a ld a, h ld [$c302], a ld a, $a call Function3e32 ld a, [$c3f0] ld [$c319], a ld a, [$cd34] ld [$cf66], a ret .asm_1187d1 ld hl, $cd89 bit 0, [hl] jr nz, .asm_118803 set 0, [hl] ld a, $6 ld [rSVBK], a ; $ff00+$70 ld de, Unkn1Pals ; $d000 ld bc, $1000 ld a, [hl] sla a jr c, .asm_1187f9 sla a jr c, .asm_1187fd sla a jr c, .asm_1187f5 ld a, $24 jr .asm_1187ff .asm_1187f5 ld a, $28 jr .asm_1187ff .asm_1187f9 ld a, $2a jr .asm_1187ff .asm_1187fd ld a, $2c .asm_1187ff call Function3e32 ret .asm_118803 ld a, $d3 ; known jump sources: 11945a (46:545a), 119573 (46:5573), 1195f5 (46:55f5) Function118805: ; 118805 (46:4805) ld [$c300], a xor a ld [$c301], a ld [$c302], a ld a, $a call Function3e32 ld a, [$c3f0] ld [$c319], a ld a, [$cd34] ld [$cf66], a ret ; known jump sources: 1187aa (46:47aa) Function118821: ; 118821 (46:4821) ld a, [$c319] cp $3 jr c, .asm_11884a cp $4 jr z, .asm_11884a ld a, [hJoyDown] ; $ff00+$a8 cp $5 jr nz, .asm_11884a ld a, $a call Function3e32 ld a, $a ld [$c300], a ld a, [$c3f0] ld [$c319], a ld a, [$cd34] ld [$cf66], a scf ret .asm_11884a and a ret ; 11884c (46:484c) INCBIN "baserom.gbc",$11884c,$11886a - $11884c ; no known jump sources Function11886a: ; 11886a (46:486a) ld a, $1 jr .asm_11886f ; 11886e (46:486e) INCBIN "baserom.gbc",$11886e,$11886f - $11886e .asm_11886f ld [BGMapPalBuffer], a ; $cd48 ld a, $0 ld [$cd3c], a call Function119e2e ld a, [$cd33] ld [$cd45], a ; no known jump sources Function118880: ; 118880 (46:4880) call Function119ed8 ret c xor a ld [$cf64], a ld [$c807], a ld de, $cd81 ld hl, $46 ld a, $2 jp Function119e2b ; 118896 (46:4896) INCBIN "baserom.gbc",$118896,$1188b0 - $118896 ; no known jump sources Function1188b0: ; 1188b0 (46:48b0) ld de, $c346 ld a, $c jp Function119e2b ; no known jump sources Function1188b8: ; 1188b8 (46:48b8) ld de, $c3ac ld a, $e jp Function119e2b ; no known jump sources Function1188c0: ; 1188c0 (46:48c0) ld de, $c3cd ld a, $10 jp Function119e2b ; no known jump sources Function1188c8: ; 1188c8 (46:48c8) ld a, $1 ld [$cd65], a call Function1188e7 ld hl, $c708 .asm_1188d3 ld a, [de] inc de ld [hli], a and a jr nz, .asm_1188d3 call Function119eb4 call Function119ec2 ld hl, $c708 ld a, $6 jp Function119e2b ; known jump sources: 1188cd (46:48cd) Function1188e7: ; 1188e7 (46:48e7) ld de, $c346 ld a, $5 call GetSRAMBank ld a, [$aa4a] call CloseSRAM and a ret z sla a ld c, a .asm_1188fa ld a, [de] inc de and a jr nz, .asm_1188fa dec c jr nz, .asm_1188fa ret ; no known jump sources Function118903: ; 118903 (46:4903) ld a, [$c3f0] ld [$c319], a ld c, $1 callba Function115e18 ld a, $8 ld [$cd3c], a call Function119ed8 jp Function119e2e ; 11891c (46:491c) INCBIN "baserom.gbc",$11891c,$118abc - $11891c ; no known jump sources Function118abc: ; 118abc (46:4abc) ld hl, $4c95 ld de, $cc60 ld bc, $80 call CopyBytes ld de, Unkn1Pals ; $d000 ld bc, $1000 jr .asm_118b10 ; 118ad0 (46:4ad0) INCBIN "baserom.gbc",$118ad0,$118b10 - $118ad0 .asm_118b10 push de push bc ld a, $8 ld [$cd3c], a call Function119ed8 call Function118b24 pop bc pop de ld a, $2a jp Function119e2b ; known jump sources: 118b1a (46:4b1a), 119657 (46:5657) Function118b24: ; 118b24 (46:4b24) ld hl, $c346 ld a, $8 ld [hli], a ld a, $c7 ld [hli], a ld a, $60 ld [hli], a ld a, $cc ld [hli], a call Function119eb4 call Function119ec2 ld a, $80 ld [$cd89], a ld hl, $c346 ret ; 118b42 (46:4b42) INCBIN "baserom.gbc",$118b42,$118ba5 - $118b42 ExchangeDownloadURL: ; 0x118ba5 ascii "http://gameboy.datacenter.ne.jp/cgb/download?name=/01/CGB-BXTJ/exchange/index.txt" db $0 BattleDownloadURL: ; 0x118bf7 ascii "http://gameboy.datacenter.ne.jp/cgb/download?name=/01/CGB-BXTJ/battle/index.txt" db $0 NewsDownloadURL: ; 0x118c47 ascii "http://gameboy.datacenter.ne.jp/cgb/download?name=/01/CGB-BXTJ/news/index.txt" db $0 MenuDownloadURL: ; 0x118c95 ascii "http://gameboy.datacenter.ne.jp/cgb/download?name=/01/CGB-BXTJ/POKESTA/menu.cgb" db $0 IndexDownloadURL: ; 0x118ce4 ascii "http://gameboy.datacenter.ne.jp/cgb/download?name=/01/CGB-BXTJ/tamago/index.txt" db $0 INCBIN "baserom.gbc",$118d35,$118e39 - $118d35 ; known jump sources: 118e3b (46:4e3b), 119633 (46:5633) Function118e39: ; 118e39 (46:4e39) ld a, [hli] and a jr nz, Function118e39 dec hl .asm_118e3e ld a, [hld] cp $2f jr nz, .asm_118e3e inc hl inc hl ld de, $cd85 ld c, $4 .asm_118e4a ld a, [hli] cp $2e jr z, .asm_118e63 cp $30 jr c, .asm_118e67 cp $3a jr nc, .asm_118e67 sub $30 add $f6 ld [de], a inc de dec c jr nz, .asm_118e4a ld de, $cd85 .asm_118e63 ld a, $50 ld [de], a ret .asm_118e67 ld a, $f3 ld [de], a inc de jr .asm_118e63 ; no known jump sources Function118e6d: ; 118e6d (46:4e6d) xor a ld [$cd65], a ld a, $a jp Function119e2b ; no known jump sources Function118e76: ; 118e76 (46:4e76) ld a, $c ld [$cd3c], a jp Function119e2e ; no known jump sources Function118e7e: ; 118e7e (46:4e7e) call Function119ed8 ret c ld a, $36 jp Function119e2b ; no known jump sources Function118e87: ; 118e87 (46:4e87) call Function119ed8 ret c ld a, [$cd33] ld [$cf66], a ret ; 118e92 (46:4e92) INCBIN "baserom.gbc",$118e92,$119451 - $118e92 ; no known jump sources Function119451: ; 119451 (46:5451) ld a, [$cd89] and $1 jr z, .asm_11945d ld a, $d3 jp Function118805 .asm_11945d xor a ld [$cd50], a call Function119694 ld a, b ld [$cd49], a call Function1196cd ld a, [DefaultFlypoint] ; $d002 ld hl, $d003 ; known jump sources: 119562 (46:5562) Function119471: ; 119471 (46:5471) push af ld a, [hli] ld [EnemyMoveAnimation], a ; $c608 (aliases: EnemyMoveStruct) ld a, [hli] ld [EnemyMoveType], a ; $c60b ld a, [hli] ld [EnemyMoveEffect], a ; $c609 ld a, [hli] ld [EnemyMovePower], a ; $c60a ld a, [hli] ld [EnemyMoveAccuracy], a ; $c60c ld a, [hli] ld [EnemyMovePP], a ; $c60d push hl ld a, [EnemyMoveAnimation] ; $c608 (aliases: EnemyMoveStruct) cp $ff jr z, .asm_1194a7 ld a, [EnemyMovePower] ; $c60a cp $ff jr z, .asm_1194a7 ld a, [EnemyMoveEffect] ; $c609 cp $ff jr nz, .asm_1194a7 call Function119584 jr c, .asm_11950c jr .asm_1194f0 .asm_1194a7 ld hl, EnemyMoveAnimation ; $c608 (aliases: EnemyMoveStruct) ld de, EnemyMoveType ; $c60b ld c, $3 .asm_1194af ld a, [de] inc de cp [hl] inc hl jr c, .asm_1194f3 jr z, .asm_1194b9 jr nc, .asm_1194bc .asm_1194b9 dec c jr nz, .asm_1194af .asm_1194bc ld c, $3 ld hl, $cd49 ld de, EnemyMoveAnimation ; $c608 (aliases: EnemyMoveStruct) .asm_1194c4 ld a, [de] inc de cp $ff jr z, .asm_1194d1 cp [hl] jr z, .asm_1194d1 jr c, .asm_1194d5 jr nc, .asm_1194f0 .asm_1194d1 inc hl dec c jr nz, .asm_1194c4 .asm_1194d5 ld c, $3 ld hl, $cd49 ld de, EnemyMoveType ; $c60b .asm_1194dd ld a, [de] inc de cp $ff jr z, .asm_1194ea cp [hl] jr c, .asm_1194f0 jr z, .asm_1194ea jr nc, .asm_11950c .asm_1194ea inc hl dec c jr nz, .asm_1194dd jr .asm_11950c .asm_1194f0 pop hl jr .asm_119557 .asm_1194f3 ld c, $3 ld hl, $cd49 ld de, EnemyMoveAnimation ; $c608 (aliases: EnemyMoveStruct) .asm_1194fb ld a, [de] inc de cp $ff jr z, .asm_119508 cp [hl] jr c, .asm_11950c jr z, .asm_119508 jr nc, .asm_1194d5 .asm_119508 inc hl dec c jr nz, .asm_1194fb .asm_11950c pop hl ld a, $1 ld [$cd50], a ld a, l ld [EnemyMoveAnimation], a ; $c608 (aliases: EnemyMoveStruct) ld a, h ld [EnemyMoveEffect], a ; $c609 ld de, $cd69 ld c, $10 ld b, $0 .asm_119521 ld a, [de] inc de cp [hl] inc hl jr nz, .asm_119528 inc b .asm_119528 dec c jr nz, .asm_119521 ld a, $10 cp b jr z, .asm_119536 inc hl inc hl inc hl inc hl jr .asm_11957a .asm_119536 ld a, [hli] cp $50 jr nz, .asm_119552 ld a, [hli] cp $33 jr nz, .asm_119553 ld a, [hli] ld c, a ld a, [hli] ld b, a ld a, [$cd83] cp c jr nz, .asm_119576 ld a, [$cd84] cp b jr nz, .asm_119576 jr .asm_11955b .asm_119552 inc hl .asm_119553 inc hl inc hl jr .asm_11955b .asm_119557 ld de, $14 add hl, de .asm_11955b ld a, [hli] ld e, a ld a, [hli] ld d, a add hl, de pop af dec a jp nz, Function119471 ld a, [$cd50] and a jr z, .asm_119571 ld a, $1a ld [$cf66], a ret .asm_119571 ld a, $d8 jp Function118805 .asm_119576 ld a, $10 jr .asm_11957c .asm_11957a ld a, $f .asm_11957c ld [$cf66], a pop af call Function1195c4 ret ; known jump sources: 1194a0 (46:54a0) Function119584: ; 119584 (46:5584) ld a, [EnemyMoveAnimation] ; $c608 (aliases: EnemyMoveStruct) ld b, a ld a, [EnemyMoveType] ; $c60b ld c, a cp b jr c, .asm_11959c ld a, [$cd49] cp b jr c, .asm_1195c2 .asm_119595 cp c jr c, .asm_1195a2 jr z, .asm_1195a2 jr .asm_1195c2 .asm_11959c ld a, [$cd49] cp b jr c, .asm_119595 .asm_1195a2 ld a, [EnemyMovePower] ; $c60a ld b, a ld a, [EnemyMovePP] ; $c60d ld c, a cp b jr c, .asm_1195ba ld a, [$cd4b] cp b jr c, .asm_1195c2 .asm_1195b3 cp c jr c, .asm_1195c0 jr z, .asm_1195c0 jr .asm_1195c2 .asm_1195ba ld a, [$cd4b] cp b jr c, .asm_1195b3 .asm_1195c0 scf ret .asm_1195c2 and a ret ; known jump sources: 119580 (46:5580) Function1195c4: ; 1195c4 (46:55c4) ld a, [hli] ld c, a ld a, [hli] ld b, a ld de, $a5 ld a, b cp d jr c, .asm_1195d9 jr z, .asm_1195d3 jr nc, .asm_1195f3 .asm_1195d3 ld a, c cp e jr z, .asm_1195d9 jr nc, .asm_1195f3 .asm_1195d9 ld de, $cc60 call CopyBytes xor a ld [de], a ld a, [EnemyMoveAnimation] ; $c608 (aliases: EnemyMoveStruct) ld l, a ld a, [EnemyMoveEffect] ; $c609 ld h, a ld de, $cd69 ld bc, $10 call CopyBytes ret .asm_1195f3 ld a, $d8 jp Function118805 ; no known jump sources Function1195f8: ; 1195f8 (46:55f8) ld a, $11 ld [$cd3c], a ld a, $1c ld [$cd45], a ld a, $f ld [$cd46], a ld a, $14 ld [$cd47], a call Function119e2e jp Function119e2e ; no known jump sources Function119612: ; 119612 (46:5612) ld a, $14 ld [$cd3c], a ld a, $1c ld [$cd45], a ld a, $10 ld [$cd46], a ld a, $14 ld [$cd47], a jp Function119e2e ; no known jump sources Function119629: ; 119629 (46:5629) call Function119ed8 ret c ld a, $60 ld l, a ld a, $cc ld h, a call Function118e39 ld a, $9 ld [$cd3c], a ld a, $1c ld [$cd45], a ld a, $14 ld [$cd47], a call Function119e2e ; no known jump sources Function119648: ; 119648 (46:5648) call Function119ed8 ret c call DelayFrame ld a, $8 ld [$cd3c], a call Function119ed8 call Function118b24 ld de, Unkn1Pals ; $d000 ld bc, $1000 ld a, $2a jp Function119e2b ; no known jump sources Function119665: ; 119665 (46:5665) ld a, $1a ld [$cd3c], a call Function119e2e ; no known jump sources Function11966d: ; 11966d (46:566d) call Function119ed8 ret c ld a, [$cd47] ld [$cf66], a ld a, $a ld [$c300], a ret ; no known jump sources Function11967d: ; 11967d (46:567d) ld a, $18 ld [$cd3c], a call Function119e2e ; no known jump sources Function119685: ; 119685 (46:5685) call Function119ed8 ret c ld a, $14 ld [$cf66], a ld a, $a ld [$c300], a ret ; known jump sources: 119461 (46:5461) Function119694: ; 119694 (46:5694) ld b, $0 ld hl, $56b8 .asm_119699 ld de, $c708 ld a, [de] inc de cp [hl] inc hl jr nz, .asm_1196af ld a, [de] inc de cp [hl] inc hl jr nz, .asm_1196b0 ld a, [de] inc de cp [hl] inc hl jr nz, .asm_1196b1 ret .asm_1196af inc hl .asm_1196b0 inc hl .asm_1196b1 inc b ld a, b cp $7 jr nz, .asm_119699 ret ; 1196b8 (46:56b8) INCBIN "baserom.gbc",$1196b8,$1196cd - $1196b8 ; known jump sources: 119468 (46:5468) Function1196cd: ; 1196cd (46:56cd) ld de, $c719 call Function1196de ld [$cd4a], a inc de call Function1196de ld [$cd4b], a ret ; known jump sources: 1196d0 (46:56d0), 1196d7 (46:56d7) Function1196de: ; 1196de (46:56de) ld a, [de] inc de sub $30 sla a ld b, a sla a sla a add b ld c, a add hl, bc ld a, [de] inc de sub $30 add c ret ; 1196f2 (46:56f2) INCBIN "baserom.gbc",$1196f2,$119d93 - $1196f2 ; no known jump sources Function119d93: ; 119d93 (46:5d93) ld a, [rSVBK] ; $ff00+$70 push af ld a, $1 ld [rSVBK], a ; $ff00+$70 ld a, [$cd4f] ld c, $a call SimpleMultiply ld hl, $cd50 ld [hl], a ld bc, $30 ld de, PartyMon1Level ; $dcfe ld a, [PartyCount] ; $dcd7 .asm_119daf push af ld a, [de] push hl push de pop hl add hl, bc push hl pop de pop hl cp [hl] jr z, .asm_119dbd jr nc, .asm_119dc6 .asm_119dbd pop af dec a jr nz, .asm_119daf pop af ld [rSVBK], a ; $ff00+$70 and a ret .asm_119dc6 pop af ld a, $4 ld [$cf66], a pop af ld [rSVBK], a ; $ff00+$70 scf ret ; no known jump sources Function119dd1: ; 119dd1 (46:5dd1) ld a, [rSVBK] ; $ff00+$70 push af ld a, [$cd4f] cp $7 jr nc, .asm_119e08 ld a, $1 ld [rSVBK], a ; $ff00+$70 ld hl, PartyMon1Level ; $dcfe ld bc, $30 ld de, PartySpecies ; $dcd8 ld a, [PartyCount] ; $dcd7 .asm_119deb push af ld a, [de] cp $96 jr z, .asm_119dfd cp $97 jr z, .asm_119dfd cp $f9 jr c, .asm_119e02 cp $fc jr nc, .asm_119e02 .asm_119dfd ld a, [hl] cp $46 jr c, .asm_119e0d .asm_119e02 add hl, bc inc de pop af dec a jr nz, .asm_119deb .asm_119e08 pop af ld [rSVBK], a ; $ff00+$70 and a ret .asm_119e0d pop af ld a, [de] ld [$d265], a call GetPokemonName ld hl, StringBuffer1 ; $d073 ld de, $cd49 ld bc, $b call CopyBytes ld a, $a ld [$cf66], a pop af ld [rSVBK], a ; $ff00+$70 scf ret ; 119e2b (46:5e2b) ; known jump sources: 118893 (46:4893), 1188b5 (46:48b5), 1188bd (46:48bd), 1188c5 (46:48c5), 1188e4 (46:48e4), 118b21 (46:4b21), 118e73 (46:4e73), 118e84 (46:4e84), 119662 (46:5662) Function119e2b: ; 119e2b (46:5e2b) call Function3e32 ; known jump sources: 1187a7 (46:47a7), 118877 (46:4877), 118919 (46:4919), 118e7b (46:4e7b), 11960c (46:560c), 11960f (46:560f), 119626 (46:5626), 119645 (46:5645), 11966a (46:566a), 119682 (46:5682) Function119e2e: ; 119e2e (46:5e2e) ld hl, $cf66 inc [hl] ret ; 119e33 (46:5e33) INCBIN "baserom.gbc",$119e33,$119eb4 - $119e33 ; known jump sources: 1188d9 (46:48d9), 118b33 (46:4b33) Function119eb4: ; 119eb4 (46:5eb4) xor a ld [$c3cc], a ld de, $c3ac .asm_119ebb ld a, [de] inc de ld [hli], a and a jr nz, .asm_119ebb ret ; known jump sources: 1188dc (46:48dc), 118b36 (46:4b36) Function119ec2: ; 119ec2 (46:5ec2) ld a, $5 call GetSRAMBank xor a ld [$aa5c], a ld de, $aa4c .asm_119ece ld a, [de] inc de ld [hli], a and a jr nz, .asm_119ece call CloseSRAM ret ; known jump sources: 118880 (46:4880), 118916 (46:4916), 118b17 (46:4b17), 118e7e (46:4e7e), 118e87 (46:4e87), 119629 (46:5629), 119648 (46:5648), 119654 (46:5654), 11966d (46:566d), 119685 (46:5685) Function119ed8: ; 119ed8 (46:5ed8) ld a, [rSVBK] ; $ff00+$70 ld [$cd8c], a ld a, $1 ld [rSVBK], a ; $ff00+$70 call Function119eee ld a, [$cd8c] ld [rSVBK], a ; $ff00+$70 ld a, $1 ld [hBGMapMode], a ; $ff00+$d4 ret ; known jump sources: 119ee1 (46:5ee1) Function119eee: ; 119eee (46:5eee) ld a, [$cd3c] ld e, a ld d, $0 ld hl, $5efd add hl, de add hl, de ld a, [hli] ld h, [hl] ld l, a jp [hl] ; 119efd (46:5efd) INCBIN "baserom.gbc",$119efd,$11a8fa - $119efd Function11a8fa: ; 11a8fa ld a, [$c31a] ld e, a ld d, $0 ld hl, $6909 add hl, de add hl, de ld a, [hli] ld h, [hl] ld l, a jp [hl] ; 11a909 INCBIN "baserom.gbc",$11a909,$11aa13 - $11a909 UnknownText_0x11aa13: ; 0x11aa13 text "SAVE FILE will be" line "sent." done ; 0x11aa2c UnknownText_0x11aa2c: ; 0x11aa2c text "Sent SAVE FILE." line "Reading NEWS…" done ; 0x11aa4b UnknownText_0x11aa4b: ; 0x11aa4b text "Reading NEWS…" done ; 0x11aa5a UnknownText_0x11aa5a: ; 0x11aa5a text "Received NEWS!" done ; 0x11aa6a UnknownText_0x11aa6a: ; 0x11aa6a text "Quit reading NEWS?" done ; 0x11aa7e UnknownText_0x11aa7e: ; 0x11aa7e text "Canceled sending" line "SAVE FILE." done ; 0x11aa9b UnknownText_0x11aa9b: ; 0x11aa9b text "ODD EGG" line "was received!" done ; 0x11aab2 UnknownText_0x11aab2: ; 0x11aab2 text "Registering your" line "record…" done ; 0x11aacc UnknownText_0x11aacc: ; 0x11aacc text "One visit per day" line "per BATTLE ROOM!" done ; 0x11aaf0 UnknownText_0x11aaf0: ; 0x11aaf0 text "A party #MON" line "tops this level." done ; 0x11ab0f UnknownText_0x11ab0f: ; 0x11ab0f text_from_ram $cd49 text " may go" line "only to BATTLE" para "ROOMS that are" line "Lv.70 or higher." done ; 0x11ab4a UnknownText_0x11ab4a: ; 0x11ab4a text "Cancel your BATTLE" line "ROOM challenge?" done ; 0x11ab6e UnknownText_0x11ab6e: ; 0x11ab6e text "Exit GYM LEADER" line "HONOR ROLL?" done ; 0x11ab8b UnknownText_0x11ab8b: ; 0x11ab8b text "Linking with the" line "CENTER…" done ; 0x11aba5 UnknownText_0x11aba5: ; 0x11aba5 text "What level do you" line "want to challenge?" done ; 0x11abcb UnknownText_0x11abcb: ; 0x11abcb text "Check BATTLE ROOM" line "list by max level?" done ; 0x11abf1 UnknownText_0x11abf1: ; 0x11abf1 text "Enter which" line "BATTLE ROOM?" done ; 0x11ac0b UnknownText_0x11ac0b: ; 0x11ac0b text "Which BATTLE ROOM?" done ; 0x11ac1f UnknownText_0x11ac1f: ; 0x11ac1f text_from_ram StringBuffer3 text "'s ROOM" line "@" text_from_ram StringBuffer4 text "?" cont "Please wait…" done ; 0x11ac3e Function11ac3e: ; 11ac3e call SpeechTextBox call FadeToMenu callab Function8e814 call Function11ac51 call Function2b3c ret ; 11ac51 Function11ac51: ; 11ac51 xor a ld [hBGMapMode], a ld hl, Options ld a, [hl] push af set 4, [hl] ld a, [VramState] push af xor a ld [VramState], a ld a, [$ffaa] push af ld a, $1 ld [$ffaa], a xor a ld [$ffde], a ld [$cd49], a ld [$cd4a], a ld [$cd4c], a ld [$cd4d], a ld [$cd4e], a call Function11ad1b call DelayFrame .asm_11ac82 call Functiona57 ld a, [$cf63] bit 7, a jr nz, .asm_11aca8 call Function11b314 call Function11acb7 call Function11ad6e ld a, $78 ld [$c3b5], a callba Function8cf7a callba Function104061 jr .asm_11ac82 .asm_11aca8 call ClearSprites pop af ld [$ffaa], a pop af ld [VramState], a pop af ld [Options], a ret ; 11acb7 Function11acb7: ; 11acb7 ld hl, $7a44 ld a, [$cd49] ld c, a ld b, $0 sla c rl b sla c rl b sla c rl b add hl, bc ld de, $c51e ld a, [hli] ld [de], a ld de, $c52c ld bc, $0007 call CopyBytes ld a, [$cd49] inc a ld [$cd49], a ld a, [hl] cp $ff jr nz, .asm_11aceb xor a ld [$cd49], a .asm_11aceb ld hl, $7b7d ld a, [$cd4a] ld c, a ld b, $0 sla c rl b sla c rl b sla c rl b add hl, bc ld de, $c557 ld bc, $0007 call CopyBytes ld a, [$cd4a] inc a ld [$cd4a], a inc hl ld a, [hl] cp $ff ret nz xor a ld [$cd4a], a ret ; 11ad1b Function11ad1b: ; 11ad1b call WhiteBGMap call ClearSprites call ClearTileMap callba Function17c000 ld a, [$cfa9] ld [$cd82], a dec a ld [hConnectedMapWidth], a ld a, $10 ld [$c3b7], a ld hl, Function8e83f ld a, BANK(Function8e83f) ld e, $4 rst FarCall ld hl, Function8e83f ld a, BANK(Function8e83f) ld e, $5 rst FarCall ld hl, PlayerSDefLevel ld bc, $0115 xor a call ByteFill xor a ld [$cf63], a ld [$cf64], a ld [$cf65], a ld [$cf66], a ld [$cd30], a ld a, $2 ld [$c7d4], a callba Function40bdc ret ; 11ad6e Function11ad6e: ; 11ad6e ld a, [$cf63] ld hl, $6d78 call Function11b239 jp [hl] ; 11ad78 INCBIN "baserom.gbc",$11ad78,$11b239 - $11ad78 Function11b239: ; 11b239 ld e, a ld d, $0 add hl, de add hl, de ld a, [hli] ld h, [hl] ld l, a ret ; 11b242 INCBIN "baserom.gbc",$11b242,$11b314 - $11b242 Function11b314: ; 11b314 call Function11b31b call Function11b3d9 ret ; 11b31b Function11b31b: ; 11b31b ld hl, $7350 ld a, [$cf63] cp $2 jr c, .asm_11b349 ld a, [$c7d1] cp $4 jr nc, .asm_11b344 cp $3 jr c, .asm_11b349 ld a, [$cf63] cp $2 jr z, .asm_11b349 cp $3 jr z, .asm_11b349 cp $6 jr z, .asm_11b349 ld bc, $737b jr .asm_11b34c .asm_11b344 ld bc, $7389 jr .asm_11b34c .asm_11b349 ld bc, $736d .asm_11b34c call Function11b397 ret ; 11b350 INCBIN "baserom.gbc",$11b350,$11b397 - $11b350 Function11b397: ; 11b397 ld de, Sprites .asm_11b39a ld a, [hl] cp $ff ret z ld a, [$c7d1] and $7 swap a add [hl] inc hl ld [de], a inc de ld a, [hli] ld [de], a inc de ld a, [bc] inc bc ld [de], a inc de ld a, $5 ld [de], a inc de jr .asm_11b39a ; 11b3b6 INCBIN "baserom.gbc",$11b3b6,$11b3d9 - $11b3b6 Function11b3d9: ; 11b3d9 ld de, $c470 push de ld a, [$c7d2] dec a ld e, a ld a, [$c7d1] ld hl, $c7d0 add [hl] cp e jr z, .asm_11b40d ld hl, $0000 ld bc, $0070 call AddNTimes ld e, l ld d, h ld b, $0 ld a, d or e jr z, .asm_11b40f ld a, [$c7d2] ld c, a .asm_11b401 ld a, e sub c ld e, a ld a, d sbc $0 ld d, a jr c, .asm_11b40f inc b jr .asm_11b401 .asm_11b40d ld b, $70 .asm_11b40f ld a, $15 add b pop hl ld [hli], a cp $41 jr c, .asm_11b42b ld a, [$cf63] cp $4 jr z, .asm_11b43b cp $5 jr z, .asm_11b43b cp $7 jr z, .asm_11b43b cp $8 jr z, .asm_11b43b .asm_11b42b ld a, $9b ld [hli], a ld a, [$cd4c] add $3c ld [hli], a ld a, [$cd4c] add $1 ld [hl], a ret .asm_11b43b ld a, $9b ld [hli], a ld a, $39 ld [hli], a xor a ld [hl], a ret ; 11b444 Function11b444: ; 11b444 call Function11b44b call Function11b45c ret ; 11b44b Function11b44b: ; 11b44b xor a ld [$cf63], a ld [$cf64], a ld [$cf65], a ld [$cf66], a call UpdateTime ret ; 11b45c Function11b45c: ; 11b45c .asm_11b45c call Function11b46a call DelayFrame ld a, [$cf63] cp $4 jr nz, .asm_11b45c ret ; 11b46a Function11b46a: ; 11b46a ld a, [$cf63] ld e, a ld d, $0 ld hl, $7479 add hl, de add hl, de ld a, [hli] ld h, [hl] ld l, a jp [hl] ; 11b479 INCBIN "baserom.gbc",$11b479,$11b5e8 - $11b479 Function11b5e8: ; 11b5e8 ld a, $0 call GetSRAMBank ld hl, $d4ba ld de, EnemyMoveAnimation ld bc, $0004 call CopyBytes call CloseSRAM ld a, $5 call GetSRAMBank ld hl, EnemyMoveAnimation ld de, $b08c ld bc, $0004 call CopyBytes ld a, $2 ld [$a800], a ld a, [$a81f] ld [$cd2a], a ld a, [$a820] ld [$cd2b], a ld a, [$a821] ld [$cd2c], a ld a, [$a822] ld [$cd2d], a ld a, [$a823] ld [$cd2e], a ld a, [$a824] ld [$cd2f], a ld a, [$a825] ld [$cd30], a ld a, [$a826] ld [$cd31], a call CloseSRAM call Function11b44b call Function11b64c ret ; 11b64c Function11b64c: ; 11b64c .asm_11b64c call Function11b65a call DelayFrame ld a, [$cf63] cp $1 jr nz, .asm_11b64c ret ; 11b65a Function11b65a: ; 11b65a ld a, [$cf63] ld e, a ld d, $0 ld hl, $7669 add hl, de add hl, de ld a, [hli] ld h, [hl] ld l, a jp [hl] ; 11b669 INCBIN "baserom.gbc",$11b669,$11b7e5 - $11b669 Function11b7e5: ; 11b7e5 ld a, [EnemyMovePP] ld [PlayerLightScreenCount], a ld [CurPartySpecies], a ld a, [$cd81] ld [$c74e], a ld hl, $c63d ld de, $c724 ld bc, $0005 call CopyBytes ld a, $50 ld [de], a ld a, [PlayerMoveAccuracy] ld [$c731], a ld a, [PlayerMovePP] ld [$c732], a ld hl, $c622 ld a, [hli] ld [$c72f], a ld a, [hl] ld [$c730], a ld bc, EnemyMovePP callba GetCaughtGender ld a, c ld [$c733], a call SpeechTextBox call FadeToMenu callba Function108016 callba Function17d1f1 ld a, $1 ld [$d1e9], a ld a, $2 ld [InLinkBattle], a callba Function421d8 xor a ld [InLinkBattle], a callba Function14a58 ld a, $5 call GetSRAMBank ld a, $5 ld [$a800], a call CloseSRAM ld a, [MapGroup] ld b, a ld a, [MapNumber] ld c, a call GetMapTrigger ld a, d or e jr z, .asm_11b872 ld a, $1 ld [de], a .asm_11b872 call Function2b3c call Function3d47 ret ; 11b879 Function11b879: ; 11b879 callba Function17089a ld a, [ScriptVar] and a ret z ld a, $5 call GetSRAMBank ld a, [$a800] ld [ScriptVar], a ld a, [$a890] ld [$cd49], a ld a, [$a891] ld [$cd4a], a ld a, [$a892] ld [$cd4b], a ld a, [$a893] ld [$cd4c], a call CloseSRAM ld a, [ScriptVar] and a ret z ld hl, $cd4c ld a, [hRTCDayHi] cp [hl] ret nz dec hl ld a, [hRTCDayLo] cp [hl] ret nz ld hl, $cd4a ld a, [hRTCHours] cp [hl] jr nc, .asm_11b8d8 ld a, $18 sub [hl] ld hl, hRTCHours add [hl] ld [$cd4c], a ld a, [hRTCMinutes] ld [$cd4b], a xor a ld [$cd4a], a jr .asm_11b8e2 .asm_11b8d8 ld a, [hRTCMinutes] ld [$cd4b], a ld a, [hRTCHours] ld [$cd4c], a .asm_11b8e2 xor a ld l, a ld h, a ld b, a ld d, a ld a, [$cd4b] ld e, a ld a, [$cd4c] ld c, $3c call AddNTimes add hl, de push hl xor a ld l, a ld h, a ld b, a ld d, a ld a, [$cd49] ld e, a ld a, [$cd4a] ld c, $3c call AddNTimes add hl, de ld a, l cpl add $1 ld e, a ld a, h cpl adc $0 ld d, a pop hl add hl, de ld de, $ff88 add hl, de bit 7, h ret z ld a, $2 ld [ScriptVar], a ret ; 11b920 Function11b920: ; 11b920 call Function11b44b ld a, $5 call GetSRAMBank ld hl, $a81f ld de, $c626 ld bc, $0008 call CopyBytes call CloseSRAM call Function118000 ret ; 11b93b Function11b93b: ; 11b93b ld a, $5 call GetSRAMBank xor a ld [$a800], a ld hl, $a823 ld de, EnemyMoveAnimation ld bc, $008f call CopyBytes call CloseSRAM ld a, $8 ld [BGMapBuffer], a ld a, $c6 ld [$cd21], a ld a, $11 ld [CreditsTimer], a ld a, $c6 ld [$cd23], a ld a, $41 ld [$cd24], a ld a, $c6 ld [$cd25], a ld a, $46 ld [$cd26], a ld a, $c6 ld [$cd27], a ld a, $4b ld [$cd28], a ld a, $c6 ld [$cd29], a call Function11b98f callba Function14a58 ret ; 11b98f Function11b98f: ; 11b98f ld hl, PartyCount ld a, [hl] ld e, a inc [hl] ld a, [BGMapBuffer] ld l, a ld a, [$cd21] ld h, a inc hl ld bc, PartySpecies ld d, e .asm_11b9a2 inc bc dec d jr nz, .asm_11b9a2 ld a, e ld [CurPartyMon], a ld a, [hl] ld [bc], a inc bc ld a, $ff ld [bc], a ld hl, PartyMon1Species ld bc, $0030 ld a, e ld [$cd2a], a .asm_11b9ba add hl, bc dec a and a jr nz, .asm_11b9ba ld e, l ld d, h ld a, [CreditsTimer] ld l, a ld a, [$cd23] ld h, a ld bc, $0030 call CopyBytes ld hl, PartyMon1OT ld bc, $000b ld a, [$cd2a] .asm_11b9d8 add hl, bc dec a and a jr nz, .asm_11b9d8 ld e, l ld d, h ld a, [$cd24] ld l, a ld a, [$cd25] ld h, a ld bc, $000a call CopyBytes ld a, $50 ld [de], a ld hl, PartyMon1Nickname ld bc, $000b ld a, [$cd2a] .asm_11b9f9 add hl, bc dec a and a jr nz, .asm_11b9f9 ld e, l ld d, h ld a, [$cd26] ld l, a ld a, [$cd27] ld h, a ld bc, $000a call CopyBytes ld a, $50 ld [de], a ld hl, $a600 ld bc, $002f ld a, [$cd2a] .asm_11ba1a add hl, bc dec a and a jr nz, .asm_11ba1a ld a, $0 call GetSRAMBank ld e, l ld d, h ld a, [$cd28] ld l, a ld a, [$cd29] ld h, a ld bc, $002f call CopyBytes call CloseSRAM ret ; 11ba38 Function11ba38: ; 11ba38 callba Functione538 ret c xor a ld [ScriptVar], a ret ; 11ba44 INCBIN "baserom.gbc",$11ba44,$11bc9e - $11ba44 SECTION "bank47", ROMX, BANK[$47] Function11c000:: ; 11c000 ld a, [rSVBK] push af ld a, $3 ld [rSVBK], a ld hl, $d105 ld a, [hl] dec a ld e, a ld d, $0 ld hl, $72f0 add hl, de ld a, [hl] and a jr nz, .asm_11c026 ld a, [hRandomAdd] and $1f cp $19 jr c, .asm_11c021 sub $19 .asm_11c021 ld hl, $7332 jr .asm_11c033 .asm_11c026 ld a, [hRandomAdd] and $f cp $f jr c, .asm_11c030 sub $f .asm_11c030 ld hl, $73ce .asm_11c033 ld b, $0 dec c jr nz, .asm_11c03d ld [$d200], a jr .asm_11c040 .asm_11c03d ld a, [$d200] .asm_11c040 push af add hl, bc add hl, bc ld a, [hli] ld c, a ld a, [hl] ld h, a ld l, c pop af ld c, a ld b, $0 add hl, bc add hl, bc ld a, [hli] ld c, a ld a, [hl] ld l, c ld h, a ld bc, $c5b9 pop af ld [rSVBK], a call Function13e5 ret ; 11c05d Function11c05d: ; 11c05d ld a, e or d jr z, .asm_11c071 ld a, e and d cp $ff jr z, .asm_11c071 push hl call Function11c156 pop hl call PlaceString and a ret .asm_11c071 ld c, l ld b, h scf ret ; 11c075 Function11c075: ; 11c075 push de ld a, c call Function11c254 pop de ld bc, $cd36 call Function11c08f ret ; 11c082 INCBIN "baserom.gbc",$11c082,$11c08f - $11c082 Function11c08f: ; 11c08f ld l, e ld h, d push hl ld a, $3 .asm_11c094 push af ld a, [bc] ld e, a inc bc ld a, [bc] ld d, a inc bc push bc call Function11c05d jr c, .asm_11c0a2 inc bc .asm_11c0a2 ld l, c ld h, b pop bc pop af dec a jr nz, .asm_11c094 pop hl ld de, $0028 add hl, de ld a, $3 .asm_11c0b0 push af ld a, [bc] ld e, a inc bc ld a, [bc] ld d, a inc bc push bc call Function11c05d jr c, .asm_11c0be inc bc .asm_11c0be ld l, c ld h, b pop bc pop af dec a jr nz, .asm_11c0b0 ret ; 11c0c6 Function11c0c6: ; 11c0c6 ld a, [$cf63] ld l, a ld a, [$cf64] ld h, a push hl ld hl, $c618 ld a, $0 ld [hli], a push de xor a ld [$cf63], a ld a, $12 ld [$cf64], a ld a, $6 .asm_11c0e1 push af ld a, [bc] ld e, a inc bc ld a, [bc] ld d, a inc bc or e jr z, .asm_11c133 push hl push bc call Function11c156 call Function11c14a ld e, c pop bc pop hl ld a, e or a jr z, .asm_11c133 .asm_11c0fa ld a, [$cf64] cp $12 jr z, .asm_11c102 inc e .asm_11c102 cp e jr nc, .asm_11c11c ld a, [$cf63] inc a ld [$cf63], a ld [hl], $4e rra jr c, .asm_11c113 ld [hl], $55 .asm_11c113 inc hl ld a, $12 ld [$cf64], a dec e jr .asm_11c0fa .asm_11c11c cp $12 jr z, .asm_11c123 ld [hl], $7f inc hl .asm_11c123 sub e ld [$cf64], a ld de, EnemyMoveAnimation .asm_11c12a ld a, [de] cp $50 jr z, .asm_11c133 inc de ld [hli], a jr .asm_11c12a .asm_11c133 pop af dec a jr nz, .asm_11c0e1 ld [hl], $57 pop bc ld hl, $c618 call Function13e5 pop hl ld a, l ld [$cf63], a ld a, h ld [$cf64], a ret ; 11c14a Function11c14a: ; 11c14a ld c, $0 ld hl, EnemyMoveAnimation .asm_11c14f ld a, [hli] cp $50 ret z inc c jr .asm_11c14f ; 11c156 Function11c156: ; 11c156 ld a, [rSVBK] push af ld a, $1 ld [rSVBK], a ld a, $50 ld hl, EnemyMoveAnimation ld bc, $000b call ByteFill ld a, d and a jr z, .asm_11c19c ld hl, $5aac dec d sla d ld c, d ld b, $0 add hl, bc ld a, [hli] ld c, a ld a, [hl] ld b, a push bc pop hl ld c, e ld b, $0 sla c rl b sla c rl b sla c rl b add hl, bc ld bc, $0005 .asm_11c18f ld de, EnemyMoveAnimation call CopyBytes ld de, EnemyMoveAnimation pop af ld [rSVBK], a ret .asm_11c19c ld a, e ld [$d265], a call GetPokemonName ld hl, StringBuffer1 ld bc, $000a jr .asm_11c18f ; 11c1ab Function11c1ab: ; 11c1ab ld a, [$ffaa] push af ld a, $1 ld [$ffaa], a call Function11c1b9 pop af ld [$ffaa], a ret ; 11c1b9 Function11c1b9: ; 11c1b9 call Function11c1ca ld a, [rSVBK] push af ld a, $5 ld [rSVBK], a call Function11c283 pop af ld [rSVBK], a ret ; 11c1ca Function11c1ca: ; 11c1ca xor a ld [$cf63], a ld [$cf64], a ld [$cf65], a ld [$cf66], a ld [$cd23], a ld [BGMapBuffer], a ld [$cd21], a ld [CreditsTimer], a ld [$cd35], a ld [$cd2b], a ld a, $ff ld [$cd24], a ld a, [$cfa9] dec a call Function11c254 call WhiteBGMap call ClearSprites call Functionfdb call Function11d323 call Function32f9 call DisableLCD ld hl, $567e ld de, VTiles2 ld bc, $0060 call CopyBytes ld hl, $56de ld de, VTiles0 call Decompress call EnableLCD callba Function104061 callba Function8cf53 callba Function1500c callba Function40c30 ld a, [rSVBK] push af ld a, $5 ld [rSVBK], a ld hl, PlayerSDefLevel ld de, LYOverrides ld bc, Start call CopyBytes pop af ld [rSVBK], a call Function11d4aa call Function11d3ba ret ; 11c254 Function11c254: ; 11c254 push af ld a, $4 call GetSRAMBank ld hl, $a007 pop af sla a sla a ld c, a sla a add c ld c, a ld b, $0 add hl, bc ld de, $cd36 ld bc, $000c call CopyBytes call CloseSRAM ret ; 11c277 ; known jump sources: 11c3c2 (47:43c2), 11c52c (47:452c), 11c658 (47:4658), 11cd20 (47:4d20), 11ce0b (47:4e0b) Function11c277: ; 11c277 (47:4277) ld a, $7f ld hl, $c518 ld bc, $f0 call ByteFill ret Function11c283: ; 11c283 .asm_11c283 call Functiona57 ld a, [hJoyPressed] ld [hJoypadPressed], a ld a, [$cf63] bit 7, a jr nz, .asm_11c2a2 call Function11c2ac callba Function8cf69 callba Function104061 jr .asm_11c283 .asm_11c2a2 callba Function8cf53 call ClearSprites ret ; 11c2ac Function11c2ac: ; 11c2ac ld a, [$cf63] ld e, a ld d, 0 ld hl, Jumptable_11c2bb add hl, de add hl, de ld a, [hli] ld h, [hl] ld l, a jp [hl] ; 11c2bb ; no known jump sources Jumptable_11c2bb: ; 11c2bb (47:42bb) dw Function11c2e9 dw Function11c346 dw Function11c35f dw Function11c373 dw Function11c3c2 dw Function11c3ed dw Function11c52c dw Function11c53d dw Function11c658 dw Function11c675 dw Function11c9bd dw Function11c9c3 dw Function11caad dw Function11cab3 dw Function11cb52 dw Function11cb66 dw Function11cbf5 dw Function11ccef dw Function11cd04 dw Function11cd20 dw Function11cd54 dw Function11ce0b dw Function11ce2b ; no known jump sources Function11c2e9: ; 11c2e9 (47:42e9) ld de, $1a0d ld a, $1d call Function3b2a ld de, $420d ld a, $1d call Function3b2a ld hl, $c add hl, bc ld a, $1 ld [hl], a ld de, $4a10 ld a, $1d call Function3b2a ld hl, $c add hl, bc ld a, $3 ld [hl], a ld de, $5080 ld a, $1d call Function3b2a ld hl, $c add hl, bc ld a, $4 ld [hl], a ld de, $5020 ld a, $1d call Function3b2a ld hl, $c add hl, bc ld a, $5 ld [hl], a ld de, $5010 ld a, $1d call Function3b2a ld hl, $c add hl, bc ld a, $2 ld [hl], a ld hl, $cd23 set 1, [hl] set 2, [hl] jp Function11cfb5 ; no known jump sources Function11c346: ; 11c346 (47:4346) ld a, $9 ld [$cd2d], a ld a, $2 ld [$cd2e], a ld [$cd2f], a ld [$cd30], a ld de, $cd2d call Function11cfce jp Function11cfb5 ; no known jump sources Function11c35f: ; 11c35f (47:435f) ld hl, $cd2f inc [hl] inc [hl] dec hl dec hl dec [hl] push af ld de, $cd2d call Function11cfce pop af ret nz jp Function11cfb5 ; no known jump sources Function11c373: ; 11c373 (47:4373) ld hl, $cd30 inc [hl] inc [hl] dec hl dec hl dec [hl] push af ld de, $cd2d call Function11cfce pop af ret nz call Function11c38a jp Function11cfb5 ; known jump sources: 11c384 (47:4384), 11cbdd (47:4bdd) Function11c38a: ; 11c38a (47:438a) ld hl, $4986 ld bc, $cd36 ld a, $6 .asm_11c392 push af ld a, [hli] ld e, a ld a, [hli] ld d, a push hl push de pop hl ld a, [bc] inc bc ld e, a ld a, [bc] inc bc ld d, a push bc or e jr z, .asm_11c3af ld a, e and d cp $ff jr z, .asm_11c3af call Function11c05d jr .asm_11c3b5 .asm_11c3af ld de, $43bc call PlaceString .asm_11c3b5 pop bc pop hl pop af dec a jr nz, .asm_11c392 ret ; 11c3bc (47:43bc) INCBIN "baserom.gbc",$11c3bc,$11c3c2 - $11c3bc ; no known jump sources Function11c3c2: ; 11c3c2 (47:43c2) call Function11c277 ld de, $4fbe call Function11d035 ld hl, $c52d ld de, $44db call PlaceString ld hl, $c5e1 ld de, $451b call PlaceString call Function11c4be ld hl, $cd23 set 0, [hl] ld hl, $cd24 res 0, [hl] call Function11cfb5 ; no known jump sources Function11c3ed: ; 11c3ed (47:43ed) ld hl, BGMapBuffer ; $cd20 (aliases: CreditsPos) ld de, hJoypadPressed ; $ffa3 ld a, [de] and $8 jr nz, .asm_11c426 ld a, [de] and $2 jr nz, .asm_11c41a ld a, [de] and $1 jr nz, .asm_11c42c ld de, $ffa9 ld a, [de] and $40 jr nz, .asm_11c47c ld a, [de] and $80 jr nz, .asm_11c484 ld a, [de] and $20 jr nz, .asm_11c48c ld a, [de] and $10 jr nz, .asm_11c498 ret .asm_11c41a call PlayClickSFX .asm_11c41d ld hl, $cd24 set 0, [hl] ld a, $c jr .asm_11c475 .asm_11c426 ld a, $8 ld [BGMapBuffer], a ; $cd20 (aliases: CreditsPos) ret .asm_11c42c ld a, [BGMapBuffer] ; $cd20 (aliases: CreditsPos) cp $6 jr c, .asm_11c472 sub $6 jr z, .asm_11c469 dec a jr z, .asm_11c41d ld hl, $cd36 ld c, $c xor a .asm_11c440 or [hl] inc hl dec c jr nz, .asm_11c440 and a jr z, .asm_11c460 ld de, $4fba call Function11cfce ld de, $c4c9 ld bc, $cd36 call Function11c08f ld hl, $cd24 set 0, [hl] ld a, $e jr .asm_11c475 .asm_11c460 ld hl, $cd24 set 0, [hl] ld a, $11 jr .asm_11c475 .asm_11c469 ld hl, $cd24 set 0, [hl] ld a, $a jr .asm_11c475 .asm_11c472 call Function11c4a5 .asm_11c475 ld [$cf63], a call PlayClickSFX ret .asm_11c47c ld a, [hl] cp $3 ret c sub $3 jr .asm_11c4a3 .asm_11c484 ld a, [hl] cp $6 ret nc add $3 jr .asm_11c4a3 .asm_11c48c ld a, [hl] and a ret z cp $3 ret z cp $6 ret z dec a jr .asm_11c4a3 .asm_11c498 ld a, [hl] cp $2 ret z cp $5 ret z cp $8 ret z inc a .asm_11c4a3 ld [hl], a ret ; known jump sources: 11c472 (47:4472) Function11c4a5: ; 11c4a5 (47:44a5) ld hl, $cd23 res 0, [hl] ld a, [$cd2b] and a jr nz, .asm_11c4b7 xor a ld [$cd21], a ld a, $6 ret .asm_11c4b7 xor a ld [CreditsTimer], a ; $cd22 ld a, $15 ret ; known jump sources: 11c3dd (47:43dd) Function11c4be: ; 11c4be (47:44be) ld a, $1 ld hl, $ce51 ld bc, $a0 call ByteFill ld a, $7 ld hl, $cef1 ld bc, $28 call ByteFill callba Function104061 ret ; 11c4db (47:44db) INCBIN "baserom.gbc",$11c4db,$11c52c - $11c4db ; no known jump sources Function11c52c: ; 11c52c (47:452c) call Function11c277 call Function11c5f0 call Function11c618 ld hl, $cd24 res 1, [hl] call Function11cfb5 ; no known jump sources Function11c53d: ; 11c53d (47:453d) ld hl, $cd21 ld de, hJoypadPressed ; $ffa3 ld a, [de] and START jr nz, .start ld a, [de] and SELECT jr nz, .select ld a, [de] and B_BUTTON jr nz, .b ld a, [de] and A_BUTTON jr nz, .a ld de, $ffa9 ld a, [de] and D_UP jr nz, .up ld a, [de] and D_DOWN jr nz, .down ld a, [de] and D_LEFT jr nz, .left ld a, [de] and D_RIGHT jr nz, .right ret .a ld a, [$cd21] cp $f jr c, .asm_11c59d sub $f jr z, .asm_11c5ab dec a jr z, .asm_11c599 jr .b .start ld hl, $cd24 set 0, [hl] ld a, $8 ld [BGMapBuffer], a ; $cd20 (aliases: CreditsPos) .b ld a, $4 jr .asm_11c59f .select ld a, [$cd2b] xor $1 ld [$cd2b], a ld a, $15 jr .asm_11c59f .asm_11c599 ld a, $13 jr .asm_11c59f .asm_11c59d ld a, $8 .asm_11c59f ld hl, $cd24 set 1, [hl] ld [$cf63], a call PlayClickSFX ret .asm_11c5ab ld a, [BGMapBuffer] ; $cd20 (aliases: CreditsPos) call Function11ca6a call PlayClickSFX ret .up ld a, [hl] cp $3 ret c sub $3 jr .asm_11c5ee .down ld a, [hl] cp $f ret nc add $3 jr .asm_11c5ee .left ld a, [hl] and a ret z cp $3 ret z cp $6 ret z cp $9 ret z cp $c ret z cp $f ret z dec a jr .asm_11c5ee .right ld a, [hl] cp $2 ret z cp $5 ret z cp $8 ret z cp $b ret z cp $e ret z cp $11 ret z inc a .asm_11c5ee ld [hl], a ret ; known jump sources: 11c52f (47:452f) Function11c5f0: ; 11c5f0 (47:45f0) ld de, $5a52 ld bc, $463a ld a, $f .asm_11c5f8 push af ld a, [bc] inc bc ld l, a ld a, [bc] inc bc ld h, a push bc call PlaceString .asm_11c603 inc de ld a, [de] cp $50 jr z, .asm_11c603 pop bc pop af dec a jr nz, .asm_11c5f8 ld hl, $c5f5 ld de, $462a call PlaceString ret ; known jump sources: 11c532 (47:4532), 11ce20 (47:4e20) Function11c618: ; 11c618 (47:4618) ld a, $2 ld hl, $ce51 ld bc, $c8 call ByteFill callba Function104061 ret ; 11c62a (47:462a) INCBIN "baserom.gbc",$11c62a,$11c658 - $11c62a ; no known jump sources Function11c658: ; 11c658 (47:4658) call Function11c277 call Function11c770 ld de, $4fc2 call Function11d035 call Function11c9ab call Function11c7bc call Function11c86e ld hl, $cd24 res 3, [hl] call Function11cfb5 ; no known jump sources Function11c675: ; 11c675 (47:4675) ld hl, $cd25 ld de, hJoypadPressed ; $ffa3 ld a, [de] and $1 jr nz, .asm_11c6e6 ld a, [de] and $2 jr nz, .asm_11c6f0 ld a, [de] and $8 jr nz, .asm_11c69e ld a, [de] and $4 jr z, .asm_11c6ce ld a, [$cd26] and a ret z sub $c jr nc, .asm_11c699 xor a .asm_11c699 ld [$cd26], a jr .asm_11c6c4 .asm_11c69e ld hl, $cd28 ld a, [$cd26] add $c cp [hl] ret nc ld [$cd26], a ld a, [hl] ld b, a ld hl, $cd25 ld a, [$cd26] add [hl] jr c, .asm_11c6b9 cp b jr c, .asm_11c6c4 .asm_11c6b9 ld a, [$cd28] ld hl, $cd26 sub [hl] dec a ld [$cd25], a .asm_11c6c4 call Function11c992 call Function11c7bc call Function11c86e ret .asm_11c6ce ld de, $ffa9 ld a, [de] and $40 jr nz, .asm_11c708 ld a, [de] and $80 jr nz, .asm_11c731 ld a, [de] and $20 jr nz, .asm_11c746 ld a, [de] and $10 jr nz, .asm_11c755 ret .asm_11c6e6 call Function11c8f6 ld a, $4 ld [$cd35], a jr .asm_11c6fc .asm_11c6f0 ld a, [$cd2b] and a jr nz, .asm_11c6fa ld a, $6 jr .asm_11c6fc .asm_11c6fa ld a, $15 .asm_11c6fc ld [$cf63], a ld hl, $cd24 set 3, [hl] call PlayClickSFX ret .asm_11c708 ld a, [hl] cp $3 jr c, .asm_11c711 sub $3 jr .asm_11c76e .asm_11c711 ld a, [$cd26] sub $3 ret c ld [$cd26], a jr .asm_11c6c4 .asm_11c71c ld hl, $cd28 ld a, [$cd26] add $c ret c cp [hl] ret nc ld a, [$cd26] add $3 ld [$cd26], a jr .asm_11c6c4 .asm_11c731 ld a, [$cd28] ld b, a ld a, [$cd26] add [hl] add $3 cp b ret nc ld a, [hl] cp $9 jr nc, .asm_11c71c add $3 jr .asm_11c76e .asm_11c746 ld a, [hl] and a ret z cp $3 ret z cp $6 ret z cp $9 ret z dec a jr .asm_11c76e .asm_11c755 ld a, [$cd28] ld b, a ld a, [$cd26] add [hl] inc a cp b ret nc ld a, [hl] cp $2 ret z cp $5 ret z cp $8 ret z cp $b ret z inc a .asm_11c76e ld [hl], a ret ; known jump sources: 11c65b (47:465b) Function11c770: ; 11c770 (47:4770) xor a ld [$cd25], a ld [$cd26], a ld [$cd27], a ld a, [$cd2b] and a jr nz, .asm_11c7ab ld a, [$cd21] and a jr z, .asm_11c799 dec a sla a ld hl, $7220 ld c, a ld b, $0 add hl, bc ld a, [hli] ld [$cd28], a ld a, [hl] .asm_11c795 ld [$cd29], a ret .asm_11c799 ld a, [$c7d2] ld [$cd28], a .asm_11c79f ld c, $c call SimpleDivide and a jr nz, .asm_11c7a8 dec b .asm_11c7a8 ld a, b jr .asm_11c795 .asm_11c7ab ld hl, $c6a8 ld a, [CreditsTimer] ; $cd22 ld c, a ld b, $0 add hl, bc add hl, bc ld a, [hl] ld [$cd28], a jr .asm_11c79f ; known jump sources: 11c667 (47:4667), 11c6c7 (47:46c7) Function11c7bc: ; 11c7bc (47:47bc) ld bc, $4854 ld a, [$cd2b] and a jr nz, .asm_11c814 ld a, [$cd21] ld d, a and a jr z, .asm_11c7e9 ld a, [$cd26] ld e, a .asm_11c7d0 ld a, [bc] ld l, a inc bc ld a, [bc] ld h, a inc bc and l cp $ff ret z push bc push de call Function11c05d pop de pop bc inc e ld a, [$cd28] cp e jr nz, .asm_11c7d0 ret .asm_11c7e9 ld hl, CurMartEnd ; $d100 (aliases: LYOverrides) ld a, [$cd26] ld e, a add hl, de .asm_11c7f1 push de ld a, [hli] ld e, a ld d, $0 push hl ld a, [bc] ld l, a inc bc ld a, [bc] ld h, a inc bc and l cp $ff jr z, .asm_11c811 push bc call Function11c05d pop bc pop hl pop de inc e ld a, [$cd28] cp e jr nz, .asm_11c7f1 ret .asm_11c811 pop hl pop de ret .asm_11c814 ld hl, BattleMonSpclDef ; $c648 ld a, [CreditsTimer] ; $cd22 ld e, a ld d, $0 add hl, de add hl, de ld a, [hli] ld e, a ld a, [hl] ld d, a push de pop hl ld a, [$cd26] ld e, a ld d, $0 add hl, de add hl, de ld a, [$cd26] ld e, a .asm_11c831 push de ld a, [hli] ld e, a ld a, [hli] ld d, a push hl ld a, [bc] ld l, a inc bc ld a, [bc] ld h, a inc bc and l cp $ff jr z, .asm_11c851 push bc call Function11c05d pop bc pop hl pop de inc e ld a, [$cd28] cp e jr nz, .asm_11c831 ret .asm_11c851 pop hl pop de ret ; 11c854 (47:4854) INCBIN "baserom.gbc",$11c854,$11c86e - $11c854 ; known jump sources: 11c66a (47:466a), 11c6ca (47:46ca) Function11c86e: ; 11c86e (47:486e) ld a, [$cd26] and a jr z, .asm_11c88a ld hl, $c5f6 ld de, $48f0 call PlaceString ld hl, $c5fa ld c, $3 xor a .asm_11c883 ld [hli], a inc a dec c jr nz, .asm_11c883 jr .asm_11c895 .asm_11c88a ld hl, $c5f6 ld c, $7 ld a, $7f .asm_11c891 ld [hli], a dec c jr nz, .asm_11c891 .asm_11c895 ld hl, $cd28 ld a, [$cd26] add $c jr c, .asm_11c8b7 cp [hl] jr nc, .asm_11c8b7 ld hl, $c604 ld de, $48f3 call PlaceString ld hl, $c5ff ld a, $3 ld c, a .asm_11c8b1 ld [hli], a inc a dec c jr nz, .asm_11c8b1 ret .asm_11c8b7 ld hl, $c5f1 ld a, $7f ld [hl], a ld hl, $c5ff ld c, $7 .asm_11c8c2 ld [hli], a dec c jr nz, .asm_11c8c2 ret ; 11c8c7 (47:48c7) INCBIN "baserom.gbc",$11c8c7,$11c8f6 - $11c8c7 ; known jump sources: 11c6e6 (47:46e6) Function11c8f6: ; 11c8f6 (47:48f6) ld a, [BGMapBuffer] ; $cd20 (aliases: CreditsPos) call Function11c95d push hl ld a, [$cd2b] and a jr nz, .asm_11c938 ld a, [$cd21] ld d, a and a jr z, .asm_11c927 ld hl, $cd26 ld a, [$cd25] add [hl] .asm_11c911 ld e, a .asm_11c912 pop hl push de call Function11c05d pop de ld a, [BGMapBuffer] ; $cd20 (aliases: CreditsPos) ld c, a ld b, $0 ld hl, $cd36 add hl, bc add hl, bc ld [hl], e inc hl ld [hl], d ret .asm_11c927 ld hl, $cd26 ld a, [$cd25] add [hl] ld c, a ld b, $0 ld hl, CurMartEnd ; $d100 (aliases: LYOverrides) add hl, bc ld a, [hl] jr .asm_11c911 .asm_11c938 ld hl, BattleMonSpclDef ; $c648 ld a, [CreditsTimer] ; $cd22 ld e, a ld d, $0 add hl, de add hl, de ld a, [hli] ld e, a ld a, [hl] ld d, a push de pop hl ld a, [$cd26] ld e, a ld d, $0 add hl, de add hl, de ld a, [$cd25] ld e, a add hl, de add hl, de ld a, [hli] ld e, a ld a, [hl] ld d, a jr .asm_11c912 ; known jump sources: 11c8f9 (47:48f9), 11ca75 (47:4a75) Function11c95d: ; 11c95d (47:495d) sla a ld c, a ld b, $0 ld hl, $4986 add hl, bc ld a, [hli] ld c, a ld a, [hl] ld b, a push bc push bc pop hl ld a, $5 ld c, a ld a, $7f .asm_11c972 ld [hli], a dec c jr nz, .asm_11c972 dec hl ld bc, $ffec add hl, bc ld a, $5 ld c, a ld a, $7f .asm_11c980 ld [hld], a dec c jr nz, .asm_11c980 pop hl ret ; 11c986 (47:4986) INCBIN "baserom.gbc",$11c986,$11c992 - $11c986 ; known jump sources: 11c6c4 (47:46c4) Function11c992: ; 11c992 (47:4992) ld a, $8 ld hl, $c52e .asm_11c997 push af ld a, $7f push hl ld bc, $11 call ByteFill pop hl ld bc, $14 add hl, bc pop af dec a jr nz, .asm_11c997 ret ; known jump sources: 11c664 (47:4664) Function11c9ab: ; 11c9ab (47:49ab) ld a, $7 ld hl, $ce51 ld bc, $c8 call ByteFill callba Function104061 ret ; no known jump sources Function11c9bd: ; 11c9bd (47:49bd) ld de, $4a38 call Function11ca7f ; no known jump sources Function11c9c3: ; 11c9c3 (47:49c3) ld hl, $cd2a ld de, hJoypadPressed ; $ffa3 ld a, [de] and $1 jr nz, .asm_11c9de ld a, [de] and $2 jr nz, .asm_11c9e9 ld a, [de] and $40 jr nz, .asm_11c9f7 ld a, [de] and $80 jr nz, .asm_11c9fc ret .asm_11c9de ld a, [hl] and a jr nz, .asm_11c9e9 call Function11ca5e xor a ld [BGMapBuffer], a ; $cd20 (aliases: CreditsPos) .asm_11c9e9 ld hl, $cd24 set 4, [hl] ld a, $4 ld [$cf63], a call PlayClickSFX ret .asm_11c9f7 ld a, [hl] and a ret z dec [hl] ret .asm_11c9fc ld a, [hl] and a ret nz inc [hl] ret ; known jump sources: 11ca9c (47:4a9c) Function11ca01: ; 11ca01 (47:4a01) ld hl, $ce73 ld de, $14 ld a, $5 ld c, a .asm_11ca0a push hl ld a, $6 ld b, a ld a, $7 .asm_11ca10 ld [hli], a dec b jr nz, .asm_11ca10 pop hl add hl, de dec c jr nz, .asm_11ca0a ; known jump sources: 11ccfe (47:4cfe) Function11ca19: ; 11ca19 (47:4a19) ld hl, $cec9 ld de, $14 ld a, $6 ld c, a .asm_11ca22 push hl ld a, $14 ld b, a ld a, $7 .asm_11ca28 ld [hli], a dec b jr nz, .asm_11ca28 pop hl add hl, de dec c jr nz, .asm_11ca22 callba Function104061 ret ; 11ca38 (47:4a38) INCBIN "baserom.gbc",$11ca38,$11ca5e - $11ca38 ; known jump sources: 11c9e2 (47:49e2) Function11ca5e: ; 11ca5e (47:4a5e) xor a .asm_11ca5f push af call Function11ca6a pop af inc a cp $6 jr nz, .asm_11ca5f ret ; known jump sources: 11c5ae (47:45ae), 11ca60 (47:4a60), 11cea7 (47:4ea7) Function11ca6a: ; 11ca6a (47:4a6a) ld hl, $cd36 ld c, a ld b, $0 add hl, bc add hl, bc ld [hl], b inc hl ld [hl], b call Function11c95d ld de, $43bc call PlaceString ret ; known jump sources: 11c9c0 (47:49c0), 11cab0 (47:4ab0), 11cb63 (47:4b63) Function11ca7f: ; 11ca7f (47:4a7f) push de ld de, $4fc6 call Function11cfce ld de, $4fca call Function11cfce ld hl, $c5b9 pop de call PlaceString ld hl, $c550 ld de, $4a57 call PlaceString call Function11ca01 ld a, $1 ld [$cd2a], a ld hl, $cd24 res 4, [hl] call Function11cfb5 ret ; no known jump sources Function11caad: ; 11caad (47:4aad) ld de, $4b1c call Function11ca7f ; no known jump sources Function11cab3: ; 11cab3 (47:4ab3) ld hl, $cd2a ld de, hJoypadPressed ; $ffa3 ld a, [de] and $1 jr nz, .asm_11cace ld a, [de] and $2 jr nz, .asm_11caf9 ld a, [de] and $40 jr nz, .asm_11cb12 ld a, [de] and $80 jr nz, .asm_11cb17 ret .asm_11cace call PlayClickSFX ld a, [hl] and a jr nz, .asm_11cafc ld a, [$cd35] and a jr z, .asm_11caf3 cp $ff jr z, .asm_11caf3 ld a, $ff ld [$cd35], a ld hl, $c5b9 ld de, $4b31 call PlaceString ld a, $1 ld [$cd2a], a ret .asm_11caf3 ld hl, $cf63 set 7, [hl] ret .asm_11caf9 call PlayClickSFX .asm_11cafc ld hl, $cd24 set 4, [hl] ld a, $4 ld [$cf63], a ld a, [$cd35] cp $ff ret nz ld a, $1 ld [$cd35], a ret .asm_11cb12 ld a, [hl] and a ret z dec [hl] ret .asm_11cb17 ld a, [hl] and a ret nz inc [hl] ret ; 11cb1c (47:4b1c) INCBIN "baserom.gbc",$11cb1c,$11cb52 - $11cb1c ; no known jump sources Function11cb52: ; 11cb52 (47:4b52) ld hl, $4c01 ld a, [$cfa9] .asm_11cb58 dec a jr z, .asm_11cb5f inc hl inc hl jr .asm_11cb58 .asm_11cb5f ld a, [hli] ld e, a ld a, [hl] ld d, a call Function11ca7f ; no known jump sources Function11cb66: ; 11cb66 (47:4b66) ld hl, $cd2a ld de, hJoypadPressed ; $ffa3 ld a, [de] and $1 jr nz, .asm_11cb81 ld a, [de] and $2 jr nz, .asm_11cbd7 ld a, [de] and $40 jr nz, .asm_11cbeb ld a, [de] and $80 jr nz, .asm_11cbf0 ret .asm_11cb81 ld a, [hl] and a jr nz, .asm_11cbd4 ld a, $4 call GetSRAMBank ld hl, $a007 ld a, [$cfa9] dec a sla a sla a ld c, a sla a add c ld c, a ld b, $0 add hl, bc ld de, $cd36 ld c, $c .asm_11cba2 ld a, [de] ld [hli], a inc de dec c jr nz, .asm_11cba2 call CloseSRAM call PlayClickSFX ld de, $4fc6 call Function11cfce ld hl, $4c7e ld a, [$cfa9] .asm_11cbba dec a jr z, .asm_11cbc1 inc hl inc hl jr .asm_11cbba .asm_11cbc1 ld a, [hli] ld e, a ld a, [hl] ld d, a ld hl, $c5b9 call PlaceString ld hl, $cf63 inc [hl] inc hl ld a, $10 ld [hl], a ret .asm_11cbd4 call PlayClickSFX .asm_11cbd7 ld de, $4fba call Function11cfce call Function11c38a ld hl, $cd24 set 4, [hl] ld a, $4 ld [$cf63], a ret .asm_11cbeb ld a, [hl] and a ret z dec [hl] ret .asm_11cbf0 ld a, [hl] and a ret nz inc [hl] ret ; no known jump sources Function11cbf5: ; 11cbf5 (47:4bf5) call WaitSFX ld hl, $cf64 dec [hl] ret nz dec hl set 7, [hl] ret ; 11cc01 (47:4c01) INCBIN "baserom.gbc",$11cc01,$11ccef - $11cc01 ; no known jump sources Function11ccef: ; 11ccef (47:4cef) ld de, $4fc6 call Function11cfce ld hl, $c5b9 ld de, $4d10 call PlaceString call Function11ca19 call Function11cfb5 ; no known jump sources Function11cd04: ; 11cd04 (47:4d04) ld de, hJoypadPressed ; $ffa3 ld a, [de] and a ret z ld a, $4 ld [$cf63], a ret ; 11cd10 (47:4d10) INCBIN "baserom.gbc",$11cd10,$11cd20 - $11cd10 ; no known jump sources Function11cd20: ; 11cd20 (47:4d20) call Function11c277 ld de, $4fc6 call Function11cfce ld hl, $c5b9 ld a, [$cd2b] ld [$cd2c], a and a jr nz, .asm_11cd3a ld de, $4dc7 jr .asm_11cd3d .asm_11cd3a ld de, $4dd9 .asm_11cd3d call PlaceString ld hl, $c544 ld de, $4df5 call PlaceString call Function11cdaa ld hl, $cd24 res 5, [hl] call Function11cfb5 ; no known jump sources Function11cd54: ; 11cd54 (47:4d54) ld hl, $cd2c ld de, hJoypadPressed ; $ffa3 ld a, [de] and $1 jr nz, .asm_11cd6f ld a, [de] and $2 jr nz, .asm_11cd73 ld a, [de] and $40 jr nz, .asm_11cd8b ld a, [de] and $80 jr nz, .asm_11cd94 ret .asm_11cd6f ld a, [hl] ld [$cd2b], a .asm_11cd73 ld a, [$cd2b] and a jr nz, .asm_11cd7d ld a, $6 jr .asm_11cd7f .asm_11cd7d ld a, $15 .asm_11cd7f ld [$cf63], a ld hl, $cd24 set 5, [hl] call PlayClickSFX ret .asm_11cd8b ld a, [hl] and a ret z dec [hl] ld de, $4dc7 jr .asm_11cd9b .asm_11cd94 ld a, [hl] and a ret nz inc [hl] ld de, $4dd9 .asm_11cd9b push de ld de, $4fc6 call Function11cfce pop de ld hl, $c5b9 call PlaceString ret ; known jump sources: 11cd49 (47:4d49) Function11cdaa: ; 11cdaa (47:4daa) ld a, $2 ld hl, $ce51 ld bc, $78 call ByteFill ld a, $7 ld hl, $cec9 ld bc, $50 call ByteFill callba Function104061 ret ; 11cdc7 (47:4dc7) INCBIN "baserom.gbc",$11cdc7,$11ce0b - $11cdc7 ; no known jump sources Function11ce0b: ; 11ce0b (47:4e0b) call Function11c277 ld hl, $c52d ld de, $4f79 call PlaceString ld hl, $c5f5 ld de, $462a call PlaceString call Function11c618 ld hl, $cd24 res 2, [hl] call Function11cfb5 ; no known jump sources Function11ce2b: ; 11ce2b (47:4e2b) ld a, [CreditsTimer] ; $cd22 sla a sla a ld c, a ld b, $0 ld hl, $4eb9 add hl, bc ld de, hJoypadPressed ; $ffa3 ld a, [de] and $8 jr nz, .asm_11ce78 ld a, [de] and $4 jr nz, .asm_11ce86 ld a, [de] and $1 jr nz, .asm_11ce68 ld a, [de] and $2 jr nz, .asm_11ce82 ld de, $ffa9 ld a, [de] and $40 jr nz, .asm_11ceb1 ld a, [de] and $80 jr nz, .asm_11ceaf ld a, [de] and $20 jr nz, .asm_11ceae ld a, [de] and $10 jr nz, .asm_11ceb0 ret .asm_11ce68 ld a, [CreditsTimer] ; $cd22 cp $2d jr c, .asm_11ce92 sub $2d jr z, .asm_11cea4 dec a jr z, .asm_11ce96 jr .asm_11ce82 .asm_11ce78 ld hl, $cd24 set 0, [hl] ld a, $8 ld [BGMapBuffer], a ; $cd20 (aliases: CreditsPos) .asm_11ce82 ld a, $4 jr .asm_11ce98 .asm_11ce86 ld a, [$cd2b] xor $1 ld [$cd2b], a ld a, $6 jr .asm_11ce98 .asm_11ce92 ld a, $8 jr .asm_11ce98 .asm_11ce96 ld a, $13 .asm_11ce98 ld [$cf63], a ld hl, $cd24 set 2, [hl] call PlayClickSFX ret .asm_11cea4 ld a, [BGMapBuffer] ; $cd20 (aliases: CreditsPos) call Function11ca6a call PlayClickSFX ret .asm_11ceae inc hl .asm_11ceaf inc hl .asm_11ceb0 inc hl .asm_11ceb1 ld a, [hl] cp $ff ret z ld [CreditsTimer], a ; $cd22 ret ; 11ceb9 (47:4eb9) INCBIN "baserom.gbc",$11ceb9,$11cfb5 - $11ceb9 ; known jump sources: 11c343 (47:4343), 11c35c (47:435c), 11c370 (47:4370), 11c387 (47:4387), 11c3ea (47:43ea), 11c53a (47:453a), 11c672 (47:4672), 11caa9 (47:4aa9), 11cd01 (47:4d01), 11cd51 (47:4d51), 11ce28 (47:4e28) Function11cfb5: ; 11cfb5 (47:4fb5) ld hl, $cf63 inc [hl] ret ; 11cfba (47:4fba) INCBIN "baserom.gbc",$11cfba,$11cfce - $11cfba ; known jump sources: 11c359 (47:4359), 11c36b (47:436b), 11c37f (47:437f), 11c44b (47:444b), 11ca83 (47:4a83), 11ca89 (47:4a89), 11cbb1 (47:4bb1), 11cbda (47:4bda), 11ccf2 (47:4cf2), 11cd26 (47:4d26), 11cd9f (47:4d9f) Function11cfce: ; 11cfce (47:4fce) ld hl, TileMap ; $c4a0 (aliases: SpritesEnd) ld bc, $14 ld a, [de] inc de push af ld a, [de] inc de and a .asm_11cfda jr z, .asm_11cfe0 add hl, bc dec a jr .asm_11cfda .asm_11cfe0 pop af ld c, a ld b, $0 add hl, bc push hl ld a, $79 ld [hli], a ld a, [de] inc de dec a dec a jr z, .asm_11cff6 ld c, a ld a, $7a .asm_11cff2 ld [hli], a dec c jr nz, .asm_11cff2 .asm_11cff6 ld a, $7b ld [hl], a pop hl ld bc, $14 add hl, bc ld a, [de] dec de dec a dec a jr z, .asm_11d022 ld b, a .asm_11d005 push hl ld a, $7c ld [hli], a ld a, [de] dec a dec a jr z, .asm_11d015 ld c, a ld a, $7f .asm_11d011 ld [hli], a dec c jr nz, .asm_11d011 .asm_11d015 ld a, $7c ld [hl], a pop hl push bc ld bc, $14 add hl, bc pop bc dec b jr nz, .asm_11d005 .asm_11d022 ld a, $7d ld [hli], a ld a, [de] dec a dec a jr z, .asm_11d031 ld c, a ld a, $7a .asm_11d02d ld [hli], a dec c jr nz, .asm_11d02d .asm_11d031 ld a, $7e ld [hl], a ret ; known jump sources: 11c3c8 (47:43c8), 11c661 (47:4661) Function11d035: ; 11d035 (47:5035) ld hl, TileMap ; $c4a0 (aliases: SpritesEnd) ld bc, $14 ld a, [de] inc de push af ld a, [de] inc de and a .asm_11d041 jr z, .asm_11d047 add hl, bc dec a jr .asm_11d041 .asm_11d047 pop af ld c, a ld b, $0 add hl, bc push hl ld a, $79 ld [hl], a pop hl push hl ld a, [de] dec a inc de ld c, a add hl, bc ld a, $7b ld [hl], a call Function11d0ac ld a, $7e ld [hl], a pop hl push hl call Function11d0ac ld a, $7d ld [hl], a pop hl push hl inc hl push hl call Function11d0ac pop bc dec de ld a, [de] cp $2 jr z, .asm_11d082 dec a dec a .asm_11d078 push af ld a, $7a ld [hli], a ld [bc], a inc bc pop af dec a jr nz, .asm_11d078 .asm_11d082 pop hl ld bc, $14 add hl, bc push hl ld a, [de] dec a ld c, a ld b, $0 add hl, bc pop bc inc de ld a, [de] cp $2 ret z push bc dec a dec a ld c, a ld b, a ld de, $14 .asm_11d09c ld a, $7c ld [hl], a add hl, de dec c jr nz, .asm_11d09c pop hl .asm_11d0a4 ld a, $7c ld [hl], a add hl, de dec b jr nz, .asm_11d0a4 ret ; known jump sources: 11d05a (47:505a), 11d062 (47:5062), 11d06c (47:506c) Function11d0ac: ; 11d0ac (47:50ac) ld a, [de] dec a ld bc, $14 .asm_11d0b1 add hl, bc dec a jr nz, .asm_11d0b1 ret ; no known jump sources Function11d0b6: ; 11d0b6 (47:50b6) ld hl, $c add hl, bc ld a, [hl] ld e, a ld d, 0 ld hl, Jumptable_11d0c7 add hl, de add hl, de ld a, [hli] ld h, [hl] ld l, a jp [hl] ; no known jump sources Jumptable_11d0c7: ; 11d0c7 (47:50c7) dw Function11d0dd dw Function11d0e9 dw Function11d0f5 dw Function11d10f dw Function11d134 dw Function11d145 dw Function11d156 dw Function11d175 dw Function11d1d7 dw Function11d1d1 dw Function11d1fc ; no known jump sources Function11d0dd: ; 11d0dd (47:50dd) ld a, [BGMapBuffer] ; $cd20 (aliases: CreditsPos) sla a ld hl, $5208 ld e, $1 jr asm_11d11e ; no known jump sources Function11d0e9: ; 11d0e9 (47:50e9) ld a, [$cd21] sla a ld hl, $521a ld e, $2 jr asm_11d11e ; no known jump sources Function11d0f5: ; 11d0f5 (47:50f5) ld hl, $52be ld a, [CreditsTimer] ; $cd22 ld e, a ld d, $0 add hl, de ld a, [hl] call Function3b3c ld a, [CreditsTimer] ; $cd22 sla a ld hl, $523e ld e, $4 jr asm_11d11e ; no known jump sources Function11d10f: ; 11d10f (47:510f) ld a, $27 call Function3b3c ld a, [$cd25] sla a ld hl, $529e ld e, $8 ; known jump sources: 11d0e7 (47:50e7), 11d0f3 (47:50f3), 11d10d (47:510d), 11d143 (47:5143), 11d154 (47:5154) asm_11d11e: ; 11d11e (47:511e) push de ld e, a ld d, $0 add hl, de push hl pop de ld hl, $4 add hl, bc ld a, [de] inc de ld [hli], a ld a, [de] ld [hl], a pop de ld a, e call Function11d2ee ret ; no known jump sources Function11d134: ; 11d134 (47:5134) ld a, $27 call Function3b3c ld a, [$cd2a] sla a ld hl, $52b6 ld e, $10 jr asm_11d11e ; no known jump sources Function11d145: ; 11d145 (47:5145) ld a, $27 call Function3b3c ld a, [$cd2c] sla a ld hl, $52ba ld e, $20 jr asm_11d11e ; no known jump sources Function11d156: ; 11d156 (47:5156) ld a, $2a call Function3b3c ld a, [$cd4a] sla a sla a sla a add $18 ld hl, $4 add hl, bc ld [hli], a ld a, $30 ld [hl], a ld a, $1 ld e, a call Function11d2ee ret ; no known jump sources Function11d175: ; 11d175 (47:5175) ld a, [$cd4d] cp $4 jr z, .asm_11d180 ld a, $28 jr .asm_11d182 .asm_11d180 ld a, $26 .asm_11d182 call Function3b3c ld a, [$cd4d] cp $4 jr z, .asm_11d1b1 ld a, [$cd4c] sla a sla a sla a add $20 ld hl, $4 add hl, bc ld [hli], a ld a, [$cd4d] sla a sla a sla a sla a add $48 ld [hl], a ld a, $2 ld e, a call Function11d2ee ret .asm_11d1b1 ld a, [$cd4c] sla a sla a sla a ld e, a sla a sla a add e add $18 ld hl, $4 add hl, bc ld [hli], a ld a, $8a ld [hl], a ld a, $2 ld e, a call Function11d2ee ret ; no known jump sources Function11d1d1: ; 11d1d1 (47:51d1) ld d, $98 ld a, $2c jr asm_11d1db ; no known jump sources Function11d1d7: ; 11d1d7 (47:51d7) ld d, $10 ld a, $2b ; known jump sources: 11d1d5 (47:51d5) asm_11d1db: ; 11d1db (47:51db) push de call Function3b3c ld a, [$cd4a] sla a sla a sla a ld e, a sla a add e add $40 ld hl, $5 add hl, bc ld [hld], a pop af ld [hl], a ld a, $4 ld e, a call Function11d2ee ret ; no known jump sources Function11d1fc: ; 11d1fc (47:51fc) ld a, $26 call Function3b3c ld a, $8 ld e, a call Function11d2ee ret ; 11d208 (47:5208) INCBIN "baserom.gbc",$11d208,$11d2ee - $11d208 ; known jump sources: 11d130 (47:5130), 11d171 (47:5171), 11d1ad (47:51ad), 11d1cd (47:51cd), 11d1f8 (47:51f8), 11d204 (47:5204) Function11d2ee: ; 11d2ee (47:52ee) ld hl, $cd24 and [hl] jr nz, .asm_11d316 ld a, e ld hl, $cd23 and [hl] jr z, .asm_11d30f ld hl, $e add hl, bc ld a, [hl] and a jr z, .asm_11d305 dec [hl] ret .asm_11d305 ld a, $0 ld [hld], a ld a, $1 xor [hl] ld [hl], a and a jr nz, .asm_11d316 .asm_11d30f ld hl, $7 add hl, bc xor a ld [hl], a ret .asm_11d316 ld hl, $5 add hl, bc ld a, $b0 sub [hl] ld hl, $7 add hl, bc ld [hl], a ret Function11d323: ; 11d323 ld a, [rSVBK] push af ld a, $5 ld [rSVBK], a ld hl, $533a ld de, Unkn1Pals ld bc, $0080 call CopyBytes pop af ld [rSVBK], a ret ; 11d33a INCBIN "baserom.gbc",$11d33a,$11d3ba - $11d33a Function11d3ba: ; 11d3ba ld a, [rSVBK] push af ld hl, BattleMonSpclDef ld a, $0 ld [$cd2d], a ld [hli], a ld a, $d8 ld [$cd2e], a ld [hl], a ld a, $fe ld [$cd2f], a ld a, $54 ld [$cd30], a ld a, $a8 ld [$cd31], a ld a, $c6 ld [$cd32], a ld a, $4a ld [$cd33], a ld a, $c6 ld [$cd34], a ld hl, $723c ld a, $2d Function11d3ef: ; 11d3ef push af ld a, [hli] ld e, a ld a, [hli] ld d, a ld a, [hli] ld c, a ld a, [hli] ld b, a push hl ld hl, Unkn1Pals add hl, de ld a, [$cd2d] ld e, a ld a, [$cd2e] ld d, a push bc .asm_11d406 ld a, $3 ld [rSVBK], a ld a, [hli] push af ld a, $5 ld [rSVBK], a pop af ld [de], a inc de ld a, $3 ld [rSVBK], a ld a, [hli] push af ld a, $5 ld [rSVBK], a pop af ld [de], a inc de dec bc ld a, c or b jr nz, .asm_11d406 ld a, [$cd2f] ld l, a ld a, [$cd30] ld h, a ld a, [hli] ld c, a ld a, [hli] ld b, a ld a, l ld [$cd2f], a ld a, h ld [$cd30], a push bc pop hl ld c, $0 .asm_11d43d ld a, [hl] cp $ff jr z, .asm_11d453 call Function11d493 jr nz, .asm_11d44a inc hl jr .asm_11d43d .asm_11d44a ld a, [hli] ld [de], a inc de xor a ld [de], a inc de inc c jr .asm_11d43d .asm_11d453 pop hl ld b, $0 add hl, bc push hl pop bc ld a, [$cd31] ld l, a ld a, [$cd32] ld h, a ld a, c ld [hli], a ld a, b ld [hli], a ld a, l ld [$cd31], a ld a, h ld [$cd32], a ld a, [$cd33] ld l, a ld a, [$cd34] ld h, a ld a, e ld [$cd2d], a ld [hli], a ld a, d ld [$cd2e], a ld [hli], a ld a, l ld [$cd33], a ld a, h ld [$cd34], a pop hl pop af dec a jr z, .asm_11d48f jp Function11d3ef .asm_11d48f pop af ld [rSVBK], a ret ; 11d493 Function11d493: ; 11d493 push hl push bc push de dec a ld hl, rSVBK ld e, $1 ld [hl], e call CheckSeenMon ld hl, rSVBK ld e, $5 ld [hl], e pop de pop bc pop hl ret ; 11d4aa Function11d4aa: ; 11d4aa ld a, [rSVBK] push af ld a, $3 ld [rSVBK], a ld hl, $5aac ld bc, $7220 xor a ld [$cd2d], a inc a ld [$cd2e], a ld a, $e .asm_11d4c1 push af ld a, [hli] ld e, a ld a, [hli] ld d, a push hl ld hl, $0005 add hl, de ld a, [bc] inc bc inc bc push bc .asm_11d4cf push af push hl ld a, [hli] ld e, a ld a, [hl] ld d, a ld hl, Unkn1Pals add hl, de ld a, [$cd2d] ld [hli], a inc a ld [$cd2d], a ld a, [$cd2e] ld [hl], a pop hl ld de, $0008 add hl, de pop af dec a jr nz, .asm_11d4cf ld hl, $cd2d xor a ld [hli], a inc [hl] pop bc pop hl pop af dec a jr nz, .asm_11d4c1 pop af ld [rSVBK], a ret ; 11d4fe INCBIN "baserom.gbc",$11d4fe,$11f686 - $11d4fe SECTION "bank5B", ROMX, BANK[$5B] INCBIN "baserom.gbc",$16c000,$16d421 - $16c000 Function16d421: ; 16d421 ld de, $4fc1 ld hl, VTiles2 ld bc, $5b46 call Get2bpp ret ; 16d42e Function16d42e: ; 16d42e ld hl, $5465 ld de, TileMap ld bc, $0168 call CopyBytes ret ; 16d43b INCBIN "baserom.gbc",$16d43b,$16d61d - $16d43b Function16d61d: ; 16d61d ld h, d ld l, e push bc push hl call Function16d640 pop hl pop bc ld de, $0939 add hl, de inc b inc b inc c inc c ld a, $7 .asm_16d630 push bc push hl .asm_16d632 ld [hli], a dec c jr nz, .asm_16d632 pop hl ld de, $0014 add hl, de pop bc dec b jr nz, .asm_16d630 ret ; 16d640 Function16d640: ; 16d640 push hl ld a, $30 ld [hli], a inc a call Function16d66d inc a ld [hl], a pop hl ld de, $0014 add hl, de .asm_16d64f push hl ld a, $33 ld [hli], a ld a, $7f call Function16d66d ld [hl], $34 pop hl ld de, $0014 add hl, de dec b jr nz, .asm_16d64f ld a, $35 ld [hli], a ld a, $36 call Function16d66d ld [hl], $37 ret ; 16d66d Function16d66d: ; 16d66d ld d, c .asm_16d66e ld [hli], a dec d jr nz, .asm_16d66e ret ; 16d673 Function16d673: ; 16d673 call Function16d696 call Function16d6ae callba Function49856 callba Functionfb60d ld hl, $c5fe ld de, $568f call PlaceString ret ; 16d68f INCBIN "baserom.gbc",$16d68f,$16d696 - $16d68f Function16d696: ; 16d696 call Function16d421 ret ; 16d69a Function16d69a: ; 16d69a ld de, $52c1 ld hl, $9760 ld bc, $5b08 call Get2bpp ret ; 16d6a7 Function16d6a7: ; 16d6a7 callba Function49811 ret ; 16d6ae Function16d6ae: ; 16d6ae call Function16d42e ld hl, $55cd ld de, TileMap ld bc, $0028 call CopyBytes ld hl, $55f5 ld de, $c5e0 ld bc, $0028 call CopyBytes ret ; 16d6ca Function16d6ca: ; 16d6ca call Function16d61d ret ; 16d6ce Function16d6ce: ; 16d6ce call Function1d6e call Function16d6e1 callba Function87d call Function1d7d call Function3200 ret ; 16d6e1 Function16d6e1: ; 16d6e1 ld hl, $c56c ld b, $1 ld c, $a ld a, $10 call Predef ld hl, $c581 ld de, $5701 call PlaceString call WaitBGMap call Function3200 ld c, $32 jp DelayFrames ; 16d701 INCBIN "baserom.gbc",$16d701,$16d70c - $16d701 Function16d70c: ; 16d70c call Function16d725 call Function16d713 ret ; 16d713 Function16d713: ; 16d713 push bc push af ld a, [$ffa9] and $f0 ld b, a ld a, [hJoyPressed] and $f or b ld b, a pop af ld a, b pop bc ld d, a ret ; 16d725 Function16d725: ; 16d725 ld hl, $cfa6 res 7, [hl] ld a, [hBGMapMode] push af call Function16d734 pop af ld [hBGMapMode], a ret ; 16d734 Function16d734: ; 16d734 .asm_16d734 call Function16d77a call Function16d759 call Function16d76a jr nc, .asm_16d758 callba Function24270 jr c, .asm_16d758 ld a, [$cfa5] bit 7, a jr nz, .asm_16d758 call Function16d713 ld b, a ld a, [$cfa8] and b jr z, .asm_16d734 .asm_16d758 ret ; 16d759 Function16d759: ; 16d759 ld a, [hOAMUpdate] push af ld a, $1 ld [hOAMUpdate], a call WaitBGMap pop af ld [hOAMUpdate], a xor a ld [hBGMapMode], a ret ; 16d76a Function16d76a: ; 16d76a .asm_16d76a call RTC call Function16d7e7 ret c ld a, [$cfa5] bit 7, a jr z, .asm_16d76a and a ret ; 16d77a Function16d77a: ; 16d77a ld hl, $cfac ld a, [hli] ld h, [hl] ld l, a ld a, [hl] cp $1f jr nz, .asm_16d792 ld a, [$cfab] ld [hl], a push hl push bc ld bc, $000b add hl, bc ld [hl], a pop bc pop hl .asm_16d792 ld a, [$cfa1] ld b, a ld a, [$cfa2] ld c, a call GetTileCoord ld a, [$cfa7] swap a and $f ld c, a ld a, [$cfa9] ld b, a xor a dec b jr z, .asm_16d7b1 .asm_16d7ad add c dec b jr nz, .asm_16d7ad .asm_16d7b1 ld c, $14 call AddNTimes ld a, [$cfa7] and $f ld c, a ld a, [$cfaa] ld b, a xor a dec b jr z, .asm_16d7c8 .asm_16d7c4 add c dec b jr nz, .asm_16d7c4 .asm_16d7c8 ld c, a add hl, bc ld a, [hl] cp $1f jr z, .asm_16d7de ld [$cfab], a ld [hl], $1f push hl push bc ld bc, $000b add hl, bc ld [hl], $1f pop bc pop hl .asm_16d7de ld a, l ld [$cfac], a ld a, h ld [$cfad], a ret ; 16d7e7 Function16d7e7: ; 16d7e7 ld a, [$cfa5] bit 6, a jr z, .asm_16d7f4 callba Function8cf62 .asm_16d7f4 call Functiona57 call Function16d713 and a ret z scf ret ; 16d7fe SECTION "bank5C", ROMX, BANK[$5C] INCBIN "baserom.gbc",$170000,$1700b0 - $170000 Function1700b0: ; 1700b0 call Function17021e callba Function118121 ret ; 1700ba Function1700ba: ; 1700ba call Function17021e callba Function11811a ret ; 1700c4 INCBIN "baserom.gbc",$1700c4,$170114 - $1700c4 Function170114: ; 170114 call Function17021e call Function170121 callba Function11805f ret ; 170121 Function170121: ; 170121 ld a, $5 call GetSRAMBank ld hl, $a948 ld de, EnemyMoveAnimation ld bc, $00f6 call CopyBytes call CloseSRAM call Function170c8b ret ; 170139 INCBIN "baserom.gbc",$170139,$170215 - $170139 Function170215: ; 170215 xor a ld [$cf63], a call Function17022c ret ; 17021d Function17021d: ; 17021d ret ; 17021e Function17021e: ; 17021e xor a ld [$cf63], a ld [$cf64], a ld [$cf65], a ld [$cf66], a ret ; 17022c Function17022c: ; 17022c .asm_17022c call Function17023a call DelayFrame ld a, [$cf63] cp $1 jr nz, .asm_17022c ret ; 17023a Function17023a: ; 17023a ld a, [$cf63] ld e, a ld d, $0 ld hl, $4249 add hl, de add hl, de ld a, [hli] ld h, [hl] ld l, a jp [hl] ; 170249 INCBIN "baserom.gbc",$170249,$1704e1 - $170249 Function1704e1: ; 1704e1 call SpeechTextBox call FadeToMenu call Function17021e call Function1704f1 call Function2b3c ret ; 1704f1 Function1704f1: ; 1704f1 call WhiteBGMap call ClearSprites call Functionfdb .asm_1704fa call Functiona57 ld a, [$cf63] bit 7, a jr nz, .asm_17050f call Function170510 callba Function104061 jr .asm_1704fa .asm_17050f ret ; 170510 Function170510: ; 170510 ld a, [$cf63] ld e, a ld d, $0 ld hl, $451f add hl, de add hl, de ld a, [hli] ld h, [hl] ld l, a jp [hl] ; 17051f INCBIN "baserom.gbc",$17051f,$170687 - $17051f Function170687: ; 170687 ld a, [ScriptVar] ld e, a ld d, 0 ld hl, Jumptable_170696 add hl, de add hl, de ld a, [hli] ld h, [hl] ld l, a jp [hl] ; 170696 ; no known jump sources Jumptable_170696: ; 170696 (5c:4696) dw Function17075f dw Function170788 dw Function170778 dw Function170799 dw Function17079d dw Function1707ac dw Function1707f4 dw Function170868 dw Function170881 dw Function17089a dw Function1708b1 dw Function1708b9 dw Function1708c8 dw Function1708f0 dw Function17093c dw Function1709aa dw Function1709bb dw Function170a9c dw Function170aa0 dw Function170aaf dw Function170abe dw Function170ad7 dw Function170807 dw Function17081d dw Function170ae8 dw Function170b16 dw Function1706d6 dw Function1706ee dw Function17071b dw Function170729 dw Function17073e dw Function170737 ; no known jump sources Function1706d6: ; 1706d6 (5c:46d6) ld a, $1 call GetSRAMBank ld a, $ff ld hl, $be48 ld bc, $7 call ByteFill xor a ld [$be46], a call CloseSRAM ret ; no known jump sources Function1706ee: ; 1706ee (5c:46ee) ld a, $1 call GetSRAMBank ld a, [$be50] call CloseSRAM ld [ScriptVar], a ; $c2dd ld hl, NumItems ; $d892 (aliases: TMsHMsEnd) ld a, [hli] cp $14 ret c ld b, $14 ld a, [ScriptVar] ; $c2dd ld c, a .asm_170709 ld a, [hli] cp c jr nz, .asm_170711 ld a, [hl] cp $5f ret c .asm_170711 inc hl dec b jr nz, .asm_170709 ld a, $12 ld [ScriptVar], a ; $c2dd ret ; no known jump sources Function17071b: ; 17071b (5c:471b) ld a, $1 call GetSRAMBank ld a, $3 ld [$be45], a call CloseSRAM ret ; no known jump sources Function170729: ; 170729 (5c:4729) ld a, $1 call GetSRAMBank ld a, $4 ld [$be45], a call CloseSRAM ret ; no known jump sources Function170737: ; 170737 (5c:4737) callba Function14dbb ret ; known jump sources: 17074f (5c:474f) Function17073e: ; 17073e (5c:473e) call Random ld a, [hRandomAdd] ; $ff00+$e1 and $7 cp $6 jr c, .asm_17074b sub $6 .asm_17074b add $1a cp $1e jr z, Function17073e push af ld a, $1 call GetSRAMBank pop af ld [$be50], a call CloseSRAM ret ; no known jump sources Function17075f: ; 17075f (5c:475f) call Function17089a ld a, [ScriptVar] ; $c2dd and a ret z ld a, $1 call GetSRAMBank ld a, [$be4f] and $2 ld [ScriptVar], a ; $c2dd call CloseSRAM ret ; no known jump sources Function170778: ; 170778 (5c:4778) ld hl, $be45 ld a, $1 call GetSRAMBank ld a, [hl] ld [ScriptVar], a ; $c2dd call CloseSRAM ret ; no known jump sources Function170788: ; 170788 (5c:4788) ld a, $1 call GetSRAMBank ld a, [$be4f] or $2 ld [$be4f], a call CloseSRAM ret ; no known jump sources Function170799: ; 170799 (5c:4799) ld c, $1 jr asm_17079f ; no known jump sources Function17079d: ; 17079d (5c:479d) ld c, $0 asm_17079f: ; 17079f (5c:479f) ld a, $1 call GetSRAMBank ld a, c ld [$be45], a call CloseSRAM ret ; no known jump sources Function1707ac: ; 1707ac (5c:47ac) ld a, $5 call GetSRAMBank ld a, [$aa8c] ld b, a ld a, [$be46] ld [ScriptVar], a ; $c2dd call CloseSRAM and a ret z ld a, b cp $2 jr nc, .asm_1707ef push bc call UpdateTime pop bc ld a, $5 call GetSRAMBank ld a, [$aa8b] call CloseSRAM ld c, a ld a, [CurDay] ; $d4cb sub c jr c, .asm_1707e5 cp $8 jr nc, .asm_1707ef ld a, b and a jr nz, .asm_1707ef ret .asm_1707e5 ld hl, CurDay ; $d4cb ld a, $8c sub c add [hl] cp $8 ret c .asm_1707ef ld a, $8 ld [ScriptVar], a ; $c2dd ; no known jump sources Function1707f4: ; 1707f4 (5c:47f4) ld a, $5 call GetSRAMBank xor a ld [$be46], a ld [$aa8b], a ld [$aa8c], a call CloseSRAM ret ; no known jump sources Function170807: ; 170807 (5c:4807) call UpdateTime ld a, $5 call GetSRAMBank ld a, [CurDay] ; $d4cb ld [$b2f9], a xor a ld [$b2fa], a call CloseSRAM ret ; no known jump sources Function17081d: ; 17081d (5c:481d) xor a ld [ScriptVar], a ; $c2dd ld a, $5 call GetSRAMBank ld a, [$b2f9] ld c, a ld a, [$b2fa] ld b, a call CloseSRAM cp $2 jr nc, .asm_170853 push bc call UpdateTime pop bc ld a, [CurDay] ; $d4cb sub c jr c, .asm_170849 cp $b jr nc, .asm_170853 ld a, b and a jr nz, .asm_170853 ret .asm_170849 ld hl, CurDay ; $d4cb ld a, $8c sub c add [hl] cp $b ret c .asm_170853 ld a, $1 ld [ScriptVar], a ; $c2dd ld a, $5 call GetSRAMBank xor a ld [$b2f9], a ld [$b2fa], a call CloseSRAM ret ; no known jump sources Function170868: ; 170868 (5c:4868) ld a, $1 call GetSRAMBank ld a, [rSVBK] ; $ff00+$70 push af ld a, $3 ld [rSVBK], a ; $ff00+$70 ld a, [$d800] ld [$be47], a pop af ld [rSVBK], a ; $ff00+$70 call CloseSRAM ret ; no known jump sources Function170881: ; 170881 (5c:4881) ld a, $1 call GetSRAMBank ld a, [rSVBK] ; $ff00+$70 push af ld a, $3 ld [rSVBK], a ; $ff00+$70 ld a, [$be47] ld [$d800], a pop af ld [rSVBK], a ; $ff00+$70 call CloseSRAM ret Function17089a: ; 17089a ld a, [$cfcd] and a jr z, .asm_1708ad callba Function14bcb jr z, .asm_1708ab xor a jr .asm_1708ad .asm_1708ab ld a, $1 .asm_1708ad ld [ScriptVar], a ret ; 1708b1 ; no known jump sources Function1708b1: ; 1708b1 (5c:48b1) xor a ld [MusicFade], a ; $c2a7 call MaxVolume ret ; no known jump sources Function1708b9: ; 1708b9 (5c:48b9) ld a, $1 call GetSRAMBank ld a, [$be3c] ld [ScriptVar], a ; $c2dd call CloseSRAM ret ; no known jump sources Function1708c8: ; 1708c8 (5c:48c8) call UpdateTime ld a, $5 call GetSRAMBank ld a, [CurDay] ; $d4cb ld [$aa8b], a xor a ld [$aa8c], a ld a, [$aa5d] cp $2 jr nc, .asm_1708ec ld a, [CurDay] ; $d4cb ld [$aa48], a ld a, $1 ld [$aa47], a .asm_1708ec call CloseSRAM ret ; no known jump sources Function1708f0: ; 1708f0 (5c:48f0) xor a ld [ScriptVar], a ; $c2dd call UpdateTime ld a, $5 call GetSRAMBank ld a, [$aa48] ld c, a ld a, [$aa47] call CloseSRAM and a ret z ld hl, CurDay ; $d4cb ld a, c cp [hl] jr nz, Function170923 ld a, $5 call GetSRAMBank ld a, [$aa5d] call CloseSRAM cp $5 ret c ld a, $1 ld [ScriptVar], a ; $c2dd ret Function170923: ; 170923 ld a, $5 call GetSRAMBank xor a ld [$aa48], a ld [$aa47], a ld hl, $aa5d ld bc, $0011 call ByteFill call CloseSRAM ret ; 17093c ; no known jump sources Function17093c: ; 17093c (5c:493c) xor a ld [ScriptVar], a ; $c2dd ld a, $81 ld [CurItem], a ; $d106 ld hl, NumItems ; $d892 (aliases: TMsHMsEnd) call CheckItem ret nc ld a, [PartyCount] ; $dcd7 ld b, $0 ld c, a ld hl, PartySpecies ; $dcd8 .asm_170955 ld a, [hli] cp $fd jr nz, .asm_17099f push hl ld hl, PartyMonOT ; $ddff (aliases: PartyMon1OT) ld de, $6 ld a, b and a jr z, .asm_170969 .asm_170965 add hl, de dec a jr nz, .asm_170965 .asm_170969 ld de, $49a4 ld a, $6 .asm_17096e push af ld a, [de] inc de cp [hl] inc hl jr nz, .asm_17099d pop af dec a jr nz, .asm_17096e dec hl dec hl dec hl dec hl ld a, $50 ld [hli], a ld [hli], a pop hl ld a, $81 ld [CurItem], a ; $d106 ld a, $1 ld [$d10c], a ld a, $ff ld [$d107], a ld hl, NumItems ; $d892 (aliases: TMsHMsEnd) call TossItem ld a, $1 ld [ScriptVar], a ; $c2dd ret .asm_17099d pop af pop hl .asm_17099f inc b dec c jr nz, .asm_170955 ret ; 1709a4 (5c:49a4) INCBIN "baserom.gbc",$1709a4,$1709aa - $1709a4 ; no known jump sources Function1709aa: ; 1709aa (5c:49aa) ld a, [rSVBK] ; $ff00+$70 push af ld a, $3 ld [rSVBK], a ; $ff00+$70 ld a, [$d090] ld [ScriptVar], a ; $c2dd pop af ld [rSVBK], a ; $ff00+$70 ret ; no known jump sources Function1709bb: ; 1709bb (5c:49bb) xor a ld [ScriptVar], a ; $c2dd ld a, $5 call GetSRAMBank ld a, [$a800] call CloseSRAM cp $6 jr nc, .asm_1709da ld e, a ld d, $0 ld hl, $49e7 add hl, de add hl, de ld a, [hli] ld h, [hl] ld l, a jp [hl] .asm_1709da ld a, $5 call GetSRAMBank xor a ld [$a800], a call CloseSRAM ret ; 1709e7 (5c:49e7) INCBIN "baserom.gbc",$1709e7,$170a9c - $1709e7 ; no known jump sources Function170a9c: ; 170a9c (5c:4a9c) ld c, $0 jr asm_170aa2 ; no known jump sources Function170aa0: ; 170aa0 (5c:4aa0) ld c, $1 asm_170aa2: ; 170aa2 (5c:4aa2) ld a, $5 call GetSRAMBank ld a, c ld [$aa8d], a call CloseSRAM ret ; no known jump sources Function170aaf: ; 170aaf (5c:4aaf) ld a, $5 call GetSRAMBank ld a, [$aa8d] ld [ScriptVar], a ; $c2dd call CloseSRAM ret ; no known jump sources Function170abe: ; 170abe (5c:4abe) call Function17089a ld a, [ScriptVar] ; $c2dd and a ret z ld a, $1 call GetSRAMBank ld a, [$be4f] and $1 ld [ScriptVar], a ; $c2dd call CloseSRAM ret ; no known jump sources Function170ad7: ; 170ad7 (5c:4ad7) ld a, $1 call GetSRAMBank ld a, [$be4f] or $1 ld [$be4f], a call CloseSRAM ret ; no known jump sources Function170ae8: ; 170ae8 (5c:4ae8) ld a, $5 call GetSRAMBank ld a, [$b2fb] call CloseSRAM ld c, $a call SimpleDivide ld a, b ld [$cd4f], a xor a ld [ScriptVar], a ; $c2dd callba Function119d93 ret nc ld a, $5 call GetSRAMBank ld a, [$b2fb] call CloseSRAM ld [ScriptVar], a ; $c2dd ret ; no known jump sources Function170b16: ; 170b16 (5c:4b16) ld a, $5 call GetSRAMBank ld a, [$b2fb] call CloseSRAM ld c, $a call SimpleDivide ld a, b ld [$cd4f], a xor a ld [ScriptVar], a ; $c2dd callba Function119dd1 ret nc ld a, $5 call GetSRAMBank ld a, [$b2fb] call CloseSRAM ld [ScriptVar], a ; $c2dd ret Function170b44: ; 170b44 callba Function1f8000 ld a, [rSVBK] push af ld a, $3 ld [rSVBK], a ld hl, $d10a ld a, [hl] dec a ld c, a ld b, $0 pop af ld [rSVBK], a ld hl, $4b90 add hl, bc ld a, [hl] ld [$cd49], a ld a, [ScriptVar] dec a sla a ld e, a sla a sla a sla a ld c, a ld b, $0 ld d, $0 ld hl, MapObjects add hl, bc inc hl ld a, [$cd49] ld [hl], a ld hl, UsedSprites add hl, de ld [hli], a ld [$ffbd], a ld a, [hl] ld [$ffbe], a callba Function143c8 ret ; 170b90 INCBIN "baserom.gbc",$170b90,$170bd2 - $170b90 Function170bd2: ; 170bd2 ret ; 170bd3 Function170bd3: ; 170bd3 callba Function8b201 jr c, .asm_170bde xor a jr .asm_170be0 .asm_170bde ld a, $1 .asm_170be0 ld [ScriptVar], a ret ; 170be4 INCBIN "baserom.gbc",$170be4,$170c8b - $170be4 Function170c8b: ; 170c8b ld hl, LastPlayerCounterMove ld b, $5 .asm_170c90 ld a, [hl] xor $ff ld [hli], a dec b jr nz, .asm_170c90 ret ; 170c98 INCBIN "baserom.gbc",$170c98,$1719c8 - $170c98 ; no known jump sources Function1719c8: ; 1719c8 (5c:59c8) ld a, [$FF00+$aa] push af ld a, $1 ld [$FF00+$aa], a call Function1719d6 pop af ld [$FF00+$aa], a ret ; known jump sources: 1719cf (5c:59cf) Function1719d6: ; 1719d6 (5c:59d6) callba Function1183cb call Function1719ed ld a, [rSVBK] ; $ff00+$70 push af ld a, $5 ld [rSVBK], a ; $ff00+$70 call Function171a11 pop af ld [rSVBK], a ; $ff00+$70 ret ; known jump sources: 1719dc (5c:59dc) Function1719ed: ; 1719ed (5c:59ed) xor a ld [$cd49], a ld [$cd4a], a dec a ld [$cd4b], a call WhiteBGMap call ClearSprites callba Function171d2b callba Function104061 callba Function8cf53 ret ; known jump sources: 1719e6 (5c:59e6), 171a2a (5c:5a2a) Function171a11: ; 171a11 (5c:5a11) call Functiona57 ld a, [$cd49] bit 7, a jr nz, .asm_171a2c call Function171a36 callba Function8cf69 callba Function104061 jr Function171a11 .asm_171a2c callba Function8cf53 call ClearSprites ret ; known jump sources: 171a1b (5c:5a1b) Function171a36: ; 171a36 (5c:5a36) ld a, [$cd49] ld e, a ld d, 0 ld hl, Jumptable_171a45 add hl, de add hl, de ld a, [hli] ld h, [hl] ld l, a jp [hl] ; no known jump sources Jumptable_171a45: ; 171a45 (5c:5a45) dw Function171a95 dw Function171ac9 dw Function171a5d dw Function171ad7 dw Function171a5d dw Function171aec dw Function171b4b dw Function171b85 dw Function171bcc dw Function171c2c dw Function171c39 dw Function171c41 ; no known jump sources Function171a5d: ; 171a5d (5c:5a5d) ld a, [$c821] bit 1, a jr nz, .asm_171a6a bit 0, a ret nz jp Function171c66 .asm_171a6a ld a, $0 call Function3e32 ld [$c300], a ld a, l ld [$c301], a ld a, h ld [$c302], a ld a, $a call Function3e32 ld a, [rSVBK] ; $ff00+$70 push af ld a, $1 ld [rSVBK], a ; $ff00+$70 callba Function118452 pop af ld [rSVBK], a ; $ff00+$70 ld a, $a ld [$cd49], a ret ; no known jump sources Function171a95: ; 171a95 (5c:5a95) callba Function171ccd ld hl, $c542 ld de, $5aa7 call PlaceString jp Function171c66 ; 171aa7 (5c:5aa7) INCBIN "baserom.gbc",$171aa7,$171ac9 - $171aa7 ; no known jump sources Function171ac9: ; 171ac9 (5c:5ac9) ld de, $cd81 ld hl, $5c ld a, $2 call Function3e32 jp Function171c66 ; no known jump sources Function171ad7: ; 171ad7 (5c:5ad7) xor a ld hl, EnemyMoveAnimation ; $c608 (aliases: EnemyMoveStruct) ld bc, $66 call ByteFill ld de, EnemyMoveAnimation ; $c608 (aliases: EnemyMoveStruct) ld a, $c call Function3e32 jp Function171c66 ; no known jump sources Function171aec: ; 171aec (5c:5aec) ld a, [rSVBK] ; $ff00+$70 push af ld a, $1 ld [rSVBK], a ; $ff00+$70 callba Function118452 pop af ld [rSVBK], a ; $ff00+$70 ld hl, $c51a ld a, $8 .asm_171b01 push af push hl xor a ld bc, $10 call ByteFill pop hl ld de, $14 add hl, de pop af dec a jr nz, .asm_171b01 ld hl, $c52e ld a, $3 ld de, EnemyMoveAnimation ; $c608 (aliases: EnemyMoveStruct) .asm_171b1b push af push hl ld a, [de] and a jr z, .asm_171b34 ld a, [$cd4b] inc a ld [$cd4b], a push hl call Function171b42 pop hl ld bc, $ffec add hl, bc call Function171b42 .asm_171b34 pop hl ld bc, $14 add hl, bc add hl, bc add hl, bc pop af dec a jr nz, .asm_171b1b jp Function171c66 ; known jump sources: 171b29 (5c:5b29), 171b31 (5c:5b31), 171b49 (5c:5b49) Function171b42: ; 171b42 (5c:5b42) ld a, [de] inc de and a ret z sub $20 ld [hli], a jr Function171b42 ; no known jump sources Function171b4b: ; 171b4b (5c:5b4b) ld de, $4010 ld a, $1d call Function3b2a ld hl, $c add hl, bc ld a, $8 ld [hl], a ld de, $4098 ld a, $1d call Function3b2a ld hl, $c add hl, bc ld a, $9 ld [hl], a ld de, $8a70 ld a, $1d call Function3b2a ld hl, $c add hl, bc ld a, $a ld [hl], a ld a, $4 ld [$cd23], a ld a, $8 ld [$cd24], a jp Function171c66 ; no known jump sources Function171b85: ; 171b85 (5c:5b85) ld hl, hJoyPressed ; $ffa7 ld a, [hl] and $2 jp nz, Function171b9f ld a, [hl] and $1 jp nz, Function171bbd ld a, [hl] and $40 jr nz, asm_171ba5 ld a, [hl] and $80 jr nz, asm_171baf ret ; known jump sources: 171b8b (5c:5b8b) Function171b9f: ; 171b9f (5c:5b9f) ld a, $80 ld [$cd49], a ret asm_171ba5: ; 171ba5 (5c:5ba5) ld a, [$cd4a] and a ret z dec a ld [$cd4a], a ret asm_171baf: ; 171baf (5c:5baf) ld a, [$cd4b] ld c, a ld a, [$cd4a] cp c ret z inc a ld [$cd4a], a ret ; known jump sources: 171b91 (5c:5b91) Function171bbd: ; 171bbd (5c:5bbd) call PlayClickSFX ld a, $8 ld [$cd23], a xor a ld [$cd24], a jp Function171c66 ; no known jump sources Function171bcc: ; 171bcc (5c:5bcc) ld hl, hJoyPressed ; $ffa7 ld a, [hl] and $2 jp nz, Function171bdc ld a, [hl] and $1 jp nz, Function171beb ret ; known jump sources: 171bd2 (5c:5bd2) Function171bdc: ; 171bdc (5c:5bdc) ld a, $4 ld [$cd23], a ld a, $8 ld [$cd24], a ld hl, $cd49 dec [hl] ret ; known jump sources: 171bd8 (5c:5bd8) Function171beb: ; 171beb (5c:5beb) ld a, $5 call GetSRAMBank ld a, [$cd4a] ld [$aa4a], a call CloseSRAM ld hl, $5c6b call LoadMenuDataHeader call Function1cbb call Function1cfd callba Function104061 ld hl, $c5b9 ld de, $5c73 call PlaceString ld a, [$cd4a] cp $2 jr z, .asm_171c1f ld a, $8 jr .asm_171c21 .asm_171c1f ld a, $c .asm_171c21 ld [$cd24], a ld a, $1e ld [$cd4c], a call Function171c66 ; no known jump sources Function171c2c: ; 171c2c (5c:5c2c) ld hl, $cd4c dec [hl] ret nz call Function1c07 call WhiteBGMap jr asm_171c60 ; no known jump sources Function171c39: ; 171c39 (5c:5c39) ld a, $28 ld [$cd4c], a call Function171c66 ; no known jump sources Function171c41: ; 171c41 (5c:5c41) ld hl, $cd4c dec [hl] ret nz call WhiteBGMap callba Function106462 callba Function106464 ld a, $2 ld [$c303], a callba Function17f555 asm_171c60: ; 171c60 (5c:5c60) ld a, $80 ld [$cd49], a ret ; known jump sources: 171a67 (5c:5a67), 171aa4 (5c:5aa4), 171ad4 (5c:5ad4), 171ae9 (5c:5ae9), 171b3f (5c:5b3f), 171b82 (5c:5b82), 171bc9 (5c:5bc9), 171c29 (5c:5c29), 171c3e (5c:5c3e) Function171c66: ; 171c66 (5c:5c66) ld hl, $cd49 inc [hl] ret ; 171c6b (5c:5c6b) INCBIN "baserom.gbc",$171c6b,$171c87 - $171c6b ; no known jump sources Function171c87: ; 171c87 (5c:5c87) call DisableLCD ld hl, $5db1 ld de, $9000 ld bc, $6e0 call CopyBytes ld hl, $6abd ld de, $8000 call Decompress call EnableLCD ld hl, $6491 ld de, TileMap ; $c4a0 (aliases: SpritesEnd) ld bc, $168 call CopyBytes ld hl, $67ed ld de, AttrMap ; $cdd9 ld bc, $168 call CopyBytes ld hl, $c4cb ld de, $6e31 call PlaceString ld hl, $c5e3 ld de, $6e3f call PlaceString ret ; no known jump sources Function171ccd: ; 171ccd (5c:5ccd) ld a, [rSVBK] ; $ff00+$70 push af ld a, $5 ld [rSVBK], a ; $ff00+$70 ld hl, $5d71 ld de, Unkn1Pals ; $d000 ld bc, $40 call CopyBytes ld hl, MovementAnimation ; $d042 ld a, $ff ld [hli], a ld a, $7f ld [hl], a call Function32f9 pop af ld [rSVBK], a ; $ff00+$70 ret ; no known jump sources Function171cf0: ; 171cf0 (5c:5cf0) xor a ld hl, $c5d0 ld [hli], a ld [hli], a ld a, [$cd4b] xor $1 ld [$cd4b], a and a jr nz, .asm_171d16 ld hl, $651d ld de, $c52c ld bc, $8c call CopyBytes ld hl, $c5e3 ld de, $6e3f jp PlaceString .asm_171d16 ld hl, $65f9 ld de, $c52c ld bc, $8c call CopyBytes ld hl, $c5e3 ld de, $6e4e jp PlaceString ; no known jump sources Function171d2b: ; 171d2b (5c:5d2b) call DisableLCD ld hl, $5db1 ld de, $9000 ld bc, $6e0 call CopyBytes ld hl, $6abd ld de, $8000 call Decompress call EnableLCD ld hl, $6685 ld de, TileMap ; $c4a0 (aliases: SpritesEnd) ld bc, $168 call CopyBytes ld hl, $6955 ld de, AttrMap ; $cdd9 ld bc, $168 call CopyBytes ld hl, $c4ca ld de, $6e5d call PlaceString ld hl, $c5ee ld de, $6e58 call PlaceString ret ; 171d71 (5c:5d71) INCBIN "baserom.gbc",$171d71,$172e78 - $171d71 ; no known jump sources Function172e78: ; 172e78 (5c:6e78) ld a, $7f ld hl, TileMap ; $c4a0 (aliases: SpritesEnd) ld bc, $168 call ByteFill ld a, $7 ld hl, AttrMap ; $cdd9 ld bc, $168 call ByteFill call DisableLCD ld hl, $6f1f ld de, $9000 ld bc, $610 call CopyBytes call EnableLCD ld hl, $73af ld de, TileMap ; $c4a0 (aliases: SpritesEnd) ld bc, $168 call CopyBytes ld hl, $7517 ld de, AttrMap ; $cdd9 ld bc, $168 call CopyBytes ret ; 172eb9 (5c:6eb9) Function172eb9: ld a, [rSVBK] ; $ff00+$70 push af ld a, $5 ld [rSVBK], a ; $ff00+$70 ld hl, $6edf ld de, Unkn1Pals ; $d000 ld bc, $40 call CopyBytes ld hl, $6edf ld de, BGPals ; $d080 ld bc, $40 call CopyBytes call Function32f9 pop af ld [rSVBK], a ; $ff00+$70 ret ; 172edf (5c:6edf) INCBIN "baserom.gbc",$172edf,$17367f - $172edf SECTION "bank5D", ROMX, BANK[$5D] INCLUDE "text/phone/extra3.asm" SECTION "bank5E", ROMX, BANK[$5E] Function178000: callba DrawPlayerHUD ld hl, PlayerHPPal ; $cd99 call SetHPPal callba Function3e043 ld hl, EnemyHPPal ; $cd9a call SetHPPal callba Function3ee27 ret ; 17801f (5e:401f) SECTION "bank5F", ROMX, BANK[$5F] Function17c000: ; 17c000 call DisableLCD ld hl, VTiles2 ld bc, $310 xor a call ByteFill call Functione51 call Functione5f ld hl, HaveWantMap ld de, TileMap ld bc, AttrMap ld a, SCREEN_HEIGHT .y push af ld a, SCREEN_WIDTH push hl .x push af ld a, [hli] ld [de], a inc de ld a, [hli] ld [bc], a inc bc pop af dec a jr nz, .x pop hl push bc ld bc, BG_MAP_WIDTH * 2 add hl, bc pop bc pop af dec a jr nz, .y ld a, [rSVBK] push af ld a, 5 ; BANK(Unkn1Pals) ld [rSVBK], a ld hl, HaveWantPals ld de, Unkn1Pals ld bc, $80 call CopyBytes pop af ld [rSVBK], a ld hl, MobileSelectGFX ld de, $8300 ld bc, $200 call CopyBytes ld a, 1 ld [rVBK], a ld hl, HaveWantGFX ld de, VTiles2 ld bc, $800 call CopyBytes ld hl, HaveWantGFX + $800 ld de, VTiles1 ld bc, $100 call CopyBytes xor a ld [rVBK], a call EnableLCD callba Function104061 ret ; 17c083 HaveWantGFX: ; 17c083 INCBIN "gfx/mobile/havewant.2bpp" MobileSelectGFX: ; 17c983 INCBIN "gfx/mobile/select.2bpp" HaveWantMap: ; 17cb83 ; Interleaved tile/palette map. INCBIN "baserom.gbc", $17cb83, $17cff3 - $17cb83 HaveWantPals: ; 17cff3 ; BG and OBJ palettes. INCBIN "baserom.gbc", $17cff3, $17d073 - $17cff3 Function17d073: ; 17d073 .asm_17d073 ld a, [de] inc de and a jr z, .asm_17d0ae cp $60 jr nc, .asm_17d0ae cp $4e jr z, .asm_17d0ae cp $50 jr z, .asm_17d0b1 cp $5 jr c, .asm_17d0ac cp $14 jr c, .asm_17d0ae cp $19 jr c, .asm_17d0ac cp $1d jr c, .asm_17d0ae cp $26 jr c, .asm_17d0ac cp $35 jr c, .asm_17d0ae cp $3a jr c, .asm_17d0ac cp $3f jr c, .asm_17d0ae cp $40 jr c, .asm_17d0ac cp $49 jr c, .asm_17d0ae .asm_17d0ac scf ret .asm_17d0ae dec c jr nz, .asm_17d073 .asm_17d0b1 and a ret ; 17d0b3 Function17d0b3: ; 17d0b3 .asm_17d0b3 ld a, [de] inc de and a jr z, .asm_17d0ee cp $60 jr nc, .asm_17d0ee cp $4e jr z, .asm_17d0ee cp $50 jr z, .asm_17d0ee cp $5 jr c, .asm_17d0ec cp $14 jr c, .asm_17d0ee cp $19 jr c, .asm_17d0ec cp $1d jr c, .asm_17d0ee cp $26 jr c, .asm_17d0ec cp $35 jr c, .asm_17d0ee cp $3a jr c, .asm_17d0ec cp $3f jr c, .asm_17d0ee cp $40 jr c, .asm_17d0ec cp $49 jr c, .asm_17d0ee .asm_17d0ec scf ret .asm_17d0ee dec c jr nz, .asm_17d0b3 and a ret ; 17d0f3 INCBIN "baserom.gbc",$17d0f3,$17d1e1 - $17d0f3 Function17d1e1: ; 17d1e1 .asm_17d1e1 ld a, [de] inc de cp $4e jr nz, .asm_17d1ea dec b jr z, .asm_17d1ef .asm_17d1ea dec c jr nz, .asm_17d1e1 and a ret .asm_17d1ef scf ret ; 17d1f1 Function17d1f1: ; 17d1f1 ld a, [CurPartySpecies] dec a call SetSeenAndCaughtMon ld a, [CurPartySpecies] cp UNOWN jr nz, .asm_17d223 ld hl, PartyMon1DVs ld a, [PartyCount] dec a ld bc, PartyMon2 - PartyMon1 call AddNTimes ld a, $2d call Predef callab Functionfba18 ld a, [$def4] and a jr nz, .asm_17d223 ld a, [UnownLetter] ld [$def4], a .asm_17d223 ret ; 17d224 Function17d224: ; 17d224 ld a, [ScriptVar] and a jr nz, .asm_17d234 ld a, $4 ld [ScriptVar], a ld hl, $526a jr .asm_17d23c .asm_17d234 ld a, $4 ld [ScriptVar], a ld hl, $528f .asm_17d23c call LoadMenuDataHeader call Function17d246 call Function1c17 ret ; 17d246 Function17d246: ; 17d246 call Function1d81 jr c, .asm_17d264 ld a, [ScriptVar] cp $5 jr nz, .asm_17d25d ld a, [$cfa9] cp $3 ret z jr c, .asm_17d25d dec a jr .asm_17d260 .asm_17d25d ld a, [$cfa9] .asm_17d260 ld [ScriptVar], a ret .asm_17d264 ld a, $4 ld [ScriptVar], a ret ; 17d26a INCBIN "baserom.gbc",$17d26a,$17d2b6 - $17d26a Function17d2b6: ; 17d2b6 call Function17d2c0 callba Function1181da ret ; 17d2c0 Function17d2c0: ; 17d2c0 xor a ld [$cf63], a ld [$cf64], a ld [$cf65], a ld [$cf66], a ret ; 17d2ce Function17d2ce: ; 17d2ce ld a, $5 call GetSRAMBank ld a, [$aa72] call CloseSRAM and a jr nz, .asm_17d2e2 ld a, $1 ld [ScriptVar], a ret .asm_17d2e2 call Function17d314 ret c call SpeechTextBox call FadeToMenu ld a, [rSVBK] push af ld a, $4 ld [rSVBK], a call Function17d370 call Function17d45a pop af ld [rSVBK], a ld de, MUSIC_MOBILE_CENTER ld a, e ld [CurMusic], a ld [MusicFadeIDLo], a ld a, d ld [MusicFadeIDHi], a call PlayMusic call Function222a call Function2b3c ret ; 17d314 Function17d314: ; 17d314 ld a, $5 call GetSRAMBank ld a, [$b1b1] call CloseSRAM cp $21 jr nc, .asm_17d354 ld a, $6 call GetSRAMBank ld l, $0 ld h, l ld de, $a006 ld a, [$a004] ld c, a ld a, [$a005] ld b, a .asm_17d336 push bc ld a, [de] inc de ld c, a ld b, $0 add hl, bc pop bc dec bc ld a, b or c jr nz, .asm_17d336 ld a, [$a002] cp l jr nz, .asm_17d354 ld a, [$a003] cp h jr nz, .asm_17d354 call CloseSRAM and a ret .asm_17d354 call CloseSRAM ld a, $5 call GetSRAMBank xor a ld hl, $aa73 ld bc, $000c call ByteFill call CloseSRAM ld a, $2 ld [ScriptVar], a scf ret ; 17d370 Function17d370: ; 17d370 xor a ld [$cd77], a ld [$cd78], a ld [$cd79], a dec a ld [$cd6c], a call WhiteBGMap call ClearSprites call Functionfdb callba Function104061 call DisableLCD ld hl, $8ee0 ld de, EnemyMoveAnimation ld bc, $0010 call CopyBytes ld a, $1 ld [rVBK], a ld hl, PokemonNewsGFX ld de, VTiles1 ld bc, $0480 call CopyBytes xor a ld hl, $97f0 ld bc, $0010 call ByteFill ld hl, EnemyMoveAnimation ld de, $8ee0 ld bc, $0010 call CopyBytes xor a ld [rVBK], a ld hl, $6b7e ld de, $9600 ld bc, $0010 call CopyBytes call EnableLCD call Function17d60b ld a, $0 ld [BGMapBuffer], a ld a, $d0 ld [$cd21], a ld a, $6 call GetSRAMBank ld hl, $a006 ld de, Unkn1Pals ld bc, $1000 call CopyBytes call CloseSRAM ret ; 17d3f6 INCBIN "baserom.gbc",$17d3f6,$17d45a - $17d3f6 Function17d45a: ; 17d45a .asm_17d45a call Functiona57 ld a, [$cd77] bit 7, a jr nz, .asm_17d46f call Function17d474 callba Function104061 jr .asm_17d45a .asm_17d46f xor a ld [ScriptVar], a ret ; 17d474 Function17d474: ; 17d474 ld a, [$cd77] ld e, a ld d, $0 ld hl, $5483 add hl, de add hl, de ld a, [hli] ld h, [hl] ld l, a jp [hl] ; 17d483 INCBIN "baserom.gbc",$17d483,$17d60b - $17d483 Function17d60b: ; 17d60b ld a, $5 call GetSRAMBank ld hl, $b1d3 ld de, EnemyMoveAnimation ld bc, $0020 call CopyBytes ld a, [$b1b1] ld c, a ld a, [$b1b2] ld b, a ld a, [$b1b3] ld l, a ld a, [$b1b4] ld h, a call CloseSRAM ld a, $6 call GetSRAMBank ld de, $c708 ld a, c and a jr z, .asm_17d684 .asm_17d63b push bc ld a, l ld [de], a inc de ld a, h ld [de], a inc de ld bc, $000a add hl, bc pop bc ld a, [hli] ld [$cd4a], a ld a, [hli] ld [$cd49], a push hl push de ld hl, EnemyMoveAnimation ld e, b ld d, $0 add hl, de ld a, [hli] ld [$cd4b], a ld a, [hl] ld [$cd4c], a pop de pop hl inc b inc b dec c dec c jr z, .asm_17d684 push bc push de ld a, [$cd49] ld c, a ld a, [$cd4a] ld b, a ld a, [$cd4b] ld e, a ld a, [$cd4c] ld d, a .asm_17d67a add hl, de dec bc ld a, c or b jr nz, .asm_17d67a pop de pop bc jr .asm_17d63b .asm_17d684 call CloseSRAM ld a, $5 call GetSRAMBank ld hl, $c708 ld de, $b1b3 ld a, [$b1b1] ld c, a ld a, [$b1b2] ld b, a call CopyBytes call CloseSRAM ret ; 17d6a1 INCBIN "baserom.gbc", $17d6a1, $17e6fe - $17d6a1 PokemonNewsGFX: ; 17e6fe INCBIN "gfx/mobile/pokemon_news.2bpp" INCBIN "baserom.gbc", $17eb7e, $17f036 - $17eb7e Function17f036:: ; 17f036 ld a, $6 call GetSRAMBank inc de .asm_17f03c call Function17f047 jr c, .asm_17f043 jr .asm_17f03c .asm_17f043 call CloseSRAM ret ; 17f047 Function17f047: ; 17f047 ld a, [de] inc de cp $50 jr z, .asm_17f05f cp $10 jr nc, .asm_17f05f dec a push de ld e, a ld d, 0 ld hl, Table17f061 add hl, de add hl, de ld a, [hli] ld h, [hl] ld l, a jp [hl] .asm_17f05f scf ret ; 17f061 Table17f061: ; 17f061 dw Function17f081 dw Function17f0f8 dw Function17f154 dw Function17f181 dw Function17f1d0 dw Function17f220 dw Function17f27b dw Function17f2cb dw Function17f2ff dw Function17f334 dw Function17f382 dw Function17f3c9 dw Function17f3f0 dw Function17f41d dw Function17f44f dw Function17f44f ; 17f081 Function17f081: ; 17f081 pop hl call Function17f524 jr c, .asm_17f09f ld de, $0004 add hl, de ld a, [hli] inc hl inc hl ld e, l ld d, h ld l, c ld h, b ld c, a ld b, $0 add hl, bc ld a, [de] cp $50 jr z, .asm_17f09d and a ret .asm_17f09d scf ret .asm_17f09f push bc ld de, $cd54 ld bc, $0007 call CopyBytes pop bc push hl push bc call Function17f4f6 pop bc ld a, [$cd54] ld e, a ld a, [$cd55] ld d, a add hl, de ld e, l ld d, h ld l, c ld h, b push hl ld a, [$cd56] ld b, a ld a, [$cd57] ld c, a call Function31a4 ld a, l ld [$cd52], a ld a, h ld [$cd53], a ld a, [$cd59] and a jr z, .asm_17f0ee ld c, a ld a, [$cd57] inc a ld b, a ld e, l ld d, h dec de .asm_17f0e0 ld a, c cp b jr z, .asm_17f0ea ld a, [de] dec de ld [hld], a dec b jr .asm_17f0e0 .asm_17f0ea ld a, [$cd5a] ld [hl], a .asm_17f0ee pop hl ld a, [$cd58] call Function17f50f pop de and a ret ; 17f0f8 Function17f0f8: ; 17f0f8 pop hl call Function17f524 jr c, .asm_17f114 ld de, $0003 add hl, de ld a, [hli] ld e, l ld d, h ld l, c ld h, b ld c, a ld b, $0 add hl, bc ld a, [de] cp $50 jr z, .asm_17f112 and a ret .asm_17f112 scf ret .asm_17f114 push bc ld de, $cd54 ld bc, $0004 call CopyBytes pop bc push hl push bc call Function17f4f6 ld a, [$cd54] ld e, a ld a, [$cd55] ld d, a add hl, de ld de, EnemyMoveAnimation ld a, [$cd56] ld c, a ld b, $0 call CopyBytes ld a, $50 ld [de], a pop hl ld de, EnemyMoveAnimation call PlaceString ld a, c ld [$cd52], a ld a, b ld [$cd53], a ld a, [$cd57] call Function17f50f pop de and a ret ; 17f154 Function17f154: ; 17f154 pop hl call Function17f524 jr c, .asm_17f167 inc hl inc hl ld e, l ld d, h ld a, [de] cp $50 jr z, .asm_17f165 and a ret .asm_17f165 scf ret .asm_17f167 push bc ld a, [hli] ld e, a ld a, [hli] ld d, a pop bc push hl push bc call Function17f4f6 add hl, de ld c, l ld b, h pop de callba Function11c08f ld c, l ld b, h pop de and a ret ; 17f181 Function17f181: ; 17f181 pop hl call Function17f524 jr c, .asm_17f19d ld de, $0002 add hl, de ld a, [hli] ld e, l ld d, h ld l, c ld h, b ld c, a ld b, $0 add hl, bc ld a, [de] cp $50 jr z, .asm_17f19b and a ret .asm_17f19b scf ret .asm_17f19d push bc ld a, [hli] ld e, a ld a, [hli] ld d, a ld a, [hli] ld [$cd54], a pop bc push hl push bc call Function17f4f6 add hl, de ld a, [hl] ld c, a ld de, EnemyMoveAnimation callba Function48c63 pop hl ld de, EnemyMoveAnimation call PlaceString ld a, c ld [$cd52], a ld a, b ld [$cd53], a ld a, [$cd54] call Function17f50f pop de and a ret ; 17f1d0 Function17f1d0: ; 17f1d0 pop hl call Function17f524 jr c, .asm_17f1ec ld de, $0002 add hl, de ld a, [hli] ld e, l ld d, h ld l, c ld h, b ld c, a ld b, $0 add hl, bc ld a, [de] cp $50 jr z, .asm_17f1ea and a ret .asm_17f1ea scf ret .asm_17f1ec push bc ld a, [hli] ld e, a ld a, [hli] ld d, a ld a, [hli] ld [$cd54], a pop bc push hl push bc call Function17f4f6 add hl, de ld a, [hl] ld a, $1 ld [rSVBK], a ld [$d265], a call GetPokemonName pop hl call PlaceString ld a, c ld [$cd52], a ld a, b ld [$cd53], a ld a, $4 ld [rSVBK], a ld a, [$cd54] call Function17f50f pop de and a ret ; 17f220 Function17f220: ; 17f220 pop hl call Function17f524 jr c, .asm_17f23c ld de, $0002 add hl, de ld a, [hli] ld e, l ld d, h ld l, c ld h, b ld c, a ld b, $0 add hl, bc ld a, [de] cp $50 jr z, .asm_17f23a and a ret .asm_17f23a scf ret .asm_17f23c push bc ld a, [hli] ld e, a ld a, [hli] ld d, a ld a, [hli] ld [$cd54], a pop bc push hl push bc call Function17f4f6 add hl, de ld a, [hl] ld e, a ld d, $0 ld hl, $726e add hl, de add hl, de ld a, [hli] ld e, a ld a, [hl] ld d, a pop hl call PlaceString ld a, c ld [$cd52], a ld a, b ld [$cd53], a ld a, [$cd54] call Function17f50f pop de and a ret ; 17f26e INCBIN "baserom.gbc",$17f26e,$17f27b - $17f26e Function17f27b: ; 17f27b pop hl call Function17f524 jr c, .asm_17f297 ld de, $0002 add hl, de ld a, [hli] ld e, l ld d, h ld l, c ld h, b ld c, a ld b, $0 add hl, bc ld a, [de] cp $50 jr z, .asm_17f295 and a ret .asm_17f295 scf ret .asm_17f297 push bc ld a, [hli] ld e, a ld a, [hli] ld d, a ld a, [hli] ld [$cd54], a pop bc push hl push bc call Function17f4f6 add hl, de ld a, [hl] ld a, $1 ld [rSVBK], a ld [$d265], a call GetItemName pop hl call PlaceString ld a, c ld [$cd52], a ld a, b ld [$cd53], a ld a, $4 ld [rSVBK], a ld a, [$cd54] call Function17f50f pop de and a ret ; 17f2cb Function17f2cb: ; 17f2cb pop hl push bc ld a, [hli] ld [$cd54], a ld a, [hli] ld [$cd55], a ld a, [$cd2e] inc a ld [$cd56], a pop bc push hl ld l, c ld h, b push hl ld de, $cd56 ld b, $1 ld a, [$cd54] ld c, a call Function31a4 ld a, l ld [$cd52], a ld a, h ld [$cd53], a pop hl ld a, [$cd55] call Function17f50f pop de and a ret ; 17f2ff Function17f2ff: ; 17f2ff pop hl push bc ld a, [hli] ld [$cd54], a pop bc push hl push bc ld a, $1 ld [rSVBK], a ld hl, PlayerName ld de, EnemyMoveAnimation ld bc, $0006 call CopyBytes ld a, $4 ld [rSVBK], a pop hl ld de, EnemyMoveAnimation call PlaceString ld a, c ld [$cd52], a ld a, b ld [$cd53], a ld a, [$cd54] call Function17f50f pop de and a ret ; 17f334 Function17f334: ; 17f334 pop hl push bc ld a, [hli] ld [$cd55], a and $f ld [$cd54], a pop bc push hl ld l, c ld h, b push hl ld a, [$cd55] bit 7, a jr nz, .asm_17f355 ld a, $1 call GetSRAMBank ld a, [$be3f] jr .asm_17f35d .asm_17f355 ld a, $5 call GetSRAMBank ld a, [$b2f3] .asm_17f35d ld c, a call CloseSRAM ld de, EnemyMoveAnimation callba Function48c63 pop hl ld de, EnemyMoveAnimation call PlaceString ld a, c ld [$cd52], a ld a, b ld [$cd53], a ld a, [$cd54] call Function17f50f pop de and a ret ; 17f382 Function17f382: ; 17f382 pop hl push bc ld a, [hli] ld [$cd55], a and $f ld [$cd54], a pop bc push hl push bc ld l, c ld h, b ld a, [$cd55] bit 7, a jr nz, .asm_17f3a3 ld a, $1 call GetSRAMBank ld de, $be40 jr .asm_17f3ab .asm_17f3a3 ld a, $5 call GetSRAMBank ld de, $b2f4 .asm_17f3ab ld a, $82 ld b, a ld a, $3 ld c, a call PrintNum call CloseSRAM ld a, l ld [$cd52], a ld a, h ld [$cd53], a pop hl ld a, [$cd54] call Function17f50f pop de and a ret ; 17f3c9 Function17f3c9: ; 17f3c9 push bc ld hl, $cd36 ld de, $c708 ld bc, $000c call CopyBytes pop de ld c, $0 callba Function11c075 push hl ld hl, $c708 ld de, $cd36 ld bc, $000c call CopyBytes pop bc pop de and a ret ; 17f3f0 Function17f3f0: ; 17f3f0 pop hl push hl ld a, [hli] push af push bc ld a, [hli] ld e, a ld a, [hli] ld d, a ld a, [de] ld c, a ld b, $0 add hl, bc add hl, bc ld a, [hli] ld e, a ld a, [hli] ld d, a ld hl, Unkn1Pals add hl, de ld e, l ld d, h pop hl call PlaceString pop af ld e, a ld d, $0 pop hl add hl, de add hl, de inc hl inc hl inc hl ld e, l ld d, h ld l, c ld h, b scf ret ; 17f41d Function17f41d: ; 17f41d pop hl ld a, [hli] push hl push af ld l, c ld h, b ld bc, $3b60 add hl, bc ld de, $ffec ld c, $1 .asm_17f42c ld a, h and a jr nz, .asm_17f435 ld a, l cp $14 jr c, .asm_17f439 .asm_17f435 add hl, de inc c jr .asm_17f42c .asm_17f439 ld hl, TileMap ld de, $0014 ld a, c .asm_17f440 and a jr z, .asm_17f447 add hl, de dec a jr .asm_17f440 .asm_17f447 pop af ld e, a ld d, $0 add hl, de pop de and a ret ; 17f44f Function17f44f: ; 17f44f pop hl call Function17f524 jr c, .asm_17f46d ld de, $0005 add hl, de ld a, [hli] inc hl inc hl ld e, l ld d, h ld l, c ld h, b ld c, a ld b, $0 add hl, bc ld a, [de] cp $50 jr z, .asm_17f46b and a ret .asm_17f46b scf ret .asm_17f46d push bc ld de, $cd54 ld bc, $0008 call CopyBytes pop bc push hl push bc ld a, [$cd56] cp $c0 jr c, .asm_17f488 ld a, [$cd54] ld [rSVBK], a jr .asm_17f48e .asm_17f488 ld a, [$cd54] call GetSRAMBank .asm_17f48e ld a, [$cd55] ld l, a ld a, [$cd56] ld h, a ld de, EnemyMoveAnimation ld a, [$cd57] ld c, a ld b, $0 call CopyBytes ld a, [$cd56] cp $c0 jr c, .asm_17f4af ld a, $4 ld [rSVBK], a jr .asm_17f4b7 .asm_17f4af call CloseSRAM ld a, $6 call GetSRAMBank .asm_17f4b7 ld de, EnemyMoveAnimation pop hl push hl ld a, [$cd57] ld b, a ld a, [$cd58] ld c, a call Function31a4 ld a, l ld [$cd52], a ld a, h ld [$cd53], a ld a, [$cd5a] and a jr z, .asm_17f4ec ld c, a ld a, [$cd58] inc a ld b, a ld e, l ld d, h dec de .asm_17f4de ld a, c cp b jr z, .asm_17f4e8 ld a, [de] dec de ld [hld], a dec b jr .asm_17f4de .asm_17f4e8 ld a, [$cd5b] ld [hl], a .asm_17f4ec pop hl ld a, [$cd59] call Function17f50f pop de and a ret ; 17f4f6 Function17f4f6: ; 17f4f6 ld a, [$cd6a] ld l, a ld a, [$cd6b] ld h, a ld a, [$cd47] ld c, a ld a, [BGMapPalBuffer] ld b, a ld a, [$cd2e] .asm_17f509 and a ret z dec a add hl, bc jr .asm_17f509 ; 17f50f Function17f50f: ; 17f50f and a jr z, .asm_17f519 ld c, a ld b, $0 add hl, bc ld c, l ld b, h ret .asm_17f519 ld a, [$cd52] ld c, a ld l, a ld a, [$cd53] ld b, a ld h, a ret ; 17f524 Function17f524: ; 17f524 push hl push bc push de ld a, [$cd42] dec a ld b, a ld a, [$cd2e] cp b jr z, .asm_17f53a ld hl, $cd68 cp [hl] .asm_17f536 pop de pop bc pop hl ret .asm_17f53a scf jr .asm_17f536 ; 17f53d Function17f53d: ; 17f53d call FadeToMenu xor a ld [$c303], a ld a, [rSVBK] push af ld a, $1 ld [rSVBK], a call Function17f555 pop af ld [rSVBK], a call Function2b4d ret ; 17f555 Function17f555: ; 17f555 .asm_17f555 call Functiona57 call Function17f5ae ld a, [$c303] bit 7, a jr nz, .asm_17f56a callba Function104000 jr .asm_17f555 .asm_17f56a call Function17f56e ret ; 17f56e Function17f56e: ; 17f56e ld a, [$c300] cp $22 jr z, .asm_17f597 cp $31 jr z, .asm_17f58a cp $33 ret nz ld a, [$c301] cp $1 ret nz ld a, [$c302] cp $2 ret nz jr .asm_17f5a1 .asm_17f58a ld a, [$c301] cp $3 ret nz ld a, [$c302] and a ret nz jr .asm_17f5a1 .asm_17f597 ld a, [$c301] and a ret nz ld a, [$c302] and a ret nz .asm_17f5a1 ld a, $5 call GetSRAMBank xor a ld [$aa4b], a call CloseSRAM ret ; 17f5ae Function17f5ae: ; 17f5ae ld a, [$c303] ld e, a ld d, 0 ld hl, Table17f5bd add hl, de add hl, de ld a, [hli] ld h, [hl] ld l, a jp [hl] ; 17f5bd Table17f5bd: ; 17f5bd dw Function17f5c3 dw Function17ff23 dw Function17f5d2 ; 17f5c3 Function17f5c3: ; 17f5c3 call Function17f5e4 callba Function2b5c ld a, $1 ld [$c303], a ret ; 17f5d2 Function17f5d2: ; 17f5d2 call Function17f5e4 callba Function104000 call Function32f9 ld a, $1 ld [$c303], a ret ; 17f5e4 Function17f5e4: ; 17f5e4 ld a, $8 ld [MusicFade], a ld de, MUSIC_NONE ld a, e ld [MusicFadeIDLo], a ld a, d ld [MusicFadeIDHi], a ld a, " " ld hl, TileMap ld bc, $0168 call ByteFill ld a, $6 ld hl, AttrMap ld bc, $0168 call ByteFill ld hl, $c4b6 ld b, $1 ld c, $e call Function3eea ld hl, $c4f1 ld b, $c ld c, $10 call Function3eea ld hl, $c4cb ld de, $76dc call PlaceString call Function17ff3c jr nc, .asm_17f632 ld hl, $c4d3 call Function17f6b7 .asm_17f632 ld a, [$c300] cp $d0 jr nc, .asm_17f684 cp $10 jr c, .asm_17f679 sub $10 cp $24 jr nc, .asm_17f679 ld e, a ld d, $0 ld hl, $7706 add hl, de add hl, de ld a, [$c301] ld e, a ld a, [$c302] ld d, a ld a, [hli] ld c, a ld a, [hl] ld h, a ld l, c ld a, [hli] and a jr z, .asm_17f679 ld c, a .asm_17f65d ld a, [hli] ld b, a ld a, [hli] cp $ff jr nz, .asm_17f667 cp b jr z, .asm_17f66e .asm_17f667 xor d jr nz, .asm_17f674 ld a, b xor e jr nz, .asm_17f674 .asm_17f66e ld a, [hli] ld e, a ld a, [hl] ld d, a jr .asm_17f67d .asm_17f674 inc hl inc hl dec c jr nz, .asm_17f65d .asm_17f679 ld a, $d9 jr .asm_17f684 .asm_17f67d ld hl, $c51a call PlaceString ret .asm_17f684 sub $d0 ld e, a ld d, $0 ld hl, $7699 add hl, de add hl, de ld a, [hli] ld e, a ld a, [hl] ld d, a ld hl, $c51a call PlaceString ret ; 17f699 INCBIN "baserom.gbc",$17f699,$17f6b7 - $17f699 Function17f6b7: ; 17f6b7 ld a, [$c300] call Function17f6cd inc hl ld a, [$c302] and $f call Function17f6d8 ld a, [$c301] call Function17f6cd ret ; 17f6cd Function17f6cd: ; 17f6cd ld c, a and $f0 swap a call Function17f6d8 ld a, c and $f Function17f6d8: ; 17f6d8 add $f6 ld [hli], a ret ; 17f6dc INCBIN "baserom.gbc",$17f6dc,$17ff23 - $17f6dc Function17ff23: ; 17ff23 ld a, [hJoyPressed] and a ret z ld a, $8 ld [MusicFade], a ld a, [CurMusic] ld [MusicFadeIDLo], a xor a ld [MusicFadeIDHi], a ld hl, $c303 set 7, [hl] ret ; 17ff3c Function17ff3c: ; 17ff3c nop ld a, [$c300] cp $d0 ret c ld hl, $c4d2 ld de, $7f68 call PlaceString ld a, [$c300] push af sub $d0 inc a ld [$c300], a ld hl, $c4d6 ld de, $c300 ld bc, $8103 call PrintNum pop af ld [$c300], a and a ret ; 17ff68 INCBIN "baserom.gbc",$17ff68,$17ff6c - $17ff68 SECTION "Common Text 1", ROMX, BANK[$6C] INCLUDE "text/common.asm" SECTION "bank6D", ROMX, BANK[$6D] INCLUDE "text/phone/mom.asm" INCLUDE "text/phone/bill.asm" INCLUDE "text/phone/elm.asm" INCLUDE "text/phone/trainers1.asm" SECTION "Common Text 2", ROMX, BANK[$6F] INCLUDE "text/common_2.asm" SECTION "Common Text 3", ROMX, BANK[$70] INCLUDE "text/common_3.asm" SECTION "Common Text 4", ROMX, BANK[$71] INCLUDE "text/common_4.asm" SECTION "bank72", ROMX, BANK[$72] ; Item names & descriptions ItemNames:: INCLUDE "items/item_names.asm" INCLUDE "items/item_descriptions.asm" MoveNames:: INCLUDE "battle/move_names.asm" INCLUDE "engine/landmarks.asm" RegionCheck: ; 0x1caea1 ; Checks if the player is in Kanto or Johto. ; If in Johto, returns 0 in e. ; If in Kanto, returns 1 in e. ld a, [MapGroup] ld b, a ld a, [MapNumber] ld c, a call GetWorldMapLocation cp FAST_SHIP ; S.S. Aqua jr z, .johto cp SPECIAL_MAP jr nz, .checkagain ; In a special map, get the backup map group / map id ld a, [BackupMapGroup] ld b, a ld a, [BackupMapNumber] ld c, a call GetWorldMapLocation .checkagain cp KANTO_LANDMARK jr c, .johto ; Victory Road area is considered to be Johto. cp VICTORY_ROAD jr c, .kanto .johto ld e, 0 ret .kanto ld e, 1 ret SECTION "bank75", ROMX, BANK[$75] SECTION "bank76", ROMX, BANK[$76] SECTION "bank77", ROMX, BANK[$77] UnownFont: ; 1dc000 INCBIN "gfx/misc/unown_font.2bpp" ; 1dc1b0 Function1dc1b0: ; 1dc1b0 ld hl, TileMap ld de, $ca90 ld bc, $0154 call CopyBytes ld hl, $cab5 ld a, $62 ld [hli], a inc a ld [hl], a ld hl, $cac9 ld a, $64 ld [hli], a inc a ld [hl], a ld hl, $cb45 ld a, $7f ld [hli], a ld [hl], a ld hl, $cb59 ld a, $61 ld [hli], a ld [hl], a ld hl, $cb6e ld bc, $0512 call ClearBox ld a, [$d265] dec a call CheckCaughtMon push af ld a, [$d265] ld b, a ld c, $1 callba Function44355 pop af ld a, b ld hl, $cb6d call nz, Function13d4 ld hl, $caa3 ld [hl], $35 ld de, $0014 add hl, de ld b, $f .asm_1dc20a ld [hl], $37 add hl, de dec b jr nz, .asm_1dc20a ld [hl], $3a ret ; 1dc213 Function1dc213: ; 1dc213 ld hl, $ca90 ld bc, $00a0 ld a, $7f call ByteFill ld hl, $ca90 ld a, $36 ld b, $6 call Function1dc26a ld hl, $caa3 ld a, $37 ld b, $6 call Function1dc26a ld hl, $cb08 ld [hl], $38 inc hl ld a, $39 ld bc, $0012 call ByteFill ld [hl], $3a ld hl, $cb1c ld bc, $0014 ld a, $32 call ByteFill ld a, [$d265] dec a call CheckCaughtMon push af ld a, [$d265] ld b, a ld c, $2 callba Function44355 pop af ld hl, $caa5 ld a, b call nz, Function13d4 ret ; 1dc26a Function1dc26a: ; 1dc26a push de ld de, $0014 .asm_1dc26e ld [hl], a add hl, de dec b jr nz, .asm_1dc26e pop de ret ; 1dc275 INCBIN "baserom.gbc", $1dc275, $1dc381 - $1dc275 Function1dc381: ; 1dc381 call WhiteBGMap call ClearTileMap call ClearSprites xor a ld [hBGMapMode], a call Functione58 ld de, MobileHPIcon ld hl, $9710 lb bc, BANK(MobileHPIcon), 1 call Request1bpp ld de, MobileLvIcon ld hl, $96e0 lb bc, BANK(MobileLvIcon), 1 call Request1bpp ld de, ShinyIcon ld hl, $93f0 lb bc, BANK(ShinyIcon), 1 call Get2bpp xor a ld [MonType], a callba Function5084a ld hl, $c52c ld b, $9 ld c, $12 call TextBox ld hl, $c4d0 ld a, [TempMonLevel] call Function383d ld hl, $c4d4 ld [hl], $71 inc hl ld de, TempMonMaxHP ld bc, $0203 call PrintNum ld a, [CurPartySpecies] ld [$d265], a ld [CurSpecies], a ld hl, PartyMon1Nickname call Function1dc50e ld hl, $c4f8 call PlaceString ld hl, $c521 ld [hl], $f3 call GetPokemonName ld hl, $c522 call PlaceString ld hl, $c4a8 ld [hl], $74 inc hl ld [hl], $e8 inc hl ld de, $d265 ld bc, $8103 call PrintNum ld hl, $c555 ld de, String1dc550 call PlaceString ld hl, PartyMon1OT call Function1dc50e ld hl, $c558 call PlaceString ld hl, $c57d ld de, String1dc559 call PlaceString ld hl, $c580 ld de, TempMonID ld bc, $8205 call PrintNum ld hl, $c5b9 ld de, String1dc554 call PlaceString ld hl, $c5bf ld a, [TempMonMove1] call Function1dc51a call Function1dc52c ld hl, TempMonDVs ld a, $2d call Predef ld hl, $c2c6 xor a ld [hl], a ld a, [CurPartySpecies] cp $c9 jr z, .asm_1dc469 inc [hl] .asm_1dc469 ld hl, TileMap call Function378b call WaitBGMap ld b, $3 call GetSGBLayout call Function32f9 ret ; 1dc47b Function1dc47b: ; 1dc47b call WhiteBGMap call ClearTileMap call ClearSprites xor a ld [hBGMapMode], a call Functione58 xor a ld [MonType], a callba Function5084a ld hl, TileMap ld b, 15 ld c, 18 call TextBox ld bc, SCREEN_WIDTH ld de, TileMap ld hl, $c4b4 call CopyBytes ld hl, $c4a7 ld a, [TempMonMove2] call Function1dc51a ld hl, $c4cf ld a, [TempMonMove3] call Function1dc51a ld hl, $c4f7 ld a, [TempMonMove4] call Function1dc51a ld hl, $c533 ld de, String1dc55d call PlaceString ld hl, $c53c ld de, TempMonAtk call Function1dc507 ld hl, $c564 ld de, TempMonDef call Function1dc507 ld hl, $c58c ld de, TempMonSpclAtk call Function1dc507 ld hl, $c5b4 ld de, TempMonSpclDef call Function1dc507 ld hl, $c5dc ld de, TempMonSpd call Function1dc507 call WaitBGMap ld b, $3 call GetSGBLayout call Function32f9 ret ; 1dc507 Function1dc507: ; 1dc507 ld bc, $0203 call PrintNum ret ; 1dc50e Function1dc50e: ; 1dc50e ld bc, $000b ld a, [CurPartyMon] call AddNTimes ld e, l ld d, h ret ; 1dc51a Function1dc51a: ; 1dc51a and a jr z, .asm_1dc525 ld [$d265], a call GetMoveName jr .asm_1dc528 .asm_1dc525 ld de, String1dc584 .asm_1dc528 call PlaceString ret ; 1dc52c Function1dc52c: ; 1dc52c callba GetGender ld a, $7f jr c, .asm_1dc53c ld a, $ef jr nz, .asm_1dc53c ld a, $f5 .asm_1dc53c ld hl, $c4d9 ld [hl], a ld bc, TempMonDVs callba CheckShininess ret nc ld hl, $c4da ld [hl], $3f ret ; 1dc550 String1dc550: ; 1dc550 db "OT/@" String1dc554: ; 1dc554 db "MOVE@" String1dc559: ; 1dc559 db $73, "№.@" String1dc55d: ; 1dc55d db "ATTACK", $4e db "DEFENSE", $4e db "SPCL.ATK", $4e db "SPCL.DEF", $4e db "SPEED@" String1dc584: ; 1dc584 db "------------@" ; 1dc591 MobileHPIcon: ; 1dc591 INCBIN "gfx/mobile/hp.1bpp" MobileLvIcon: ; 1dc599 INCBIN "gfx/mobile/lv.1bpp" INCLUDE "tilesets/data_7.asm" INCBIN "baserom.gbc",$1dd6a9,$1dd6bb - $1dd6a9 ; no known jump sources Function1dd6bb: ; 1dd6bb (77:56bb) ld a, b cp $c push af jr c, .asm_1dd6c7 jr z, .asm_1dd6cc sub $c jr .asm_1dd6cc .asm_1dd6c7 or a jr nz, .asm_1dd6cc ld a, $c .asm_1dd6cc ld b, a push bc ld hl, [sp+$1] push de push hl pop de pop hl ld [hl], $7f ld bc, $102 call PrintNum ld [hl], $9c inc hl ld d, h ld e, l ld hl, [sp+$0] push de push hl pop de pop hl ld bc, $8102 call PrintNum pop bc ld de, $56fc pop af jr c, .asm_1dd6f7 ld de, $56ff .asm_1dd6f7 inc hl call PlaceString ret ; 1dd6fc (77:56fc) INCBIN "baserom.gbc",$1dd6fc,$1dd702 - $1dd6fc Function1dd702: ; 1dd702 call Function1dd709 call Functiona80 ret ; 1dd709 Function1dd709: ; 1dd709 call WhiteBGMap call ClearTileMap call ClearSprites call DisableLCD ld hl, $5805 ld de, VTiles2 call Decompress ld hl, $5c4b ld de, TileMap ld bc, $0168 call CopyBytes ld de, $5760 ld hl, $c506 call PlaceString ld de, $5767 ld hl, $c513 call PlaceString ld de, PlayerName ld hl, $c50d call PlaceString ld de, $5768 ld hl, $c542 call PlaceString call EnableLCD call WaitBGMap ld b, $8 call GetSGBLayout call Function32f9 call DelayFrame ret ; 1dd760 INCBIN "baserom.gbc",$1dd760,$1dd7ae - $1dd760 Function1dd7ae: ; 1dd7ae ld hl, TileMap ld bc, $0168 ld a, $7f call ByteFill ld hl, $5db3 ld de, TileMap ld bc, $0168 call CopyBytes ld de, $57fa ld hl, $c4a8 call PlaceString ld de, $57f0 ld hl, $c5cf call PlaceString ld hl, $c5d8 ld de, GameTimeHours ld bc, $0204 call PrintNum ld [hl], $67 inc hl ld de, GameTimeMinutes ld bc, $8102 call PrintNum ret ; 1dd7f0 INCBIN "baserom.gbc",$1dd7f0,$1ddf1c - $1dd7f0 Function1ddf1c: ; 1ddf1c ld hl, $5f33 ld de, $9310 call Decompress ret ; 1ddf26 ; no known jump sources Function1ddf26: ; 1ddf26 (77:5f26) ld hl, $5f33 ld de, $9310 ld bc, $773a call Functione73 ret ; 1ddf33 (77:5f33) INCBIN "baserom.gbc",$1ddf33,$1de0d7 - $1ddf33 Function1de0d7: ; 1de0d7 ld hl, $60e1 ld de, $a000 call Decompress ret ; 1de0e1 INCBIN "baserom.gbc",$1de0e1,$1de171 - $1de0e1 ; no known jump sources Function1de171: ; 1de171 (77:6171) ld a, $32 ld hl, $c5f4 ld bc, $c call ByteFill ld hl, $c4b4 ld bc, $f0b call ClearBox ld a, $34 ld hl, TileMap ; $c4a0 (aliases: SpritesEnd) ld bc, $b call ByteFill ld a, $39 ld hl, $c5e0 ld bc, $b call ByteFill ld hl, $c4a5 ld [hl], $3f ld hl, $c5e5 ld [hl], $40 ld a, [$c7d4] cp $1 jr z, .asm_1de1bf ld hl, $c4ab ld [hl], $50 ld a, $51 ld hl, $c4bf ld b, $f call Function1de27f ld [hl], $52 jr .asm_1de1d0 .asm_1de1bf ld hl, $c4ab ld [hl], $66 ld a, $67 ld hl, $c4bf ld b, $f call Function1de27f ld [hl], $68 .asm_1de1d0 ret ; no known jump sources Function1de1d1: ; 1de1d1 (77:61d1) ld a, $34 ld hl, TileMap ; $c4a0 (aliases: SpritesEnd) ld bc, $b call ByteFill ld a, $39 ld hl, $c568 ld bc, $b call ByteFill ld hl, $c4a5 ld [hl], $3f ld hl, $c56d ld [hl], $40 ld hl, $c4ab ld [hl], $66 ld a, $67 ld hl, $c4bf ld b, $9 call Function1de27f ld [hl], $68 ld a, $34 ld hl, $c57c ld bc, $b call ByteFill ld a, $39 ld hl, $c5f4 ld bc, $b call ByteFill ld hl, $c587 ld [hl], $66 ld a, $67 ld hl, $c59b ld b, $5 call Function1de27f ld [hl], $68 ld hl, $c590 ld bc, $50b call ClearBox ld de, $623c ld hl, $c590 call PlaceString ret ; 1de23c (77:623c) INCBIN "baserom.gbc",$1de23c,$1de247 - $1de23c Function1de247: ; 1de247 ld a, [hBGMapAddress] ld l, a ld a, [$ffd7] ld h, a push hl inc hl ld a, l ld [hBGMapAddress], a ld a, h ld [$ffd7], a ld hl, $c4b3 ld [hl], $66 ld hl, $c4c7 ld a, $67 ld b, $f call Function1de27f ld [hl], $68 ld hl, $c607 ld [hl], $3c xor a ld b, $12 ld hl, $cdec call Function1de27f call Function3200 pop hl ld a, l ld [hBGMapAddress], a ld a, h ld [$ffd7], a ret ; 1de27f Function1de27f: ; 1de27f push de ld de, $0014 .asm_1de283 ld [hl], a add hl, de dec b jr nz, .asm_1de283 pop de ret ; 1de28a Function1de28a:: ; 1de28a ld hl, DudeAutoInput_A jr Function1de299 ; 1de28f Function1de28f: ; 1de28f ld hl, DudeAutoInput_RightA jr Function1de299 ; 1de294 Function1de294: ; 1de294 ld hl, DudeAutoInput_DownA jr Function1de299 ; 1de299 Function1de299: ; 1de299 ld a, BANK(DudeAutoInputs) call StartAutoInput ret ; 1de29f DudeAutoInputs: DudeAutoInput_A: ; 1de29f db NO_INPUT, $50 db A_BUTTON, $00 db NO_INPUT, $ff ; end ; 1de2a5 DudeAutoInput_RightA: ; 1de2a5 db NO_INPUT, $08 db D_RIGHT, $00 db NO_INPUT, $08 db A_BUTTON, $00 db NO_INPUT, $ff ; end ; 1de2af DudeAutoInput_DownA: ; 1de2af db NO_INPUT, $fe db NO_INPUT, $fe db NO_INPUT, $fe db NO_INPUT, $fe db D_DOWN, $00 db NO_INPUT, $fe db NO_INPUT, $fe db NO_INPUT, $fe db NO_INPUT, $fe db A_BUTTON, $00 db NO_INPUT, $ff ; end ; 1de2c5 Function1de2c5: ; 1de2c5 ld hl, StringBuffer1 .asm_1de2c8 ld a, [hl] cp $50 jr z, .asm_1de2da cp $25 jr z, .asm_1de2d8 cp $1f jr z, .asm_1de2d8 inc hl jr .asm_1de2c8 .asm_1de2d8 ld [hl], $22 .asm_1de2da ld de, StringBuffer1 ld hl, $c4a9 call PlaceString ret ; 1de2e4 PokegearGFX: ; 1de2e4 INCBIN "gfx/misc/pokegear.2bpp.lz" ; 1de5c7 INCBIN "baserom.gbc",$1de5c7,$1de5c8 - $1de5c7 Function1de5c8: ; 1de5c8 ld c, $0 ld hl, $0029 add hl, de ld a, [hli] cp $84 ret nz ld a, [hli] inc c cp $85 ret z inc c cp $86 ret z inc c cp $88 ret z inc c cp $92 ret z ld c, $0 ret ; 1de5e6 INCBIN "baserom.gbc",$1de5e6,$1df1e6 - $1de5e6 Function1df1e6: ; 1df1e6 ld b, $21 ld h, d ld l, e .asm_1df1ea ld a, [hl] cp $dc jr nz, .asm_1df1f3 ld a, $d4 jr .asm_1df1fd .asm_1df1f3 sub $d4 jr c, .asm_1df1fe cp $3 jr nc, .asm_1df1fe add $cd .asm_1df1fd ld [hl], a .asm_1df1fe inc hl dec b jr nz, .asm_1df1ea ret ; 1df203 Function1df203: ; 1df203 ld b, $21 ld h, d ld l, e .asm_1df207 ld a, [hl] cp $d4 jr nz, .asm_1df210 ld a, $dc jr .asm_1df21a .asm_1df210 sub $cd jr c, .asm_1df21b cp $3 jr nc, .asm_1df21b add $d4 .asm_1df21a ld [hl], a .asm_1df21b inc hl dec b jr nz, .asm_1df207 ret ; 1df220 Function1df220: ; 1df220 ld b, $21 ld h, d ld l, e .asm_1df224 ld a, [hl] and $f0 cp $d0 jr nz, .asm_1df233 ld a, [hl] add $8 and $f or $d0 ld [hl], a .asm_1df233 inc hl dec b jr nz, .asm_1df224 ret ; 1df238 SECTION "Tileset Data 8", ROMX, BANK[TILESETS_8] INCLUDE "tilesets/data_8.asm" SECTION "bank79", ROMX, BANK[$79] SECTION "bank7A", ROMX, BANK[$7A] SECTION "bank7B", ROMX, BANK[$7B] INCLUDE "text/battle_tower.asm" SECTION "bank7C", ROMX, BANK[$7C] INCBIN "baserom.gbc",$1f0000,$1f09d8 - $1f0000 SECTION "bank7D", ROMX, BANK[$7D] INCBIN "baserom.gbc",$1f4000,$1f4003 - $1f4000 Function1f4003: ; 1f4003 ld a, $6 call GetSRAMBank ld hl, $4018 ld de, $a000 ld bc, $1000 call CopyBytes call CloseSRAM ret ; 1f4018 INCBIN "baserom.gbc",$1f4018,$1f636a - $1f4018 SECTION "bank7E", ROMX, BANK[$7E] INCLUDE "stats/battle_tower.asm" INCLUDE "stats/odd_eggs.asm" SECTION "bank7F", ROMX, BANK[$7F] SECTION "stadium2",ROMX[$8000-$220],BANK[$7F] INCBIN "baserom.gbc",$1ffde0,$200000 - $1ffde0