diff options
| -rw-r--r-- | engine/pokedex.asm | 2585 | ||||
| -rw-r--r-- | main.asm | 2582 | 
2 files changed, 2586 insertions, 2581 deletions
| diff --git a/engine/pokedex.asm b/engine/pokedex.asm new file mode 100644 index 000000000..004836f62 --- /dev/null +++ b/engine/pokedex.asm @@ -0,0 +1,2585 @@ + +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, [wcf63] +	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, [wc7d4] +	ld [wd959], 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, wc6d0 +	ld bc, $0115 +	xor a +	call ByteFill + +	xor a +	ld [wcf63], a +	ld [wcf64], a +	ld [wcf65], a +	ld [wcf66], a + +	call Function400a2 + +	ld a, [wd959] +	ld [wc7d4], 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 [wc7dc], a +	ret + +.asm_400ae +	ld a, 1 +	ld [wc7dc], a +	ret +; 400b4 + +Function400b4: ; 400b4 +	ld hl, wc6d0 +	ld a, [wc2d6] +	and a +	jr z, .asm_400ec +	cp $fc +	jr nc, .asm_400ec + +	ld b, a +	ld a, [wc7d2] +	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, [wc7d0] +	inc a +	ld [wc7d0], 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, [wc7d1] +	inc a +	ld [wc7d1], 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 [wc7e4], a +	ret +; 4010b + +Function4010b: ; 4010b +	ld a, [wcf63] +	ld hl, Jumptable_40115 +	call Function41432 +	jp [hl] +; 40115 + + +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 + + +Function40131: ; 40131 (10:4131) +	ld hl, wcf63 +	inc [hl] +	ret + +Function40136: ; 40136 (10:4136) +	ld hl, wcf63 +	set 7, [hl] +	ret + +Function4013c: ; 4013c (10:413c) +	xor a +	ld [hBGMapMode], a ; $ff00+$d4 +	call ClearSprites +	xor a +	ld hl, AttrMap +	ld bc, $168 +	call ByteFill +	callba Function1de171 +	hlcoord 0, 17 +	ld de, Unknown_407f2 +	call Function40acd +	ld a, $7 +	ld [wc7d3], a +	call Function40b0f +	call Function41aeb +	call Function41af7 +	call Function4074c +	ld a, $5 +	ld [hSCX], a ; $ff00+$cf +	ld a, [wc7d4] +	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 +	ld a, $4 +	call Function41423 +	call Function41148 +	callba Function1de171 +	hlcoord 0, 17 +	ld de, Unknown_407f2 +	call Function40acd +	ld a, $7 +	ld [wc7d3], a +	call Function40b0f +	call Function40131 +	ret + +Function401ae: ; 401ae (10:41ae) +	ld hl, hJoyPressed ; $ffa7 +	ld a, [hl] +	and B_BUTTON +	jr nz, .b +	ld a, [hl] +	and A_BUTTON +	jr nz, .a +	ld a, [hl] +	and SELECT +	jr nz, .select +	ld a, [hl] +	and START +	jr nz, .start +	call Function406c5 +	ret nc +	call Function41148 +	xor a +	ld [hBGMapMode], a ; $ff00+$d4 +	call Function40b0f +	call Function41ad7 +	call Function41af7 +	ret + +.a +	call Function40bb1 +	call Function40bd0 +	ret z +	ld a, $2 +	ld [wcf63], a +	ld a, $0 +	ld [wcf64], a +	ret + +.select +	call Function41401 +	ld a, $7 +	ld [wcf63], a +	xor a +	ld [hSCX], a ; $ff00+$cf +	ld a, $a7 +	ld [hWX], a ; $ff00+$d1 +	call DelayFrame +	ret + +.start +	call Function41401 +	ld a, $5 +	ld [wcf63], a +	xor a +	ld [hSCX], a ; $ff00+$cf +	ld a, $a7 +	ld [hWX], a ; $ff00+$d1 +	call DelayFrame +	ret + +.b +	ld a, $d +	ld [wcf63], a +	ret + +Function40217: ; 40217 (10:4217) +	call LowVolume +	xor a +	ld [wcf65], a +	xor a +	ld [hBGMapMode], a ; $ff00+$d4 +	call ClearSprites +	call Function41478 +	call Function407fd +	call Function4134f +	call Function40bb1 +	ld [wc2d6], a +	callba Function4424d +	call Function40ba0 +	call WaitBGMap +	ld a, $a7 +	ld [hWX], a ; $ff00+$d1 +	call Function40bb1 +	ld [CurPartySpecies], a +	ld a, $4 +	call Function41423 +	ld a, [CurPartySpecies] +	call PlayCry +	call Function40131 +	ret + +Function40258: ; 40258 (10:4258) +	ld de, Unknown_402e8 +	call Function4135a +	ld hl, hJoyPressed ; $ffa7 +	ld a, [hl] +	and B_BUTTON +	jr nz, .b +	ld a, [hl] +	and A_BUTTON +	jr nz, .a +	call Function4066c +	ret nc +	call Function40131 +	ret + +.a +	ld a, [wc7d8] +	ld hl, Jumptable_402f2 +	call Function41432 +	jp [hl] + +.b +	ld a, [LastVolume] +	and a +	jr z, .asm_40288 +	ld a, $77 +	ld [LastVolume], a + +.asm_40288 +	call MaxVolume +	ld a, [wcf64] +	ld [wcf63], a +	ret +; 40292 (10:4292) + +Function40292: ; 40292 +	ld a, [wcf65] +	xor $1 +	ld [wcf65], a +	call Function40bb1 +	ld [wc2d6], a +	callba Function4424d +	call WaitBGMap +	ret +; 402aa + +Function402aa: ; 402aa (10:42aa) +	call Function41401 +	xor a +	ld [wcf65], a +	xor a +	ld [hBGMapMode], a ; $ff00+$d4 +	call Function407fd +	call Function4134f +	call Function41478 +	call Function40bb1 +	ld [wc2d6], a +	callba Function4424d +	call Function40ba0 +	call Function4143b +	call WaitBGMap +	call Function40bb1 +	ld [CurPartySpecies], a +	ld a, $4 +	call Function41423 +	ld a, [CurPartySpecies] +	call PlayCry +	ld hl, wcf63 +	dec [hl] +	ret +; 402e8 (10:42e8) + +Unknown_402e8: ; 402e8 +	dw $0430 +	dwcoord 1, 17 +	dwcoord 6, 17 +	dwcoord 11, 17 +	dwcoord 15, 17 +; 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, [wc7e4] +	ld e, a +	predef Function91d11 +	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, [wd265] +	call GetCryIndex +	ld e, c +	ld d, b +	call PlayCryHeader +	ret +; 4034f + +Function4034f: ; 4034f +	call Function41415 +	xor a +	ld [hSCX], a +	ld a, [wcf65] +	push af +	ld a, [wcf64] +	push af +	ld a, [wcf63] +	push af +	callba Function8442c +	pop af +	ld [wcf63], a +	pop af +	ld [wcf64], a +	pop af +	ld [wcf65], 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 + +Function4039d: ; 4039d (10:439d) +	xor a +	ld [hBGMapMode], a ; $ff00+$d4 +	call ClearSprites +	call Function4087c +	call Function4134f +	ld a, [wc7d4] +	ld [wc7d8], a +	call Function40e5b +	call WaitBGMap +	ld a, $10 +	call Function41423 +	call Function40131 +	ret + +Function403be: ; 403be (10:43be) +	ld a, [wc7dc] +	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, [wc7d8] +	ld hl, Jumptable_40405 +	call Function41432 +	jp [hl] + +.asm_403ea +	call Function41401 +	ld a, $0 +	ld [wcf63], a +	ret +; 403f3 (10:43f3) + +Unknown_403f3: ; 403f3 +	dw $03c0 +	dwcoord 2, 4 +	dwcoord 2, 6 +	dwcoord 2, 8 +; 403fb + +Unknown_403fb: ; 403fb +	dw $04c0 +	dwcoord 2, 4 +	dwcoord 2, 6 +	dwcoord 2, 8 +	dwcoord 2, 10 +; 40405 + +Jumptable_40405: ; 40405 (10:4405) +	dw Function4040d +	dw Function40411 +	dw Function40415 +	dw Function4043a +; 4040d + +Function4040d: ; 4040d (10:440d) +	ld b, $0 +	jr Function40417 + +Function40411: ; 40411 (10:4411) +	ld b, $1 +	jr Function40417 + +Function40415: ; 40415 (10:4415) +	ld b, $2 +Function40417: ; 40417 (10:4417) +	ld a, [wc7d4] +	cp b +	jr z, .asm_40431 +	ld a, b +	ld [wc7d4], a +	call Function40bdc +	call Function40f08 +	xor a +	ld [wc7d0], a +	ld [wc7d1], a +	call Function400b4 + +.asm_40431 +	call Function41401 +	ld a, $0 +	ld [wcf63], a +	ret + +Function4043a: ; 4043a (10:443a) +	call Function41401 +	ld a, $b +	ld [wcf63], a +	ret + +Function40443: ; 40443 (10:4443) +	xor a +	ld [hBGMapMode], a ; $ff00+$d4 +	call ClearSprites +	call Function408f0 +	call Function4134f +	ld a, $1 +	ld [wc7d5], a +	xor a +	ld [wc7d6], a +	call Function40fa8 +	xor a +	ld [wc7db], a +	callba Function44207 +	call WaitBGMap +	ld a, $10 +	call Function41423 +	call Function40131 +	ret + +Function40471: ; 40471 (10:4471) +	ld de, Unknown_4049e +	call Function4135a +	call Function40f4f +	call c, Function40fa8 +	ld hl, hJoyPressed ; $ffa7 +	ld a, [hl] +	and START | B_BUTTON +	jr nz, .asm_40495 +	ld a, [hl] +	and A_BUTTON +	jr nz, .asm_4048b +	ret + +.asm_4048b +	ld a, [wc7d8] +	ld hl, Jumptable_404a8 +	call Function41432 +	jp [hl] + +.asm_40495 +	call Function41401 +	ld a, $0 +	ld [wcf63], a +	ret +; 4049e (10:449e) + +Unknown_4049e: ; 4049e +	dw $04c0 +	dwcoord 2, 4 +	dwcoord 2, 6 +	dwcoord 2, 13 +	dwcoord 2, 15 +; 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, [wc7d7] +	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 [wc7d2], a +	ld a, [wc7d0] +	ld [wc7e0], a +	ld a, [wc7d1] +	ld [wc7e1], a +	ld a, [wc2d6] +	ld [wcf65], a +	xor a +	ld [wc7d0], a +	ld [wc7d1], a +	call Function41401 +	ld a, $9 +	ld [wcf63], a +	ret +; 40501 + +Function40501: ; 40501 +	call Function41401 +	ld a, $0 +	ld [wcf63], a +	ret +; 4050a + +Function4050a: ; 4050a (10:450a) +	xor a +	ld [hBGMapMode], a ; $ff00+$d4 +	xor a +	ld hl, AttrMap +	ld bc, $168 +	call ByteFill +	call Function41ae1 +	call Function41af7 +	callba Function1de1d1 +	call Function409cf +	ld a, $4 +	ld [wc7d3], 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 +	ld a, $4 +	call Function41423 +	call Function40131 +	ret + +Function40562: ; 40562 (10:4562) +	ld hl, hJoyPressed ; $ffa7 +	ld a, [hl] +	and B_BUTTON +	jr nz, .asm_40595 +	ld a, [hl] +	and A_BUTTON +	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 [wcf63], a +	ld a, $9 +	ld [wcf64], a +	ret + +.asm_40595 +	ld a, [wc7e0] +	ld [wc7d0], a +	ld a, [wc7e1] +	ld [wc7d1], a +	ld a, [wcf65] +	ld [wc2d6], a +	call Function41401 +	call ClearSprites +	call Function40bdc +	ld a, $5 +	ld [wcf63], a +	xor a +	ld [hSCX], a ; $ff00+$cf +	ld a, $a7 +	ld [hWX], a ; $ff00+$d1 +	ret + +Function405bd: ; 405bd (10:45bd) +	call Function41a2c +	call Function409f1 +	xor a +	ld [wc7dd], a +	call Function41a58 +	call Function40658 +	callba Functionfba2e +	call WaitBGMap +	ld a, $16 +	call Function41423 +	call Function40131 +	ret + +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 [wcf63], 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 + +Function40610: ; 40610 (10:4610) +	ld hl, $ffa9 +	ld a, [hl] +	and D_RIGHT +	jr nz, .right +	ld a, [hl] +	and D_LEFT +	jr nz, .left +	ret + +.right +	ld a, [wc7de] +	ld e, a +	ld hl, wc7dd +	ld a, [hl] +	inc a +	cp e +	ret nc +	ld a, [hl] +	inc [hl] +	jr .asm_40635 + +.left +	ld hl, wc7dd +	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 + +Function40654: ; 40654 (10:4654) +	ld c, $7f +	jr asm_4065d + +Function40658: ; 40658 (10:4658) +	ld a, [wc7dd] +	ld c, $5a +asm_4065d: ; 4065d (10:465d) +	ld e, a +	ld d, 0 +	ld hl, Unknown_40a3e + 2 +	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 + +Function4066c: ; 4066c (10:466c) +	ld a, [wc7d1] +	ld [wc7e2], a +	ld a, [wc7d0] +	ld [wc7e3], a +	ld hl, $ffa9 +	ld a, [hl] +	and D_UP +	jr nz, .up +	ld a, [hl] +	and D_DOWN +	jr nz, .down +	and a +	ret + +.up +	ld a, [wc7d3] +	ld d, a +	ld a, [wc7d2] +	ld e, a +	call Function406ea +	jr nc, .asm_406b7 +	call Function40bb1 +	call Function40bd0 +	jr nz, .asm_406b5 +	jr .up + +.down +	ld a, [wc7d3] +	ld d, a +	ld a, [wc7d2] +	ld e, a +	call Function406fe +	jr nc, .asm_406b7 +	call Function40bb1 +	call Function40bd0 +	jr nz, .asm_406b5 +	jr .down + +.asm_406b5 +	scf +	ret + +.asm_406b7 +	ld a, [wc7e2] +	ld [wc7d1], a +	ld a, [wc7e3] +	ld [wc7d0], a +	and a +	ret + +Function406c5: ; 406c5 (10:46c5) +	ld a, [wc7d3] +	ld d, a +	ld a, [wc7d2] +	ld e, a +	ld hl, $ffa9 +	ld a, [hl] +	and D_UP +	jr nz, Function406ea +	ld a, [hl] +	and D_DOWN +	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 + +Function406ea: ; 406ea (10:46ea) +	ld hl, wc7d1 +	ld a, [hl] +	and a +	jr z, .asm_406f4 +	dec [hl] +	jr asm_4073f +.asm_406f4 +	ld hl, wc7d0 +	ld a, [hl] +	and a +	jr z, asm_4073d +	dec [hl] +	jr asm_4073f + +Function406fe: ; 406fe (10:46fe) +	ld hl, wc7d1 +	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, wc7d0 +	add [hl] +	cp e +	jr nc, asm_4073d +	inc [hl] +	jr asm_4073f +asm_40716: ; 40716 (10:4716) +	ld hl, wc7d0 +	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, wc7d0 +	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 + + +Function4074c: ; 4074c (10:474c) +	hlcoord 0, 17 +	ld de, Unknown_407f2 +	call Function40acd +	ld a, $32 +	ld hl, TileMap +	ld bc, $168 +	call ByteFill +	ld hl, TileMap +	lb bc, 7, 7 +	call Function40ad5 +	hlcoord 0, 9 +	ld bc, $607 +	call Function40ad5 +	hlcoord 1, 11 +	ld de, Unknown_407e1 +	call Function40acd +	ld hl, PokedexSeen ; wdeb9 (aliases: EndPokedexSeen) +	ld b, EndPokedexSeen - PokedexSeen +	call CountSetBits +	ld de, wd265 +	hlcoord 5, 12 +	ld bc, $103 +	call PrintNum +	hlcoord 1, 14 +	ld de, Unknown_407e6 +	call Function40acd +	ld hl, PokedexCaught +	ld b, EndPokedexCaught - PokedexCaught +	call CountSetBits +	ld de, wd265 +	hlcoord 5, 15 +	ld bc, $103 +	call PrintNum +	hlcoord 1, 17 +	ld de, Unknown_407ea +	call Function40acd +	hlcoord 8, 1 +	ld b, $7 +	ld a, $5a +	call Function40741 +	hlcoord 8, 10 +	ld b, $6 +	ld a, $5a +	call Function40741 +	hlcoord 8, 0 +	ld [hl], $59 +	hlcoord 8, 8 +	ld [hl], $53 +	hlcoord 8, 9 +	ld [hl], $54 +	hlcoord 8, 16 +	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 +	hlcoord 19, 0 +	ld [hl], $34 +	hlcoord 19, 1 +	ld a, $7f +	ld b, $f +	call Function40741 +	ld [hl], $39 +	hlcoord 1, 10 +	ld bc, $0013 +	ld a, $61 +	call ByteFill +	hlcoord 1, 17 +	ld bc, $0012 +	ld a, $7f +	call ByteFill +	hlcoord 9, 7 +	ld de, Unknown_40852 +	call Function40acd +	hlcoord 9, 9 +	ld de, Unknown_4085c +	call Function40acd +	hlcoord 0, 17 +	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 + +Function4087c: ; 4087c (10:487c) +	call Function40aa6 +	hlcoord 0, 2 +	lb bc, 8, 18 +	call Function40ad5 +	hlcoord 0, 12 +	lb bc, 4, 18 +	call Function40ad5 +	hlcoord 0, 1 +	ld de, Unknown_408b2 +	call Function40acd +	hlcoord 3, 4 +	ld de, String_408bd +	call PlaceString +	ld a, [wc7dc] +	and a +	ret z +	hlcoord 3, 10 +	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 + +Function408f0: ; 408f0 (10:48f0) +	call Function40aa6 +	hlcoord 0, 2 +	lb bc, 14, 18 +	call Function40ad5 +	hlcoord 0, 1 +	ld de, Unknown_4092a +	call Function40acd +	hlcoord 8, 4 +	ld de, Unknown_40935 +	call Function40acd +	hlcoord 8, 6 +	ld de, Unknown_40935 +	call Function40acd +	hlcoord 3, 4 +	ld de, String_40940 +	call PlaceString +	hlcoord 3, 13 +	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" +	next "TYPE2" +	db   "@" +; 4094c + +String_4094c: ; 4094c +	db   "BEGIN SEARCH!!" +	next "CANCEL" +	db   "@" +; 40962 + +Function40962: ; 40962 (10:4962) +	call Function40aa6 +	ld hl, TileMap +	lb bc, 7, 7 +	call Function40ad5 +	hlcoord 0, 11 +	lb bc, 5, 18 +	call Function40ad5 +	hlcoord 1, 12 +	ld de, String_409ae +	call PlaceString +	ld de, wc7d7 +	hlcoord 1, 16 +	ld bc, $103 +	call PrintNum +	hlcoord 8, 0 +	ld [hl], $59 +	hlcoord 8, 1 +	ld b, $7 +	ld a, $5a +	call Function40741 +	hlcoord 8, 8 +	ld [hl], $53 +	hlcoord 8, 9 +	ld [hl], $69 +	hlcoord 8, 10 +	ld [hl], $6a +	call Function40ab2 +	ret +; 409ae (10:49ae) + +String_409ae: ; 409ae +	db   "SEARCH RESULTS" +	next "  TYPE" +	next "    FOUND!" +	db   "@" +; 409cf + +Function409cf: ; 409cf (10:49cf) +	ld a, [wc7d5] +	hlcoord 0, 14 +	call Function40fcd +	ld a, [wc7d5] +	ld b, a +	ld a, [wc7d6] +	and a +	jr z, .asm_409f0 +	cp b +	jr z, .asm_409f0 +	hlcoord 2, 15 +	call Function40fcd +	hlcoord 1, 15 +	ld [hl], $f3 +.asm_409f0 +	ret + +Function409f1: ; 409f1 (10:49f1) +	call Function40aa6 +	hlcoord 2, 1 +	lb bc, 10, 13 +	call Function40ad5 +	hlcoord 2, 14 +	lb bc, 1, 13 +	call Function40ad5 +	hlcoord 2, 15 +	ld [hl], $3d +	hlcoord 16, 15 +	ld [hl], $3e +	hlcoord 6, 5 +	call Function40ab5 +	ld de, 0 +	ld b, 0 +	ld c, 26 +.asm_40a1d +	ld hl, 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 [wc7de], a +	ret +; 40a3e (10:4a3e) + +Unknown_40a3e: ; 40a3e +	dwcoord   4,11,   3,11 +	dwcoord   4,10,   3,10 +	dwcoord   4, 9,   3, 9 +	dwcoord   4, 8,   3, 8 +	dwcoord   4, 7,   3, 7 +	dwcoord   4, 6,   3, 6 +	dwcoord   4, 5,   3, 5 +	dwcoord   4, 4,   3, 4 +	dwcoord   4, 3,   3, 2 +	dwcoord   5, 3,   5, 2 +	dwcoord   6, 3,   6, 2 +	dwcoord   7, 3,   7, 2 +	dwcoord   8, 3,   8, 2 +	dwcoord   9, 3,   9, 2 +	dwcoord  10, 3,  10, 2 +	dwcoord  11, 3,  11, 2 +	dwcoord  12, 3,  12, 2 +	dwcoord  13, 3,  13, 2 +	dwcoord  14, 3,  15, 2 +	dwcoord  14, 4,  15, 4 +	dwcoord  14, 5,  15, 5 +	dwcoord  14, 6,  15, 6 +	dwcoord  14, 7,  15, 7 +	dwcoord  14, 8,  15, 8 +	dwcoord  14, 9,  15, 9 +	dwcoord  14,10,  15,10 +; 40aa6 + +Function40aa6: ; 40aa6 +	ld hl, TileMap +	ld a, $32 +	ld bc, $0168 +	call ByteFill +	ret +; 40ab2 + +Function40ab2: ; 40ab2 +	hlcoord 1, 1 +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 + + +Function40b0f: ; 40b0f (10:4b0f) +	ld a, [wc7d4] +	cp $1 +	jr z, .asm_40b1a +	ld c, $b +	jr .asm_40b1c +.asm_40b1a +	ld c, $b +.asm_40b1c +	hlcoord 0, 1 +	ld a, [wc7d3] +	add a +	inc a +	ld b, a +	ld a, $7f +	call Function413fe +	ld a, [wc7d0] +	ld e, a +	ld d, $0 +	ld hl, wc6d0 +	add hl, de +	ld e, l +	ld d, h +	hlcoord 0, 2 +	ld a, [wc7d3] +.asm_40b3c +	push af +	ld a, [de] +	ld [wd265], 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 + +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 + +Function40b6a: ; 40b6a (10:4b6a) +	ld a, [wc7d4] +	cp $1 +	jr z, .asm_40b72 +	ret +.asm_40b72 +	push hl +	ld de, -20 +	add hl, de +	ld de, wd265 +	ld bc, $8103 +	call PrintNum +	pop hl +	ret + +Function40b82: ; 40b82 (10:4b82) +	call Function40bc4 +	jr nz, .asm_40b89 +	inc hl +	ret +.asm_40b89 +	ld a, $4f +	ld [hli], a +	ret + +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 +	hlcoord 18, 1 +	ld a, $62 +	ld [hli], a +	inc a +	ld [hl], a +	hlcoord 18, 2 +	ld a, $64 +	ld [hli], a +	inc a +	ld [hl], a +	ret +; 40bb1 + + +Function40bb1: ; 40bb1 +	ld a, [wc7d1] +	ld hl, wc7d0 +	add [hl] +	ld e, a +	ld d, $0 +	ld hl, wc6d0 +	add hl, de +	ld a, [hl] +	ld [wd265], a +	ret +; 40bc4 + + +Function40bc4: ; 40bc4 (10:4bc4) +	push de +	push hl +	ld a, [wd265] +	dec a +	call CheckCaughtMon +	pop hl +	pop de +	ret + + +Function40bd0: ; 40bd0 +	push de +	push hl +	ld a, [wd265] +	dec a +	call CheckSeenMon +	pop hl +	pop de +	ret +; 40bdc + + + +Function40bdc: ; 40bdc +	ld hl, wc6d0 +	ld bc, $100 +	xor a +	call ByteFill +	ld a, [wc7d4] +	ld hl, Jumptable_40bf0 +	call Function41432 +	jp [hl] +; 40bf0 + + +Jumptable_40bf0: ; 40bf0 (10:4bf0) +	dw Function40bf6 +	dw Function40c08 +	dw Function40c30 + + +Function40bf6: ; 40bf6 (10:4bf6) +	ld de, NewPokedexOrder +	ld hl, wc6d0 +	ld c, NUM_POKEMON +.asm_40bfe +	ld a, [de] +	inc de +	ld [hli], a +	dec c +	jr nz, .asm_40bfe +	call Function40c18 +	ret + +Function40c08: ; 40c08 (10:4c08) +	ld hl, wc6d0 +	ld a, $1 +	ld c, NUM_POKEMON +.asm_40c0f +	ld [hli], a +	inc a +	dec c +	jr nz, .asm_40c0f +	call Function40c18 +	ret + +Function40c18: ; 40c18 (10:4c18) +	ld hl, wc7ca +	ld d, NUM_POKEMON +	ld e, d +.asm_40c1e +	ld a, [hld] +	ld [wd265], a +	call Function40bd0 +	jr nz, .asm_40c2b +	dec d +	dec e +	jr nz, .asm_40c1e +.asm_40c2b +	ld a, d +	ld [wc7d2], a +	ret + +Function40c30: ; 40c30 +	xor a +	ld [wc7d2], a +	ld hl, wc6d0 +	ld de, AlphabeticalPokedexOrder +	ld c, NUM_POKEMON +.asm_40c3c +	push bc +	ld a, [de] +	ld [wd265], a +	call Function40bd0 +	jr z, .asm_40c51 +	ld a, [wd265] +	ld [hli], a +	ld a, [wc7d2] +	inc a +	ld [wc7d2], a + +.asm_40c51 +	inc de +	pop bc +	dec c +	jr nz, .asm_40c3c +	ld a, [wc7d2] +	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 "data/pokedex/order_alpha.asm" + +NewPokedexOrder: ; 0x40d60 +INCLUDE "data/pokedex/order_new.asm" + +Function40e5b: ; 40e5b +	xor a +	ld [hBGMapMode], a +	hlcoord 0, 12 +	ld bc, $0412 +	call Function40ad5 +	ld a, [wc7d8] +	ld hl, Unknown_40e7d +	call Function41432 +	ld e, l +	ld d, h +	hlcoord 1, 14 +	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 + +Function40f08: ; 40f08 (10:4f08) +	xor a +	ld [hBGMapMode], a ; $ff00+$d4 +	hlcoord 0, 12 +	ld bc, $412 +	call Function40ad5 +	ld de, $4f32 +	hlcoord 1, 14 +	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 + +Function40f4f: ; 40f4f (10:4f4f) +	ld a, [wc7d8] +	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, [wc7d8] +	and a +	jr nz, .asm_40f76 +	ld hl, wc7d5 +	ld a, [hl] +	cp $1 +	jr z, .asm_40f80 +	dec [hl] +	jr .asm_40f82 +.asm_40f76 +	ld hl, wc7d6 +	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, [wc7d8] +	and a +	jr nz, .asm_40f99 +	ld hl, wc7d5 +	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, wc7d6 +	ld a, [hl] +	cp $11 +	jr nc, .asm_40fa4 +	inc [hl] +	jr .asm_40fa6 +.asm_40fa4 +	ld [hl], $0 +.asm_40fa6 +	scf +	ret + +Function40fa8: ; 40fa8 (10:4fa8) +	xor a +	ld [hBGMapMode], a ; $ff00+$d4 +	hlcoord 9, 3 +	ld bc, $408 +	ld a, $7f +	call Function413fe +	ld a, [wc7d5] +	hlcoord 9, 4 +	call Function40fcd +	ld a, [wc7d6] +	hlcoord 9, 6 +	call Function40fcd +	ld a, $1 +	ld [hBGMapMode], a ; $ff00+$d4 +	ret + +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, [wc7d6] +	and a +	call nz, Function41095 +	ld a, [wc7d5] +	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 [wc7df], a +	ld hl, wc6d0 +	ld de, wc6d0 +	ld c, NUM_POKEMON +	xor a +	ld [wc7d7], a +.asm_410ad +	push bc +	ld a, [hl] +	and a +	jr z, .asm_410e0 +	ld [wd265], a +	ld [CurSpecies], a +	call Function40bc4 +	jr z, .asm_410e0 +	push hl +	push de +	call GetBaseData +	pop de +	pop hl +	ld a, [wc7df] +	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, [wd265] +	ld [de], a +	inc de +	ld a, [wc7d7] +	inc a +	ld [wc7d7], a + +.asm_410e0 +	inc hl +	pop bc +	dec c +	jr nz, .asm_410ad +	ld l, e +	ld h, d +	ld a, [wc7d7] +	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 +	hlcoord 0, 12 +	ld bc, $0412 +	call Function40ad5 +	ld de, String_41126 +	hlcoord 1, 14 +	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 + +Function41148: ; 41148 (10:5148) +	ld a, [wc7d4] +	cp $1 +	jp z, Function41157 +	call Function41229 +	call Function4130e +	ret + +Function41157: ; 41157 (10:5157) +	ld hl, Unknown_41167 +	ld a, [wc7d1] +	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 + +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 + +Function41281: ; 41281 (10:5281) +	ld a, [wc7d4] +	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 + +Function412f1: ; 412f1 (10:52f1) +	ld de, Sprites +.asm_412f4 +	ld a, [hl] +	cp $ff +	ret z +	ld a, [wc7d1] +	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 + +Function4130e: ; 4130e (10:530e) +	push de +	ld a, [wc7d2] +	dec a +	ld e, a +	ld a, [wc7d1] +	ld hl, wc7d0 +	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, [wc7d2] +	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 + +Function4134f: ; 4134f (10:534f) +	xor a +	ld [wc7d8], a +	ld [wc7d9], a +	ld [wc7da], a +	ret + +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, [wc7d8] +	and a +	jr z, .asm_413bf +	call Function413d4 +	ld [hl], $7f +	ld hl, wc7d8 +	dec [hl] +	jr .asm_413af +.asm_413a0 +	ld a, [wc7d8] +	cp c +	jr nc, .asm_413bf +	call Function413d4 +	ld [hl], $7f +	ld hl, wc7d8 +	inc [hl] +.asm_413af +	call Function413d4 +	ld [hl], $ed +	ld a, $c +	ld [wc7d9], a +	xor a +	ld [wc7da], a +	scf +	ret +.asm_413bf +	and a +	ret +.asm_413c1 +	call Function413d4 +	ld [hl], $7f +	ld a, [wc7d8] +	cp c +	jr c, .asm_413ce +	ld a, $ff +.asm_413ce +	inc a +	ld [wc7d8], a +	jr .asm_413af + +Function413d4: ; 413d4 (10:53d4) +	ld a, [wc7d8] +	add a +	ld l, a +	ld h, $0 +	add hl, de +	ld a, [hli] +	ld h, [hl] +	ld l, a +	ret + +Function413e0: ; 413e0 (10:53e0) +	ld hl, wc7da +	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 + +Function413f5: ; 413f5 (10:53f5) +	ld hl, wc7d9 +	ld a, [hl] +	and a +	ret z +	dec [hl] +	scf +	ret + +Function413fe: ; 413fe (10:53fe) +	jp Functionfb8 + +Function41401: ; 41401 (10:5401) +	ld a, [rSVBK] ; $ff00+$70 +	push af +	ld a, $5 +	ld [rSVBK], a ; $ff00+$70 +	ld hl, Unkn1Pals +	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, [wdef4] +	ld [UnownLetter], a +	ld a, [wd265] +	ld [CurPartySpecies], a +	call GetBaseData +	ld de, VTiles2 +	predef GetFrontpic +	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 + + +Function41478: ; 41478 (10:5478) +	call Function40bb1 + +Function4147b: ; 4147b +	ld a, [wd265] +	dec a +	and $f8 +	srl a +	srl a +	srl a +	ld e, 0 +	ld d, a +	ld a, [wd265] +	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 SkipMusic +	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 "gfx/unknown/04150e.2bpp.lz" +; 416b0 + +PokedexSlowpokeLZ: ; 416b0 +INCBIN "gfx/pokedex/slowpoke.2bpp.lz" + +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, $270 +	ld a, BANK(UnownFont) +	call FarCopyBytes +	ld hl, $a188 +	ld bc, $1b0 +	call Function41504 +	ld de, $a188 +	ld hl, $9400 +	lb bc, BANK(Function41a2c), $1b +	call Request2bpp +	call CloseSRAM +	ret +; 41a58 + + +Function41a58: ; 41a58 (10:5a58) +	ld a, [UnownLetter] +	push af +	ld a, [wc7dd] +	ld e, a +	ld d, $0 +	ld hl, EndPokedexSeen ; wded9 (aliases: UnownDex) +	add hl, de +	ld a, [hl] +	ld [UnownLetter], a +	ld a, UNOWN +	ld [CurPartySpecies], a +	call GetBaseData +	ld de, $9000 +	predef GetFrontpic +	pop af +	ld [UnownLetter], a +	ret + @@ -41917,2589 +41917,9 @@ 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, [wcf63] -	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, [wc7d4] -	ld [wd959], 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, wc6d0 -	ld bc, $0115 -	xor a -	call ByteFill - -	xor a -	ld [wcf63], a -	ld [wcf64], a -	ld [wcf65], a -	ld [wcf66], a - -	call Function400a2 - -	ld a, [wd959] -	ld [wc7d4], 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 [wc7dc], a -	ret - -.asm_400ae -	ld a, 1 -	ld [wc7dc], a -	ret -; 400b4 - -Function400b4: ; 400b4 -	ld hl, wc6d0 -	ld a, [wc2d6] -	and a -	jr z, .asm_400ec -	cp $fc -	jr nc, .asm_400ec - -	ld b, a -	ld a, [wc7d2] -	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, [wc7d0] -	inc a -	ld [wc7d0], 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, [wc7d1] -	inc a -	ld [wc7d1], 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 [wc7e4], a -	ret -; 4010b - -Function4010b: ; 4010b -	ld a, [wcf63] -	ld hl, Jumptable_40115 -	call Function41432 -	jp [hl] -; 40115 - - -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 - - -Function40131: ; 40131 (10:4131) -	ld hl, wcf63 -	inc [hl] -	ret - -Function40136: ; 40136 (10:4136) -	ld hl, wcf63 -	set 7, [hl] -	ret - -Function4013c: ; 4013c (10:413c) -	xor a -	ld [hBGMapMode], a ; $ff00+$d4 -	call ClearSprites -	xor a -	ld hl, AttrMap -	ld bc, $168 -	call ByteFill -	callba Function1de171 -	hlcoord 0, 17 -	ld de, Unknown_407f2 -	call Function40acd -	ld a, $7 -	ld [wc7d3], a -	call Function40b0f -	call Function41aeb -	call Function41af7 -	call Function4074c -	ld a, $5 -	ld [hSCX], a ; $ff00+$cf -	ld a, [wc7d4] -	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 -	ld a, $4 -	call Function41423 -	call Function41148 -	callba Function1de171 -	hlcoord 0, 17 -	ld de, Unknown_407f2 -	call Function40acd -	ld a, $7 -	ld [wc7d3], a -	call Function40b0f -	call Function40131 -	ret - -Function401ae: ; 401ae (10:41ae) -	ld hl, hJoyPressed ; $ffa7 -	ld a, [hl] -	and B_BUTTON -	jr nz, .b -	ld a, [hl] -	and A_BUTTON -	jr nz, .a -	ld a, [hl] -	and SELECT -	jr nz, .select -	ld a, [hl] -	and START -	jr nz, .start -	call Function406c5 -	ret nc -	call Function41148 -	xor a -	ld [hBGMapMode], a ; $ff00+$d4 -	call Function40b0f -	call Function41ad7 -	call Function41af7 -	ret - -.a -	call Function40bb1 -	call Function40bd0 -	ret z -	ld a, $2 -	ld [wcf63], a -	ld a, $0 -	ld [wcf64], a -	ret - -.select -	call Function41401 -	ld a, $7 -	ld [wcf63], a -	xor a -	ld [hSCX], a ; $ff00+$cf -	ld a, $a7 -	ld [hWX], a ; $ff00+$d1 -	call DelayFrame -	ret - -.start -	call Function41401 -	ld a, $5 -	ld [wcf63], a -	xor a -	ld [hSCX], a ; $ff00+$cf -	ld a, $a7 -	ld [hWX], a ; $ff00+$d1 -	call DelayFrame -	ret - -.b -	ld a, $d -	ld [wcf63], a -	ret - -Function40217: ; 40217 (10:4217) -	call LowVolume -	xor a -	ld [wcf65], a -	xor a -	ld [hBGMapMode], a ; $ff00+$d4 -	call ClearSprites -	call Function41478 -	call Function407fd -	call Function4134f -	call Function40bb1 -	ld [wc2d6], a -	callba Function4424d -	call Function40ba0 -	call WaitBGMap -	ld a, $a7 -	ld [hWX], a ; $ff00+$d1 -	call Function40bb1 -	ld [CurPartySpecies], a -	ld a, $4 -	call Function41423 -	ld a, [CurPartySpecies] -	call PlayCry -	call Function40131 -	ret - -Function40258: ; 40258 (10:4258) -	ld de, Unknown_402e8 -	call Function4135a -	ld hl, hJoyPressed ; $ffa7 -	ld a, [hl] -	and B_BUTTON -	jr nz, .b -	ld a, [hl] -	and A_BUTTON -	jr nz, .a -	call Function4066c -	ret nc -	call Function40131 -	ret - -.a -	ld a, [wc7d8] -	ld hl, Jumptable_402f2 -	call Function41432 -	jp [hl] - -.b -	ld a, [LastVolume] -	and a -	jr z, .asm_40288 -	ld a, $77 -	ld [LastVolume], a - -.asm_40288 -	call MaxVolume -	ld a, [wcf64] -	ld [wcf63], a -	ret -; 40292 (10:4292) - -Function40292: ; 40292 -	ld a, [wcf65] -	xor $1 -	ld [wcf65], a -	call Function40bb1 -	ld [wc2d6], a -	callba Function4424d -	call WaitBGMap -	ret -; 402aa - -Function402aa: ; 402aa (10:42aa) -	call Function41401 -	xor a -	ld [wcf65], a -	xor a -	ld [hBGMapMode], a ; $ff00+$d4 -	call Function407fd -	call Function4134f -	call Function41478 -	call Function40bb1 -	ld [wc2d6], a -	callba Function4424d -	call Function40ba0 -	call Function4143b -	call WaitBGMap -	call Function40bb1 -	ld [CurPartySpecies], a -	ld a, $4 -	call Function41423 -	ld a, [CurPartySpecies] -	call PlayCry -	ld hl, wcf63 -	dec [hl] -	ret -; 402e8 (10:42e8) - -Unknown_402e8: ; 402e8 -	dw $0430 -	dwcoord 1, 17 -	dwcoord 6, 17 -	dwcoord 11, 17 -	dwcoord 15, 17 -; 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, [wc7e4] -	ld e, a -	predef Function91d11 -	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, [wd265] -	call GetCryIndex -	ld e, c -	ld d, b -	call PlayCryHeader -	ret -; 4034f - -Function4034f: ; 4034f -	call Function41415 -	xor a -	ld [hSCX], a -	ld a, [wcf65] -	push af -	ld a, [wcf64] -	push af -	ld a, [wcf63] -	push af -	callba Function8442c -	pop af -	ld [wcf63], a -	pop af -	ld [wcf64], a -	pop af -	ld [wcf65], 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 - -Function4039d: ; 4039d (10:439d) -	xor a -	ld [hBGMapMode], a ; $ff00+$d4 -	call ClearSprites -	call Function4087c -	call Function4134f -	ld a, [wc7d4] -	ld [wc7d8], a -	call Function40e5b -	call WaitBGMap -	ld a, $10 -	call Function41423 -	call Function40131 -	ret +INCLUDE "engine/pokedex.asm" -Function403be: ; 403be (10:43be) -	ld a, [wc7dc] -	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, [wc7d8] -	ld hl, Jumptable_40405 -	call Function41432 -	jp [hl] - -.asm_403ea -	call Function41401 -	ld a, $0 -	ld [wcf63], a -	ret -; 403f3 (10:43f3) - -Unknown_403f3: ; 403f3 -	dw $03c0 -	dwcoord 2, 4 -	dwcoord 2, 6 -	dwcoord 2, 8 -; 403fb - -Unknown_403fb: ; 403fb -	dw $04c0 -	dwcoord 2, 4 -	dwcoord 2, 6 -	dwcoord 2, 8 -	dwcoord 2, 10 -; 40405 - -Jumptable_40405: ; 40405 (10:4405) -	dw Function4040d -	dw Function40411 -	dw Function40415 -	dw Function4043a -; 4040d - -Function4040d: ; 4040d (10:440d) -	ld b, $0 -	jr Function40417 - -Function40411: ; 40411 (10:4411) -	ld b, $1 -	jr Function40417 - -Function40415: ; 40415 (10:4415) -	ld b, $2 -Function40417: ; 40417 (10:4417) -	ld a, [wc7d4] -	cp b -	jr z, .asm_40431 -	ld a, b -	ld [wc7d4], a -	call Function40bdc -	call Function40f08 -	xor a -	ld [wc7d0], a -	ld [wc7d1], a -	call Function400b4 - -.asm_40431 -	call Function41401 -	ld a, $0 -	ld [wcf63], a -	ret - -Function4043a: ; 4043a (10:443a) -	call Function41401 -	ld a, $b -	ld [wcf63], a -	ret - -Function40443: ; 40443 (10:4443) -	xor a -	ld [hBGMapMode], a ; $ff00+$d4 -	call ClearSprites -	call Function408f0 -	call Function4134f -	ld a, $1 -	ld [wc7d5], a -	xor a -	ld [wc7d6], a -	call Function40fa8 -	xor a -	ld [wc7db], a -	callba Function44207 -	call WaitBGMap -	ld a, $10 -	call Function41423 -	call Function40131 -	ret - -Function40471: ; 40471 (10:4471) -	ld de, Unknown_4049e -	call Function4135a -	call Function40f4f -	call c, Function40fa8 -	ld hl, hJoyPressed ; $ffa7 -	ld a, [hl] -	and START | B_BUTTON -	jr nz, .asm_40495 -	ld a, [hl] -	and A_BUTTON -	jr nz, .asm_4048b -	ret - -.asm_4048b -	ld a, [wc7d8] -	ld hl, Jumptable_404a8 -	call Function41432 -	jp [hl] - -.asm_40495 -	call Function41401 -	ld a, $0 -	ld [wcf63], a -	ret -; 4049e (10:449e) - -Unknown_4049e: ; 4049e -	dw $04c0 -	dwcoord 2, 4 -	dwcoord 2, 6 -	dwcoord 2, 13 -	dwcoord 2, 15 -; 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, [wc7d7] -	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 [wc7d2], a -	ld a, [wc7d0] -	ld [wc7e0], a -	ld a, [wc7d1] -	ld [wc7e1], a -	ld a, [wc2d6] -	ld [wcf65], a -	xor a -	ld [wc7d0], a -	ld [wc7d1], a -	call Function41401 -	ld a, $9 -	ld [wcf63], a -	ret -; 40501 - -Function40501: ; 40501 -	call Function41401 -	ld a, $0 -	ld [wcf63], a -	ret -; 4050a - -Function4050a: ; 4050a (10:450a) -	xor a -	ld [hBGMapMode], a ; $ff00+$d4 -	xor a -	ld hl, AttrMap -	ld bc, $168 -	call ByteFill -	call Function41ae1 -	call Function41af7 -	callba Function1de1d1 -	call Function409cf -	ld a, $4 -	ld [wc7d3], 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 -	ld a, $4 -	call Function41423 -	call Function40131 -	ret - -Function40562: ; 40562 (10:4562) -	ld hl, hJoyPressed ; $ffa7 -	ld a, [hl] -	and B_BUTTON -	jr nz, .asm_40595 -	ld a, [hl] -	and A_BUTTON -	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 [wcf63], a -	ld a, $9 -	ld [wcf64], a -	ret - -.asm_40595 -	ld a, [wc7e0] -	ld [wc7d0], a -	ld a, [wc7e1] -	ld [wc7d1], a -	ld a, [wcf65] -	ld [wc2d6], a -	call Function41401 -	call ClearSprites -	call Function40bdc -	ld a, $5 -	ld [wcf63], a -	xor a -	ld [hSCX], a ; $ff00+$cf -	ld a, $a7 -	ld [hWX], a ; $ff00+$d1 -	ret - -Function405bd: ; 405bd (10:45bd) -	call Function41a2c -	call Function409f1 -	xor a -	ld [wc7dd], a -	call Function41a58 -	call Function40658 -	callba Functionfba2e -	call WaitBGMap -	ld a, $16 -	call Function41423 -	call Function40131 -	ret - -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 [wcf63], 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 - -Function40610: ; 40610 (10:4610) -	ld hl, $ffa9 -	ld a, [hl] -	and D_RIGHT -	jr nz, .right -	ld a, [hl] -	and D_LEFT -	jr nz, .left -	ret - -.right -	ld a, [wc7de] -	ld e, a -	ld hl, wc7dd -	ld a, [hl] -	inc a -	cp e -	ret nc -	ld a, [hl] -	inc [hl] -	jr .asm_40635 - -.left -	ld hl, wc7dd -	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 - -Function40654: ; 40654 (10:4654) -	ld c, $7f -	jr asm_4065d - -Function40658: ; 40658 (10:4658) -	ld a, [wc7dd] -	ld c, $5a -asm_4065d: ; 4065d (10:465d) -	ld e, a -	ld d, 0 -	ld hl, Unknown_40a3e + 2 -	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 - -Function4066c: ; 4066c (10:466c) -	ld a, [wc7d1] -	ld [wc7e2], a -	ld a, [wc7d0] -	ld [wc7e3], a -	ld hl, $ffa9 -	ld a, [hl] -	and D_UP -	jr nz, .up -	ld a, [hl] -	and D_DOWN -	jr nz, .down -	and a -	ret - -.up -	ld a, [wc7d3] -	ld d, a -	ld a, [wc7d2] -	ld e, a -	call Function406ea -	jr nc, .asm_406b7 -	call Function40bb1 -	call Function40bd0 -	jr nz, .asm_406b5 -	jr .up - -.down -	ld a, [wc7d3] -	ld d, a -	ld a, [wc7d2] -	ld e, a -	call Function406fe -	jr nc, .asm_406b7 -	call Function40bb1 -	call Function40bd0 -	jr nz, .asm_406b5 -	jr .down - -.asm_406b5 -	scf -	ret - -.asm_406b7 -	ld a, [wc7e2] -	ld [wc7d1], a -	ld a, [wc7e3] -	ld [wc7d0], a -	and a -	ret - -Function406c5: ; 406c5 (10:46c5) -	ld a, [wc7d3] -	ld d, a -	ld a, [wc7d2] -	ld e, a -	ld hl, $ffa9 -	ld a, [hl] -	and D_UP -	jr nz, Function406ea -	ld a, [hl] -	and D_DOWN -	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 - -Function406ea: ; 406ea (10:46ea) -	ld hl, wc7d1 -	ld a, [hl] -	and a -	jr z, .asm_406f4 -	dec [hl] -	jr asm_4073f -.asm_406f4 -	ld hl, wc7d0 -	ld a, [hl] -	and a -	jr z, asm_4073d -	dec [hl] -	jr asm_4073f - -Function406fe: ; 406fe (10:46fe) -	ld hl, wc7d1 -	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, wc7d0 -	add [hl] -	cp e -	jr nc, asm_4073d -	inc [hl] -	jr asm_4073f -asm_40716: ; 40716 (10:4716) -	ld hl, wc7d0 -	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, wc7d0 -	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 - - -Function4074c: ; 4074c (10:474c) -	hlcoord 0, 17 -	ld de, Unknown_407f2 -	call Function40acd -	ld a, $32 -	ld hl, TileMap -	ld bc, $168 -	call ByteFill -	ld hl, TileMap -	lb bc, 7, 7 -	call Function40ad5 -	hlcoord 0, 9 -	ld bc, $607 -	call Function40ad5 -	hlcoord 1, 11 -	ld de, Unknown_407e1 -	call Function40acd -	ld hl, PokedexSeen ; wdeb9 (aliases: EndPokedexSeen) -	ld b, EndPokedexSeen - PokedexSeen -	call CountSetBits -	ld de, wd265 -	hlcoord 5, 12 -	ld bc, $103 -	call PrintNum -	hlcoord 1, 14 -	ld de, Unknown_407e6 -	call Function40acd -	ld hl, PokedexCaught -	ld b, EndPokedexCaught - PokedexCaught -	call CountSetBits -	ld de, wd265 -	hlcoord 5, 15 -	ld bc, $103 -	call PrintNum -	hlcoord 1, 17 -	ld de, Unknown_407ea -	call Function40acd -	hlcoord 8, 1 -	ld b, $7 -	ld a, $5a -	call Function40741 -	hlcoord 8, 10 -	ld b, $6 -	ld a, $5a -	call Function40741 -	hlcoord 8, 0 -	ld [hl], $59 -	hlcoord 8, 8 -	ld [hl], $53 -	hlcoord 8, 9 -	ld [hl], $54 -	hlcoord 8, 16 -	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 -	hlcoord 19, 0 -	ld [hl], $34 -	hlcoord 19, 1 -	ld a, $7f -	ld b, $f -	call Function40741 -	ld [hl], $39 -	hlcoord 1, 10 -	ld bc, $0013 -	ld a, $61 -	call ByteFill -	hlcoord 1, 17 -	ld bc, $0012 -	ld a, $7f -	call ByteFill -	hlcoord 9, 7 -	ld de, Unknown_40852 -	call Function40acd -	hlcoord 9, 9 -	ld de, Unknown_4085c -	call Function40acd -	hlcoord 0, 17 -	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 - -Function4087c: ; 4087c (10:487c) -	call Function40aa6 -	hlcoord 0, 2 -	lb bc, 8, 18 -	call Function40ad5 -	hlcoord 0, 12 -	lb bc, 4, 18 -	call Function40ad5 -	hlcoord 0, 1 -	ld de, Unknown_408b2 -	call Function40acd -	hlcoord 3, 4 -	ld de, String_408bd -	call PlaceString -	ld a, [wc7dc] -	and a -	ret z -	hlcoord 3, 10 -	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 - -Function408f0: ; 408f0 (10:48f0) -	call Function40aa6 -	hlcoord 0, 2 -	lb bc, 14, 18 -	call Function40ad5 -	hlcoord 0, 1 -	ld de, Unknown_4092a -	call Function40acd -	hlcoord 8, 4 -	ld de, Unknown_40935 -	call Function40acd -	hlcoord 8, 6 -	ld de, Unknown_40935 -	call Function40acd -	hlcoord 3, 4 -	ld de, String_40940 -	call PlaceString -	hlcoord 3, 13 -	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" -	next "TYPE2" -	db   "@" -; 4094c - -String_4094c: ; 4094c -	db   "BEGIN SEARCH!!" -	next "CANCEL" -	db   "@" -; 40962 - -Function40962: ; 40962 (10:4962) -	call Function40aa6 -	ld hl, TileMap -	lb bc, 7, 7 -	call Function40ad5 -	hlcoord 0, 11 -	lb bc, 5, 18 -	call Function40ad5 -	hlcoord 1, 12 -	ld de, String_409ae -	call PlaceString -	ld de, wc7d7 -	hlcoord 1, 16 -	ld bc, $103 -	call PrintNum -	hlcoord 8, 0 -	ld [hl], $59 -	hlcoord 8, 1 -	ld b, $7 -	ld a, $5a -	call Function40741 -	hlcoord 8, 8 -	ld [hl], $53 -	hlcoord 8, 9 -	ld [hl], $69 -	hlcoord 8, 10 -	ld [hl], $6a -	call Function40ab2 -	ret -; 409ae (10:49ae) - -String_409ae: ; 409ae -	db   "SEARCH RESULTS" -	next "  TYPE" -	next "    FOUND!" -	db   "@" -; 409cf - -Function409cf: ; 409cf (10:49cf) -	ld a, [wc7d5] -	hlcoord 0, 14 -	call Function40fcd -	ld a, [wc7d5] -	ld b, a -	ld a, [wc7d6] -	and a -	jr z, .asm_409f0 -	cp b -	jr z, .asm_409f0 -	hlcoord 2, 15 -	call Function40fcd -	hlcoord 1, 15 -	ld [hl], $f3 -.asm_409f0 -	ret - -Function409f1: ; 409f1 (10:49f1) -	call Function40aa6 -	hlcoord 2, 1 -	lb bc, 10, 13 -	call Function40ad5 -	hlcoord 2, 14 -	lb bc, 1, 13 -	call Function40ad5 -	hlcoord 2, 15 -	ld [hl], $3d -	hlcoord 16, 15 -	ld [hl], $3e -	hlcoord 6, 5 -	call Function40ab5 -	ld de, 0 -	ld b, 0 -	ld c, 26 -.asm_40a1d -	ld hl, 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 [wc7de], a -	ret -; 40a3e (10:4a3e) - -Unknown_40a3e: ; 40a3e -	dwcoord   4,11,   3,11 -	dwcoord   4,10,   3,10 -	dwcoord   4, 9,   3, 9 -	dwcoord   4, 8,   3, 8 -	dwcoord   4, 7,   3, 7 -	dwcoord   4, 6,   3, 6 -	dwcoord   4, 5,   3, 5 -	dwcoord   4, 4,   3, 4 -	dwcoord   4, 3,   3, 2 -	dwcoord   5, 3,   5, 2 -	dwcoord   6, 3,   6, 2 -	dwcoord   7, 3,   7, 2 -	dwcoord   8, 3,   8, 2 -	dwcoord   9, 3,   9, 2 -	dwcoord  10, 3,  10, 2 -	dwcoord  11, 3,  11, 2 -	dwcoord  12, 3,  12, 2 -	dwcoord  13, 3,  13, 2 -	dwcoord  14, 3,  15, 2 -	dwcoord  14, 4,  15, 4 -	dwcoord  14, 5,  15, 5 -	dwcoord  14, 6,  15, 6 -	dwcoord  14, 7,  15, 7 -	dwcoord  14, 8,  15, 8 -	dwcoord  14, 9,  15, 9 -	dwcoord  14,10,  15,10 -; 40aa6 - -Function40aa6: ; 40aa6 -	ld hl, TileMap -	ld a, $32 -	ld bc, $0168 -	call ByteFill -	ret -; 40ab2 - -Function40ab2: ; 40ab2 -	hlcoord 1, 1 -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 - - -Function40b0f: ; 40b0f (10:4b0f) -	ld a, [wc7d4] -	cp $1 -	jr z, .asm_40b1a -	ld c, $b -	jr .asm_40b1c -.asm_40b1a -	ld c, $b -.asm_40b1c -	hlcoord 0, 1 -	ld a, [wc7d3] -	add a -	inc a -	ld b, a -	ld a, $7f -	call Function413fe -	ld a, [wc7d0] -	ld e, a -	ld d, $0 -	ld hl, wc6d0 -	add hl, de -	ld e, l -	ld d, h -	hlcoord 0, 2 -	ld a, [wc7d3] -.asm_40b3c -	push af -	ld a, [de] -	ld [wd265], 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 - -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 - -Function40b6a: ; 40b6a (10:4b6a) -	ld a, [wc7d4] -	cp $1 -	jr z, .asm_40b72 -	ret -.asm_40b72 -	push hl -	ld de, -20 -	add hl, de -	ld de, wd265 -	ld bc, $8103 -	call PrintNum -	pop hl -	ret - -Function40b82: ; 40b82 (10:4b82) -	call Function40bc4 -	jr nz, .asm_40b89 -	inc hl -	ret -.asm_40b89 -	ld a, $4f -	ld [hli], a -	ret - -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 -	hlcoord 18, 1 -	ld a, $62 -	ld [hli], a -	inc a -	ld [hl], a -	hlcoord 18, 2 -	ld a, $64 -	ld [hli], a -	inc a -	ld [hl], a -	ret -; 40bb1 - - -Function40bb1: ; 40bb1 -	ld a, [wc7d1] -	ld hl, wc7d0 -	add [hl] -	ld e, a -	ld d, $0 -	ld hl, wc6d0 -	add hl, de -	ld a, [hl] -	ld [wd265], a -	ret -; 40bc4 - - -Function40bc4: ; 40bc4 (10:4bc4) -	push de -	push hl -	ld a, [wd265] -	dec a -	call CheckCaughtMon -	pop hl -	pop de -	ret - - -Function40bd0: ; 40bd0 -	push de -	push hl -	ld a, [wd265] -	dec a -	call CheckSeenMon -	pop hl -	pop de -	ret -; 40bdc - - - -Function40bdc: ; 40bdc -	ld hl, wc6d0 -	ld bc, $100 -	xor a -	call ByteFill -	ld a, [wc7d4] -	ld hl, Jumptable_40bf0 -	call Function41432 -	jp [hl] -; 40bf0 - - -Jumptable_40bf0: ; 40bf0 (10:4bf0) -	dw Function40bf6 -	dw Function40c08 -	dw Function40c30 - - -Function40bf6: ; 40bf6 (10:4bf6) -	ld de, NewPokedexOrder -	ld hl, wc6d0 -	ld c, NUM_POKEMON -.asm_40bfe -	ld a, [de] -	inc de -	ld [hli], a -	dec c -	jr nz, .asm_40bfe -	call Function40c18 -	ret - -Function40c08: ; 40c08 (10:4c08) -	ld hl, wc6d0 -	ld a, $1 -	ld c, NUM_POKEMON -.asm_40c0f -	ld [hli], a -	inc a -	dec c -	jr nz, .asm_40c0f -	call Function40c18 -	ret - -Function40c18: ; 40c18 (10:4c18) -	ld hl, wc7ca -	ld d, NUM_POKEMON -	ld e, d -.asm_40c1e -	ld a, [hld] -	ld [wd265], a -	call Function40bd0 -	jr nz, .asm_40c2b -	dec d -	dec e -	jr nz, .asm_40c1e -.asm_40c2b -	ld a, d -	ld [wc7d2], a -	ret - -Function40c30: ; 40c30 -	xor a -	ld [wc7d2], a -	ld hl, wc6d0 -	ld de, AlphabeticalPokedexOrder -	ld c, NUM_POKEMON -.asm_40c3c -	push bc -	ld a, [de] -	ld [wd265], a -	call Function40bd0 -	jr z, .asm_40c51 -	ld a, [wd265] -	ld [hli], a -	ld a, [wc7d2] -	inc a -	ld [wc7d2], a - -.asm_40c51 -	inc de -	pop bc -	dec c -	jr nz, .asm_40c3c -	ld a, [wc7d2] -	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 "data/pokedex/order_alpha.asm" - -NewPokedexOrder: ; 0x40d60 -INCLUDE "data/pokedex/order_new.asm" - -Function40e5b: ; 40e5b -	xor a -	ld [hBGMapMode], a -	hlcoord 0, 12 -	ld bc, $0412 -	call Function40ad5 -	ld a, [wc7d8] -	ld hl, Unknown_40e7d -	call Function41432 -	ld e, l -	ld d, h -	hlcoord 1, 14 -	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 - -Function40f08: ; 40f08 (10:4f08) -	xor a -	ld [hBGMapMode], a ; $ff00+$d4 -	hlcoord 0, 12 -	ld bc, $412 -	call Function40ad5 -	ld de, $4f32 -	hlcoord 1, 14 -	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 - -Function40f4f: ; 40f4f (10:4f4f) -	ld a, [wc7d8] -	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, [wc7d8] -	and a -	jr nz, .asm_40f76 -	ld hl, wc7d5 -	ld a, [hl] -	cp $1 -	jr z, .asm_40f80 -	dec [hl] -	jr .asm_40f82 -.asm_40f76 -	ld hl, wc7d6 -	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, [wc7d8] -	and a -	jr nz, .asm_40f99 -	ld hl, wc7d5 -	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, wc7d6 -	ld a, [hl] -	cp $11 -	jr nc, .asm_40fa4 -	inc [hl] -	jr .asm_40fa6 -.asm_40fa4 -	ld [hl], $0 -.asm_40fa6 -	scf -	ret - -Function40fa8: ; 40fa8 (10:4fa8) -	xor a -	ld [hBGMapMode], a ; $ff00+$d4 -	hlcoord 9, 3 -	ld bc, $408 -	ld a, $7f -	call Function413fe -	ld a, [wc7d5] -	hlcoord 9, 4 -	call Function40fcd -	ld a, [wc7d6] -	hlcoord 9, 6 -	call Function40fcd -	ld a, $1 -	ld [hBGMapMode], a ; $ff00+$d4 -	ret - -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, [wc7d6] -	and a -	call nz, Function41095 -	ld a, [wc7d5] -	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 [wc7df], a -	ld hl, wc6d0 -	ld de, wc6d0 -	ld c, NUM_POKEMON -	xor a -	ld [wc7d7], a -.asm_410ad -	push bc -	ld a, [hl] -	and a -	jr z, .asm_410e0 -	ld [wd265], a -	ld [CurSpecies], a -	call Function40bc4 -	jr z, .asm_410e0 -	push hl -	push de -	call GetBaseData -	pop de -	pop hl -	ld a, [wc7df] -	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, [wd265] -	ld [de], a -	inc de -	ld a, [wc7d7] -	inc a -	ld [wc7d7], a - -.asm_410e0 -	inc hl -	pop bc -	dec c -	jr nz, .asm_410ad -	ld l, e -	ld h, d -	ld a, [wc7d7] -	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 -	hlcoord 0, 12 -	ld bc, $0412 -	call Function40ad5 -	ld de, String_41126 -	hlcoord 1, 14 -	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 - -Function41148: ; 41148 (10:5148) -	ld a, [wc7d4] -	cp $1 -	jp z, Function41157 -	call Function41229 -	call Function4130e -	ret - -Function41157: ; 41157 (10:5157) -	ld hl, Unknown_41167 -	ld a, [wc7d1] -	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 - -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 - -Function41281: ; 41281 (10:5281) -	ld a, [wc7d4] -	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 - -Function412f1: ; 412f1 (10:52f1) -	ld de, Sprites -.asm_412f4 -	ld a, [hl] -	cp $ff -	ret z -	ld a, [wc7d1] -	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 - -Function4130e: ; 4130e (10:530e) -	push de -	ld a, [wc7d2] -	dec a -	ld e, a -	ld a, [wc7d1] -	ld hl, wc7d0 -	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, [wc7d2] -	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 - -Function4134f: ; 4134f (10:534f) -	xor a -	ld [wc7d8], a -	ld [wc7d9], a -	ld [wc7da], a -	ret - -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, [wc7d8] -	and a -	jr z, .asm_413bf -	call Function413d4 -	ld [hl], $7f -	ld hl, wc7d8 -	dec [hl] -	jr .asm_413af -.asm_413a0 -	ld a, [wc7d8] -	cp c -	jr nc, .asm_413bf -	call Function413d4 -	ld [hl], $7f -	ld hl, wc7d8 -	inc [hl] -.asm_413af -	call Function413d4 -	ld [hl], $ed -	ld a, $c -	ld [wc7d9], a -	xor a -	ld [wc7da], a -	scf -	ret -.asm_413bf -	and a -	ret -.asm_413c1 -	call Function413d4 -	ld [hl], $7f -	ld a, [wc7d8] -	cp c -	jr c, .asm_413ce -	ld a, $ff -.asm_413ce -	inc a -	ld [wc7d8], a -	jr .asm_413af - -Function413d4: ; 413d4 (10:53d4) -	ld a, [wc7d8] -	add a -	ld l, a -	ld h, $0 -	add hl, de -	ld a, [hli] -	ld h, [hl] -	ld l, a -	ret - -Function413e0: ; 413e0 (10:53e0) -	ld hl, wc7da -	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 - -Function413f5: ; 413f5 (10:53f5) -	ld hl, wc7d9 -	ld a, [hl] -	and a -	ret z -	dec [hl] -	scf -	ret - -Function413fe: ; 413fe (10:53fe) -	jp Functionfb8 - -Function41401: ; 41401 (10:5401) -	ld a, [rSVBK] ; $ff00+$70 -	push af -	ld a, $5 -	ld [rSVBK], a ; $ff00+$70 -	ld hl, Unkn1Pals -	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, [wdef4] -	ld [UnownLetter], a -	ld a, [wd265] -	ld [CurPartySpecies], a -	call GetBaseData -	ld de, VTiles2 -	predef GetFrontpic -	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 - - -Function41478: ; 41478 (10:5478) -	call Function40bb1 - -Function4147b: ; 4147b -	ld a, [wd265] -	dec a -	and $f8 -	srl a -	srl a -	srl a -	ld e, 0 -	ld d, a -	ld a, [wd265] -	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 SkipMusic -	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 "gfx/unknown/04150e.2bpp.lz" -; 416b0 - -PokedexSlowpokeLZ: ; 416b0 -INCBIN "gfx/pokedex/slowpoke.2bpp.lz" - -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, $270 -	ld a, BANK(UnownFont) -	call FarCopyBytes -	ld hl, $a188 -	ld bc, $1b0 -	call Function41504 -	ld de, $a188 -	ld hl, $9400 -	lb bc, BANK(Function41a2c), $1b -	call Request2bpp -	call CloseSRAM -	ret -; 41a58 - - -Function41a58: ; 41a58 (10:5a58) -	ld a, [UnownLetter] -	push af -	ld a, [wc7dd] -	ld e, a -	ld d, $0 -	ld hl, EndPokedexSeen ; wded9 (aliases: UnownDex) -	add hl, de -	ld a, [hl] -	ld [UnownLetter], a -	ld a, UNOWN -	ld [CurPartySpecies], a -	call GetBaseData -	ld de, $9000 -	predef GetFrontpic -	pop af -	ld [UnownLetter], a -	ret  Function41a7f: ; 41a7f  	xor a | 
