summaryrefslogtreecommitdiff
path: root/engine/pokedex.asm
diff options
context:
space:
mode:
Diffstat (limited to 'engine/pokedex.asm')
-rw-r--r--engine/pokedex.asm908
1 files changed, 464 insertions, 444 deletions
diff --git a/engine/pokedex.asm b/engine/pokedex.asm
index 78fe5fc45..25111dea1 100644
--- a/engine/pokedex.asm
+++ b/engine/pokedex.asm
@@ -31,7 +31,7 @@ Pokedex: ; 40000
ld a, [wJumptableIndex]
bit 7, a
jr nz, .exit
- call Function4010b
+ call Pokedex_Main
call DelayFrame
jr .main
@@ -40,8 +40,8 @@ Pokedex: ; 40000
call PlaySFX
call WaitSFX
call ClearSprites
- ld a, [wc7d4]
- ld [wd959], a
+ ld a, [wCurrentDexMode]
+ ld [wLastDexMode], a
pop af
ld [hInMenu], a
@@ -63,7 +63,7 @@ InitPokedex: ; 40063
call ClearBGPalettes
call ClearSprites
call ClearTileMap
- call Function414b7
+ call Pokedex_LoadGFX
ld hl, wPokedexDataStart
ld bc, wPokedexDataEnd - wPokedexDataStart
@@ -76,78 +76,78 @@ InitPokedex: ; 40063
ld [wcf65], a
ld [wcf66], a
- call Function400a2
+ call Pokedex_CheckUnlockedUnownMode
- ld a, [wd959]
- ld [wc7d4], a
+ ld a, [wLastDexMode]
+ ld [wCurrentDexMode], a
- call Function40bdc
- call Function400b4
- call Function400ed
+ call Pokedex_ChangeMode
+ call Pokedex_InitCursorPosition
+ call Pokedex_GetLandmark
callba Function1de247
- call Function41af7
+ call Pokedex_ResetBGMapMode
ret
; 400a2
-Function400a2: ; 400a2
+Pokedex_CheckUnlockedUnownMode: ; 400a2
ld a, [StatusFlags]
bit 1, a
- jr nz, .asm_400ae
+ jr nz, .unlocked
xor a
- ld [wc7dc], a
+ ld [wUnlockedUnownMode], a
ret
-.asm_400ae
- ld a, 1
- ld [wc7dc], a
+.unlocked
+ ld a, TRUE
+ ld [wUnlockedUnownMode], a
ret
; 400b4
-Function400b4: ; 400b4
- ld hl, wc6d0
- ld a, [wc2d6]
+Pokedex_InitCursorPosition: ; 400b4
+ ld hl, wPokedexDataStart
+ ld a, [wLastDexEntry]
and a
- jr z, .asm_400ec
- cp $fc
- jr nc, .asm_400ec
+ jr z, .done
+ cp NUM_POKEMON + 1
+ jr nc, .done
ld b, a
- ld a, [wc7d2]
+ ld a, [wDexListingEnd]
cp $8
- jr c, .asm_400db
+ jr c, .only_one_page
sub $7
ld c, a
-.asm_400cc
+.loop1
ld a, b
cp [hl]
- jr z, .asm_400ec
+ jr z, .done
inc hl
- ld a, [wc7d0]
+ ld a, [wDexListingPage]
inc a
- ld [wc7d0], a
+ ld [wDexListingPage], a
dec c
- jr nz, .asm_400cc
+ jr nz, .loop1
-.asm_400db
+.only_one_page
ld c, $7
-.asm_400dd
+.loop2
ld a, b
cp [hl]
- jr z, .asm_400ec
+ jr z, .done
inc hl
- ld a, [wc7d1]
+ ld a, [wDexListingCursor]
inc a
- ld [wc7d1], a
+ ld [wDexListingCursor], a
dec c
- jr nz, .asm_400dd
+ jr nz, .loop2
-.asm_400ec
+.done
ret
; 400ed
-Function400ed: ; 400ed
+Pokedex_GetLandmark: ; 400ed
ld a, [MapGroup]
ld b, a
ld a, [MapNumber]
@@ -155,7 +155,7 @@ Function400ed: ; 400ed
call GetWorldMapLocation
cp SPECIAL_MAP
- jr nz, .asm_40107
+ jr nz, .load
ld a, [BackupMapGroup]
ld b, a
@@ -163,20 +163,20 @@ Function400ed: ; 400ed
ld c, a
call GetWorldMapLocation
-.asm_40107
- ld [wc7e4], a
+.load
+ ld [wDexCurrentLocation], a
ret
; 4010b
-Function4010b: ; 4010b
+Pokedex_Main: ; 4010b
ld a, [wJumptableIndex]
- ld hl, Jumptable_40115
- call Function41432
+ ld hl, .Jumptable
+ call Pokedex_LoadPointer
jp [hl]
; 40115
-Jumptable_40115: ; 40115 (10:4115)
+.Jumptable: ; 40115 (10:4115)
dw Function4013c
dw Function401ae
dw Function40217
@@ -188,17 +188,17 @@ Jumptable_40115: ; 40115 (10:4115)
dw Function403be
dw Function4050a
dw Function40562
- dw Function405bd
+ dw Pokedex_UnownMode ; Unown Dex
dw Function405df
- dw Function40136
+ dw Pokedex_CloseDex ; Exit
-Function40131: ; 40131 (10:4131)
+Pokedex_IncrementDexPointer: ; 40131 (10:4131)
ld hl, wJumptableIndex
inc [hl]
ret
-Function40136: ; 40136 (10:4136)
+Pokedex_CloseDex: ; 40136 (10:4136)
ld hl, wJumptableIndex
set 7, [hl]
ret
@@ -209,45 +209,46 @@ Function4013c: ; 4013c (10:413c)
call ClearSprites
xor a
hlcoord 0, 0, AttrMap
- ld bc, $168
+ ld bc, SCREEN_HEIGHT * SCREEN_WIDTH
call ByteFill
- callba Function1de171
+ callba DrawPokedexListWindow
hlcoord 0, 17
ld de, String_START_SEARCH
- call Function40acd
+ call Pokedex_PlaceString
ld a, $7
ld [wc7d3], a
call Function40b0f
- call Function41aeb
- call Function41af7
+ call Pokedex_SetBGMapMode_3ifDMG_4ifCGB
+ call Pokedex_ResetBGMapMode
call Function4074c
ld a, $5
ld [hSCX], a
- ld a, [wc7d4]
- cp $1
+
+ ld a, [wCurrentDexMode]
+ cp DEXMODE_OLD
ld a, $4a
- jr z, .asm_4017b
+ jr z, .okay
ld a, $47
-
-.asm_4017b
+.okay
ld [hWX], a
xor a
ld [hWY], a
call WaitBGMap
- call Function41af7
- ld a, $ff
+
+ call Pokedex_ResetBGMapMode
+ ld a, -1
ld [CurPartySpecies], a
ld a, $4
call Function41423
call Function41148
- callba Function1de171
+ callba DrawPokedexListWindow
hlcoord 0, 17
ld de, String_START_SEARCH
- call Function40acd
+ call Pokedex_PlaceString
ld a, $7
ld [wc7d3], a
call Function40b0f
- call Function40131
+ call Pokedex_IncrementDexPointer
ret
Function401ae: ; 401ae (10:41ae)
@@ -270,13 +271,13 @@ Function401ae: ; 401ae (10:41ae)
xor a
ld [hBGMapMode], a
call Function40b0f
- call Function41ad7
- call Function41af7
+ call Pokedex_SetBGMapMode3
+ call Pokedex_ResetBGMapMode
ret
.a
- call Function40bb1
- call Function40bd0
+ call Pokedex_GetMonAtCursorPosition
+ call Pokedex_CheckSeen
ret z
ld a, $2
ld [wJumptableIndex], a
@@ -318,23 +319,23 @@ Function40217: ; 40217 (10:4217)
xor a
ld [hBGMapMode], a
call ClearSprites
- call Function41478
+ call Pokedex_LoadCurrentFootprint
call Function407fd
call Function4134f
- call Function40bb1
- ld [wc2d6], a
+ call Pokedex_GetMonAtCursorPosition
+ ld [wLastDexEntry], a
callba DisplayDexEntry
- call Function40ba0
+ call Pokedex_DrawFootprint
call WaitBGMap
ld a, $a7
ld [hWX], a
- call Function40bb1
+ call Pokedex_GetMonAtCursorPosition
ld [CurPartySpecies], a
ld a, $4
call Function41423
ld a, [CurPartySpecies]
call PlayCry
- call Function40131
+ call Pokedex_IncrementDexPointer
ret
Function40258: ; 40258 (10:4258)
@@ -347,25 +348,25 @@ Function40258: ; 40258 (10:4258)
ld a, [hl]
and A_BUTTON
jr nz, .a
- call Function4066c
+ call Pokedex_NextOrPreviousDexEntry
ret nc
- call Function40131
+ call Pokedex_IncrementDexPointer
ret
.a
ld a, [wc7d8]
ld hl, Jumptable_402f2
- call Function41432
+ call Pokedex_LoadPointer
jp [hl]
.b
ld a, [LastVolume]
and a
- jr z, .asm_40288
+ jr z, .max_volume
ld a, $77
ld [LastVolume], a
-.asm_40288
+.max_volume
call MaxVolume
ld a, [wcf64]
ld [wJumptableIndex], a
@@ -376,8 +377,8 @@ Function40292: ; 40292
ld a, [wPokedexStatus]
xor $1
ld [wPokedexStatus], a
- call Function40bb1
- ld [wc2d6], a
+ call Pokedex_GetMonAtCursorPosition
+ ld [wLastDexEntry], a
callba DisplayDexEntry
call WaitBGMap
ret
@@ -391,14 +392,14 @@ Function402aa: ; 402aa (10:42aa)
ld [hBGMapMode], a
call Function407fd
call Function4134f
- call Function41478
- call Function40bb1
- ld [wc2d6], a
+ call Pokedex_LoadCurrentFootprint
+ call Pokedex_GetMonAtCursorPosition
+ ld [wLastDexEntry], a
callba DisplayDexEntry
- call Function40ba0
+ call Pokedex_DrawFootprint
call Function4143b
call WaitBGMap
- call Function40bb1
+ call Pokedex_GetMonAtCursorPosition
ld [CurPartySpecies], a
ld a, $4
call Function41423
@@ -410,11 +411,12 @@ Function402aa: ; 402aa (10:42aa)
; 402e8 (10:42e8)
Unknown_402e8: ; 402e8
- dw $0430
+ db D_RIGHT | D_LEFT, 4
dwcoord 1, 17
dwcoord 6, 17
dwcoord 11, 17
dwcoord 15, 17
+
; 402f2
Jumptable_402f2: ; 402f2
@@ -433,8 +435,8 @@ Function402fa: ; 402fa
ld [hWX], a
ld a, $90
ld [hWY], a
- call Function40bb1
- ld a, [wc7e4]
+ call Pokedex_GetMonAtCursorPosition
+ ld a, [wDexCurrentLocation]
ld e, a
predef Function91d11
call Function41401
@@ -449,7 +451,7 @@ Function402fa: ; 402fa
call Function4038d
call Function4143b
call WaitBGMap
- call Function40bb1
+ call Pokedex_GetMonAtCursorPosition
ld [CurPartySpecies], a
ld a, $4
call Function41423
@@ -457,7 +459,7 @@ Function402fa: ; 402fa
; 40340
Function40340: ; 40340
- call Function40bb1
+ call Pokedex_GetMonAtCursorPosition
ld a, [wd265]
call GetCryIndex
ld e, c
@@ -485,7 +487,7 @@ Function4034f: ; 4034f
ld [wcf65], a
call ClearBGPalettes
call DisableLCD
- call Function414fb
+ call Pokedex_LoadInvertedFont
call Function4038d
call EnableLCD
call WaitBGMap
@@ -497,9 +499,9 @@ Function4034f: ; 4034f
Function4038d: ; 4038d
call Function407fd
- call Function40bb1
+ call Pokedex_GetMonAtCursorPosition
callba DisplayDexEntry
- call Function40ba0
+ call Pokedex_DrawFootprint
ret
; 4039d
@@ -509,17 +511,17 @@ Function4039d: ; 4039d (10:439d)
call ClearSprites
call Function4087c
call Function4134f
- ld a, [wc7d4]
+ ld a, [wCurrentDexMode]
ld [wc7d8], a
call Function40e5b
call WaitBGMap
ld a, $10
call Function41423
- call Function40131
+ call Pokedex_IncrementDexPointer
ret
Function403be: ; 403be (10:43be)
- ld a, [wc7dc]
+ ld a, [wUnlockedUnownMode]
and a
jr nz, .asm_403c9
ld de, Unknown_403f3
@@ -542,7 +544,7 @@ Function403be: ; 403be (10:43be)
.asm_403e0
ld a, [wc7d8]
ld hl, Jumptable_40405
- call Function41432
+ call Pokedex_LoadPointer
jp [hl]
.asm_403ea
@@ -553,17 +555,17 @@ Function403be: ; 403be (10:43be)
; 403f3 (10:43f3)
Unknown_403f3: ; 403f3
- dw $03c0
- dwcoord 2, 4
- dwcoord 2, 6
- dwcoord 2, 8
+ db D_UP | D_DOWN, 3
+ dwcoord 2, 4
+ dwcoord 2, 6
+ dwcoord 2, 8
; 403fb
Unknown_403fb: ; 403fb
- dw $04c0
- dwcoord 2, 4
- dwcoord 2, 6
- dwcoord 2, 8
+ db D_UP | D_DOWN, 4
+ dwcoord 2, 4
+ dwcoord 2, 6
+ dwcoord 2, 8
dwcoord 2, 10
; 40405
@@ -585,17 +587,17 @@ Function40411: ; 40411 (10:4411)
Function40415: ; 40415 (10:4415)
ld b, $2
Function40417: ; 40417 (10:4417)
- ld a, [wc7d4]
+ ld a, [wCurrentDexMode]
cp b
jr z, .asm_40431
ld a, b
- ld [wc7d4], a
- call Function40bdc
+ ld [wCurrentDexMode], a
+ call Pokedex_ChangeMode
call Function40f08
xor a
- ld [wc7d0], a
- ld [wc7d1], a
- call Function400b4
+ ld [wDexListingPage], a
+ ld [wDexListingCursor], a
+ call Pokedex_InitCursorPosition
.asm_40431
call Function41401
@@ -626,7 +628,7 @@ Function40443: ; 40443 (10:4443)
call WaitBGMap
ld a, $10
call Function41423
- call Function40131
+ call Pokedex_IncrementDexPointer
ret
Function40471: ; 40471 (10:4471)
@@ -646,7 +648,7 @@ Function40471: ; 40471 (10:4471)
.asm_4048b
ld a, [wc7d8]
ld hl, Jumptable_404a8
- call Function41432
+ call Pokedex_LoadPointer
jp [hl]
.asm_40495
@@ -657,7 +659,7 @@ Function40471: ; 40471 (10:4471)
; 4049e (10:449e)
Unknown_4049e: ; 4049e
- dw $04c0
+ db D_UP | D_DOWN, 4
dwcoord 2, 4
dwcoord 2, 6
dwcoord 2, 13
@@ -683,7 +685,7 @@ Function404b7: ; 404b7
ld a, [wc7d7]
and a
jr nz, .asm_404dc
- call Function40bdc
+ call Pokedex_ChangeMode
call Function41107
xor a
ld [hBGMapMode], a
@@ -694,16 +696,16 @@ Function404b7: ; 404b7
ret
.asm_404dc
- ld [wc7d2], a
- ld a, [wc7d0]
+ ld [wDexListingEnd], a
+ ld a, [wDexListingPage]
ld [wc7e0], a
- ld a, [wc7d1]
+ ld a, [wDexListingCursor]
ld [wc7e1], a
- ld a, [wc2d6]
+ ld a, [wLastDexEntry]
ld [wcf65], a
xor a
- ld [wc7d0], a
- ld [wc7d1], a
+ ld [wDexListingPage], a
+ ld [wDexListingCursor], a
call Function41401
ld a, $9
ld [wJumptableIndex], a
@@ -722,17 +724,17 @@ Function4050a: ; 4050a (10:450a)
ld [hBGMapMode], a
xor a
hlcoord 0, 0, AttrMap
- ld bc, $168
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
call ByteFill
- call Function41ae1
- call Function41af7
- callba Function1de1d1
+ call Pokedex_SetBGMapMode4
+ call Pokedex_ResetBGMapMode
+ callba DrawPokedexSearchResultsWindow
call Function409cf
ld a, $4
ld [wc7d3], a
call Function40b0f
- call Function41ad7
- call Function41af7
+ call Pokedex_SetBGMapMode3
+ call Pokedex_ResetBGMapMode
call Function40962
ld a, $5
ld [hSCX], a
@@ -741,15 +743,15 @@ Function4050a: ; 4050a (10:450a)
xor a
ld [hWY], a
call WaitBGMap
- call Function41af7
- callba Function1de1d1
+ call Pokedex_ResetBGMapMode
+ callba DrawPokedexSearchResultsWindow
call Function409cf
call Function41281
ld a, $ff
ld [CurPartySpecies], a
ld a, $4
call Function41423
- call Function40131
+ call Pokedex_IncrementDexPointer
ret
Function40562: ; 40562 (10:4562)
@@ -766,13 +768,13 @@ Function40562: ; 40562 (10:4562)
xor a
ld [hBGMapMode], a
call Function40b0f
- call Function41ad7
- call Function41af7
+ call Pokedex_SetBGMapMode3
+ call Pokedex_ResetBGMapMode
ret
.asm_40583
- call Function40bb1
- call Function40bd0
+ call Pokedex_GetMonAtCursorPosition
+ call Pokedex_CheckSeen
ret z
ld a, $2
ld [wJumptableIndex], a
@@ -782,14 +784,14 @@ Function40562: ; 40562 (10:4562)
.asm_40595
ld a, [wc7e0]
- ld [wc7d0], a
+ ld [wDexListingPage], a
ld a, [wc7e1]
- ld [wc7d1], a
+ ld [wDexListingCursor], a
ld a, [wcf65]
- ld [wc2d6], a
+ ld [wLastDexEntry], a
call Function41401
call ClearSprites
- call Function40bdc
+ call Pokedex_ChangeMode
ld a, $5
ld [wJumptableIndex], a
xor a
@@ -798,45 +800,45 @@ Function40562: ; 40562 (10:4562)
ld [hWX], a
ret
-Function405bd: ; 405bd (10:45bd)
- call Function41a2c
+Pokedex_UnownMode: ; 405bd (10:45bd)
+ call Pokedex_LoadUnownFont
call Function409f1
xor a
ld [wc7dd], a
call Function41a58
call Function40658
- callba Functionfba2e
+ callba PrintUnownWord
call WaitBGMap
ld a, $16
call Function41423
- call Function40131
+ call Pokedex_IncrementDexPointer
ret
Function405df: ; 405df (10:45df)
ld hl, hJoyPressed ; $ffa7
ld a, [hl]
and A_BUTTON | B_BUTTON
- jr nz, .asm_405eb
+ jr nz, .a_b
call Function40610
ret
-.asm_405eb
+.a_b
call Function41401
ld a, $7
ld [wJumptableIndex], a
call DelayFrame
- call Function41a24
- jr nz, .asm_40603
+ call Pokedex_CheckSGB
+ jr nz, .decompress
callba Function1ddf26
- jr .asm_4060f
+ jr .done
-.asm_40603
+.decompress
ld hl, PokedexLZ
ld de, VTiles2 tile $31
lb bc, BANK(PokedexLZ), $3a
call DecompressRequest2bpp
-.asm_4060f
+.done
ret
Function40610: ; 40610 (10:4610)
@@ -859,7 +861,7 @@ Function40610: ; 40610 (10:4610)
ret nc
ld a, [hl]
inc [hl]
- jr .asm_40635
+ jr .update
.left
ld hl, wc7dd
@@ -869,7 +871,7 @@ Function40610: ; 40610 (10:4610)
ld a, [hl]
dec [hl]
-.asm_40635
+.update
push af
xor a
ld [hBGMapMode], a
@@ -877,7 +879,7 @@ Function40610: ; 40610 (10:4610)
call Function40654
call Function41a58
call Function40658
- callba Functionfba2e
+ callba PrintUnownWord
ld a, $1
ld [hBGMapMode], a
call DelayFrame
@@ -904,11 +906,11 @@ endr
ld [hl], c
ret
-Function4066c: ; 4066c (10:466c)
- ld a, [wc7d1]
- ld [wc7e2], a
- ld a, [wc7d0]
- ld [wc7e3], a
+Pokedex_NextOrPreviousDexEntry: ; 4066c (10:466c)
+ ld a, [wDexListingCursor]
+ ld [wBackupDexListingCursor], a
+ ld a, [wDexListingPage]
+ ld [wBackupDexListingPage], a
ld hl, hJoyLast
ld a, [hl]
and D_UP
@@ -922,43 +924,43 @@ Function4066c: ; 4066c (10:466c)
.up
ld a, [wc7d3]
ld d, a
- ld a, [wc7d2]
+ ld a, [wDexListingEnd]
ld e, a
call Function406ea
- jr nc, .asm_406b7
- call Function40bb1
- call Function40bd0
- jr nz, .asm_406b5
+ jr nc, .nope
+ call Pokedex_GetMonAtCursorPosition
+ call Pokedex_CheckSeen
+ jr nz, .yep
jr .up
.down
ld a, [wc7d3]
ld d, a
- ld a, [wc7d2]
+ ld a, [wDexListingEnd]
ld e, a
call Function406fe
- jr nc, .asm_406b7
- call Function40bb1
- call Function40bd0
- jr nz, .asm_406b5
+ jr nc, .nope
+ call Pokedex_GetMonAtCursorPosition
+ call Pokedex_CheckSeen
+ jr nz, .yep
jr .down
-.asm_406b5
+.yep
scf
ret
-.asm_406b7
- ld a, [wc7e2]
- ld [wc7d1], a
- ld a, [wc7e3]
- ld [wc7d0], a
+.nope
+ ld a, [wBackupDexListingCursor]
+ ld [wDexListingCursor], a
+ ld a, [wBackupDexListingPage]
+ ld [wDexListingPage], a
and a
ret
Function406c5: ; 406c5 (10:46c5)
ld a, [wc7d3]
ld d, a
- ld a, [wc7d2]
+ ld a, [wDexListingEnd]
ld e, a
ld hl, hJoyLast
ld a, [hl]
@@ -979,14 +981,14 @@ Function406c5: ; 406c5 (10:46c5)
jr asm_4073d
Function406ea: ; 406ea (10:46ea)
- ld hl, wc7d1
+ ld hl, wDexListingCursor
ld a, [hl]
and a
jr z, .asm_406f4
dec [hl]
jr asm_4073f
.asm_406f4
- ld hl, wc7d0
+ ld hl, wDexListingPage
ld a, [hl]
and a
jr z, asm_4073d
@@ -994,7 +996,7 @@ Function406ea: ; 406ea (10:46ea)
jr asm_4073f
Function406fe: ; 406fe (10:46fe)
- ld hl, wc7d1
+ ld hl, wDexListingCursor
ld a, [hl]
inc a
cp e
@@ -1004,14 +1006,14 @@ Function406fe: ; 406fe (10:46fe)
inc [hl]
jr asm_4073f
.asm_4070c
- ld hl, wc7d0
+ ld hl, wDexListingPage
add [hl]
cp e
jr nc, asm_4073d
inc [hl]
jr asm_4073f
asm_40716: ; 40716 (10:4716)
- ld hl, wc7d0
+ ld hl, wDexListingPage
ld a, [hl]
and a
jr z, asm_4073d
@@ -1025,7 +1027,7 @@ asm_40716: ; 40716 (10:4716)
ld [hl], a
jr asm_4073f
asm_40728: ; 40728 (10:4728)
- ld hl, wc7d0
+ ld hl, wDexListingPage
ld a, d
add a
add [hl]
@@ -1065,20 +1067,20 @@ Function40741: ; 40741
Function4074c: ; 4074c (10:474c)
hlcoord 0, 17
ld de, String_START_SEARCH
- call Function40acd
+ call Pokedex_PlaceString
ld a, $32
hlcoord 0, 0
- ld bc, $168
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
call ByteFill
hlcoord 0, 0
lb bc, 7, 7
- call Function40ad5
+ call Pokedex_PlaceBorder
hlcoord 0, 9
ld bc, $607
- call Function40ad5
+ call Pokedex_PlaceBorder
hlcoord 1, 11
ld de, String_SEEN
- call Function40acd
+ call Pokedex_PlaceString
ld hl, PokedexSeen ; wdeb9 (aliases: EndPokedexSeen)
ld b, EndPokedexSeen - PokedexSeen
call CountSetBits
@@ -1088,7 +1090,7 @@ Function4074c: ; 4074c (10:474c)
call PrintNum
hlcoord 1, 14
ld de, String_OWN
- call Function40acd
+ call Pokedex_PlaceString
ld hl, PokedexCaught
ld b, EndPokedexCaught - PokedexCaught
call CountSetBits
@@ -1098,7 +1100,7 @@ Function4074c: ; 4074c (10:474c)
call PrintNum
hlcoord 1, 17
ld de, String_SELECT_OPTION
- call Function40acd
+ call Pokedex_PlaceString
hlcoord 8, 1
ld b, $7
ld a, $5a
@@ -1115,7 +1117,7 @@ Function4074c: ; 4074c (10:474c)
ld [hl], $54
hlcoord 8, 16
ld [hl], $5b
- call Function40ab2
+ call Pokedex_PlaceFrontpicTopLeftCorner
ret
; 407e1 (10:47e1)
@@ -1130,10 +1132,10 @@ String_START_SEARCH: ; 407f2
; 407fd
Function407fd: ; 407fd
- call Function40aa6
+ call Pokedex_FillBackgroundColor2
hlcoord 0, 0
ld bc, $0f12
- call Function40ad5
+ call Pokedex_PlaceBorder
hlcoord 19, 0
ld [hl], $34
hlcoord 19, 1
@@ -1151,14 +1153,14 @@ Function407fd: ; 407fd
call ByteFill
hlcoord 9, 7
ld de, Unknown_40852
- call Function40acd
+ call Pokedex_PlaceString
hlcoord 9, 9
ld de, Unknown_4085c
- call Function40acd
+ call Pokedex_PlaceString
hlcoord 0, 17
ld de, Unknown_40867
- call Function40acd
- call Function40ab2
+ call Pokedex_PlaceString
+ call Pokedex_PlaceFrontpicTopLeftCorner
ret
; 4084f
@@ -1173,20 +1175,20 @@ Unknown_40867: ; 40867
; 4087c
Function4087c: ; 4087c (10:487c)
- call Function40aa6
+ call Pokedex_FillBackgroundColor2
hlcoord 0, 2
lb bc, 8, 18
- call Function40ad5
+ call Pokedex_PlaceBorder
hlcoord 0, 12
lb bc, 4, 18
- call Function40ad5
+ call Pokedex_PlaceBorder
hlcoord 0, 1
ld de, Unknown_408b2
- call Function40acd
+ call Pokedex_PlaceString
hlcoord 3, 4
ld de, String_408bd
call PlaceString
- ld a, [wc7dc]
+ ld a, [wUnlockedUnownMode]
and a
ret z
hlcoord 3, 10
@@ -1211,19 +1213,19 @@ String_408e5: ; 408e5
; 408f0
Function408f0: ; 408f0 (10:48f0)
- call Function40aa6
+ call Pokedex_FillBackgroundColor2
hlcoord 0, 2
lb bc, 14, 18
- call Function40ad5
+ call Pokedex_PlaceBorder
hlcoord 0, 1
ld de, Unknown_4092a
- call Function40acd
+ call Pokedex_PlaceString
hlcoord 8, 4
ld de, Unknown_40935
- call Function40acd
+ call Pokedex_PlaceString
hlcoord 8, 6
ld de, Unknown_40935
- call Function40acd
+ call Pokedex_PlaceString
hlcoord 3, 4
ld de, String_40940
call PlaceString
@@ -1254,13 +1256,13 @@ String_4094c: ; 4094c
; 40962
Function40962: ; 40962 (10:4962)
- call Function40aa6
+ call Pokedex_FillBackgroundColor2
hlcoord 0, 0
lb bc, 7, 7
- call Function40ad5
+ call Pokedex_PlaceBorder
hlcoord 0, 11
lb bc, 5, 18
- call Function40ad5
+ call Pokedex_PlaceBorder
hlcoord 1, 12
ld de, String_409ae
call PlaceString
@@ -1280,7 +1282,7 @@ Function40962: ; 40962 (10:4962)
ld [hl], $69
hlcoord 8, 10
ld [hl], $6a
- call Function40ab2
+ call Pokedex_PlaceFrontpicTopLeftCorner
ret
; 409ae (10:49ae)
@@ -1310,28 +1312,28 @@ Function409cf: ; 409cf (10:49cf)
ret
Function409f1: ; 409f1 (10:49f1)
- call Function40aa6
+ call Pokedex_FillBackgroundColor2
hlcoord 2, 1
lb bc, 10, 13
- call Function40ad5
+ call Pokedex_PlaceBorder
hlcoord 2, 14
lb bc, 1, 13
- call Function40ad5
+ call Pokedex_PlaceBorder
hlcoord 2, 15
ld [hl], $3d
hlcoord 16, 15
ld [hl], $3e
hlcoord 6, 5
- call Function40ab5
+ call Pokedex_PlaceFrontpicAtHL
ld de, 0
ld b, 0
ld c, 26
-.asm_40a1d
+.loop
ld hl, UnownDex
add hl, de
ld a, [hl]
and a
- jr z, .asm_40a39
+ jr z, .done
push af
ld hl, Unknown_40a3e
rept 4
@@ -1341,19 +1343,20 @@ endr
ld h, [hl]
ld l, a
pop af
- add $3f
+ add $40 - 1 ; Unown A
ld [hl], a
inc de
inc b
dec c
- jr nz, .asm_40a1d
-.asm_40a39
+ jr nz, .loop
+.done
ld a, b
ld [wc7de], a
ret
; 40a3e (10:4a3e)
Unknown_40a3e: ; 40a3e
+; letter, cursor
dwcoord 4,11, 3,11
dwcoord 4,10, 3,10
dwcoord 4, 9, 3, 9
@@ -1382,7 +1385,7 @@ Unknown_40a3e: ; 40a3e
dwcoord 14,10, 15,10
; 40aa6
-Function40aa6: ; 40aa6
+Pokedex_FillBackgroundColor2: ; 40aa6
hlcoord 0, 0
ld a, $32
ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
@@ -1390,113 +1393,118 @@ Function40aa6: ; 40aa6
ret
; 40ab2
-Function40ab2: ; 40ab2
+Pokedex_PlaceFrontpicTopLeftCorner: ; 40ab2
hlcoord 1, 1
-Function40ab5: ; 40ab5
+Pokedex_PlaceFrontpicAtHL: ; 40ab5
xor a
ld b, $7
-.asm_40ab8
+.row
ld c, $7
push af
push hl
-.asm_40abc
+.col
ld [hli], a
add $7
dec c
- jr nz, .asm_40abc
+ jr nz, .col
pop hl
- ld de, $0014
+ ld de, SCREEN_WIDTH
add hl, de
pop af
inc a
dec b
- jr nz, .asm_40ab8
+ jr nz, .row
ret
; 40acd
-Function40acd: ; 40acd
-.asm_40acd
+Pokedex_PlaceString: ; 40acd
+.loop
ld a, [de]
- cp $ff
+ cp -1
ret z
inc de
ld [hli], a
- jr .asm_40acd
+ jr .loop
; 40ad5
-Function40ad5: ; 40ad5
+Pokedex_PlaceBorder: ; 40ad5
push hl
ld a, $33
ld [hli], a
ld d, $34
- call Function40b06
+ call .FillRow
ld a, $35
ld [hl], a
pop hl
- ld de, $0014
+ ld de, SCREEN_WIDTH
add hl, de
-.asm_40ae6
+.loop
push hl
ld a, $36
ld [hli], a
ld d, $7f
- call Function40b06
+ call .FillRow
ld a, $37
ld [hl], a
pop hl
- ld de, $0014
+ ld de, SCREEN_WIDTH
add hl, de
dec b
- jr nz, .asm_40ae6
+ jr nz, .loop
ld a, $38
ld [hli], a
ld d, $39
- call Function40b06
+ call .FillRow
ld a, $3a
ld [hl], a
ret
; 40b06
-Function40b06: ; 40b06
+.FillRow: ; 40b06
ld e, c
-.asm_40b07
+.row_loop
ld a, e
and a
ret z
ld a, d
ld [hli], a
dec e
- jr .asm_40b07
+ jr .row_loop
; 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
+; This check is completely useless.
+ ld a, [wCurrentDexMode]
+ cp DEXMODE_OLD
+ jr z, .okay
+ ld c, 11
+ jr .resume
+.okay
+ ld c, 11
+; End useless check
+.resume
+; Clear (2 * [wc7d3] + 1) by 11 box starting at 0,1
hlcoord 0, 1
ld a, [wc7d3]
add a
inc a
ld b, a
- ld a, $7f
- call Function413fe
- ld a, [wc7d0]
+ ld a, " "
+ call Pokedex_FillBox
+
+; Load de with wPokedexDataStart + [wDexListingPage]
+ ld a, [wDexListingPage]
ld e, a
ld d, $0
- ld hl, wc6d0
+ ld hl, wPokedexDataStart
add hl, de
ld e, l
ld d, h
hlcoord 0, 2
ld a, [wc7d3]
-.asm_40b3c
+.loop
push af
ld a, [de]
ld [wd265], a
@@ -1504,37 +1512,38 @@ Function40b0f: ; 40b0f (10:4b0f)
push hl
call Function40b55
pop hl
- ld de, $28
+ ld de, 2 * SCREEN_WIDTH
add hl, de
pop de
inc de
pop af
dec a
- jr nz, .asm_40b3c
+ jr nz, .loop
call Function4143b
ret
Function40b55: ; 40b55 (10:4b55)
and a
ret z
- call Function40b6a
- call Function40b8d
+ call Pokedex_PrintNumberIfOldMode
+ call Pokedex_PlaceDefaultStringIfNotSeen
ret c
- call Function40b82
+ call Pokedex_PlaceCaughtSymbolIfCaught
push hl
call GetPokemonName
pop hl
call PlaceString
ret
-Function40b6a: ; 40b6a (10:4b6a)
- ld a, [wc7d4]
- cp $1
- jr z, .asm_40b72
+Pokedex_PrintNumberIfOldMode: ; 40b6a (10:4b6a)
+ ld a, [wCurrentDexMode]
+ cp DEXMODE_OLD
+ jr z, .printnum
ret
-.asm_40b72
+
+.printnum
push hl
- ld de, -20
+ ld de, -SCREEN_WIDTH
add hl, de
ld de, wd265
lb bc, PRINTNUM_LEADINGZEROS | 1, 3
@@ -1542,31 +1551,32 @@ Function40b6a: ; 40b6a (10:4b6a)
pop hl
ret
-Function40b82: ; 40b82 (10:4b82)
- call Function40bc4
- jr nz, .asm_40b89
+Pokedex_PlaceCaughtSymbolIfCaught: ; 40b82 (10:4b82)
+ call Pokedex_CheckCaught
+ jr nz, .place_caught_symbol
inc hl
ret
-.asm_40b89
+
+.place_caught_symbol
ld a, $4f
ld [hli], a
ret
-Function40b8d: ; 40b8d (10:4b8d)
- call Function40bd0
+Pokedex_PlaceDefaultStringIfNotSeen: ; 40b8d (10:4b8d)
+ call Pokedex_CheckSeen
ret nz
inc hl
- ld de, String_40b9a
+ ld de, .NameNotSeen
call PlaceString
scf
ret
; 40b9a (10:4b9a)
-String_40b9a: ; 40b9a
+.NameNotSeen: ; 40b9a
db "-----@"
; 40ba0
-Function40ba0: ; 40ba0
+Pokedex_DrawFootprint: ; 40ba0
hlcoord 18, 1
ld a, $62
ld [hli], a
@@ -1581,13 +1591,13 @@ Function40ba0: ; 40ba0
; 40bb1
-Function40bb1: ; 40bb1
- ld a, [wc7d1]
- ld hl, wc7d0
+Pokedex_GetMonAtCursorPosition: ; 40bb1
+ ld a, [wDexListingCursor]
+ ld hl, wDexListingPage
add [hl]
ld e, a
ld d, $0
- ld hl, wc6d0
+ ld hl, wPokedexDataStart
add hl, de
ld a, [hl]
ld [wd265], a
@@ -1595,7 +1605,7 @@ Function40bb1: ; 40bb1
; 40bc4
-Function40bc4: ; 40bc4 (10:4bc4)
+Pokedex_CheckCaught: ; 40bc4 (10:4bc4)
push de
push hl
ld a, [wd265]
@@ -1606,7 +1616,7 @@ Function40bc4: ; 40bc4 (10:4bc4)
ret
-Function40bd0: ; 40bd0
+Pokedex_CheckSeen: ; 40bd0
push de
push hl
ld a, [wd265]
@@ -1619,100 +1629,100 @@ Function40bd0: ; 40bd0
-Function40bdc: ; 40bdc
- ld hl, wc6d0
- ld bc, $100
+Pokedex_ChangeMode: ; 40bdc
+ ld hl, wPokedexDataStart
+ ld bc, wPokedexMetadata - wPokedexDataStart
xor a
call ByteFill
- ld a, [wc7d4]
- ld hl, Jumptable_40bf0
- call Function41432
+ ld a, [wCurrentDexMode]
+ ld hl, .Jumptable
+ call Pokedex_LoadPointer
jp [hl]
; 40bf0
-Jumptable_40bf0: ; 40bf0 (10:4bf0)
- dw Function40bf6
- dw Function40c08
- dw Function40c30
+.Jumptable: ; 40bf0 (10:4bf0)
+ dw .NewMode
+ dw .OldMode
+ dw Pokedex_ABCMode
-Function40bf6: ; 40bf6 (10:4bf6)
+.NewMode: ; 40bf6 (10:4bf6)
ld de, NewPokedexOrder
- ld hl, wc6d0
+ ld hl, wPokedexDataStart
ld c, NUM_POKEMON
-.asm_40bfe
+.loopnew
ld a, [de]
inc de
ld [hli], a
dec c
- jr nz, .asm_40bfe
- call Function40c18
+ jr nz, .loopnew
+ call .FindLastSeen
ret
-Function40c08: ; 40c08 (10:4c08)
- ld hl, wc6d0
+.OldMode: ; 40c08 (10:4c08)
+ ld hl, wPokedexDataStart
ld a, $1
ld c, NUM_POKEMON
-.asm_40c0f
+.loopold
ld [hli], a
inc a
dec c
- jr nz, .asm_40c0f
- call Function40c18
+ jr nz, .loopold
+ call .FindLastSeen
ret
-Function40c18: ; 40c18 (10:4c18)
- ld hl, wc7ca
+.FindLastSeen: ; 40c18 (10:4c18)
+ ld hl, wPokedexDataStart + NUM_POKEMON - 1
ld d, NUM_POKEMON
ld e, d
-.asm_40c1e
+.loopfindend
ld a, [hld]
ld [wd265], a
- call Function40bd0
- jr nz, .asm_40c2b
+ call Pokedex_CheckSeen
+ jr nz, .foundend
dec d
dec e
- jr nz, .asm_40c1e
-.asm_40c2b
+ jr nz, .loopfindend
+.foundend
ld a, d
- ld [wc7d2], a
+ ld [wDexListingEnd], a
ret
-Function40c30: ; 40c30
+Pokedex_ABCMode: ; 40c30
xor a
- ld [wc7d2], a
- ld hl, wc6d0
+ ld [wDexListingEnd], a
+ ld hl, wPokedexDataStart
ld de, AlphabeticalPokedexOrder
ld c, NUM_POKEMON
-.asm_40c3c
+.loop1abc
push bc
ld a, [de]
ld [wd265], a
- call Function40bd0
- jr z, .asm_40c51
+ call Pokedex_CheckSeen
+ jr z, .skipabc
ld a, [wd265]
ld [hli], a
- ld a, [wc7d2]
+ ld a, [wDexListingEnd]
inc a
- ld [wc7d2], a
+ ld [wDexListingEnd], a
-.asm_40c51
+.skipabc
inc de
pop bc
dec c
- jr nz, .asm_40c3c
- ld a, [wc7d2]
+ jr nz, .loop1abc
+ ld a, [wDexListingEnd]
ld c, 0
-.asm_40c5b
+.loop2abc
cp NUM_POKEMON
- jr z, .asm_40c64
+ jr z, .doneabc
ld [hl], c
inc hl
inc a
- jr .asm_40c5b
+ jr .loop2abc
-.asm_40c64
+.doneabc
ret
; 40c65
@@ -1726,11 +1736,11 @@ Function40e5b: ; 40e5b
xor a
ld [hBGMapMode], a
hlcoord 0, 12
- ld bc, $0412
- call Function40ad5
+ lb bc, 4, SCREEN_WIDTH - 2
+ call Pokedex_PlaceBorder
ld a, [wc7d8]
ld hl, Unknown_40e7d
- call Function41432
+ call Pokedex_LoadPointer
ld e, l
ld d, h
hlcoord 1, 14
@@ -1741,28 +1751,28 @@ Function40e5b: ; 40e5b
; 40e7d
Unknown_40e7d: ; 40e7d
- dw String_40e85
- dw String_40ea6
- dw String_40ec6
- dw String_40ee4
+ dw .NewMode
+ dw .OldMode
+ dw .ABCMode
+ dw .UnownMode
; 40e85
-String_40e85: ; 40e85
- db $e1, $e2, " are listed by"
+.NewMode: ; 40e85
+ db "<PK><MN> are listed by"
next "evolution type.@"
; 40ea6
-String_40ea6: ; 40ea6
- db $e1, $e2, " are listed by"
+.OldMode: ; 40ea6
+ db "<PK><MN> are listed by"
next "official type.@"
; 40ec6
-String_40ec6: ; 40ec6
- db $e1, $e2, " are listed"
+.ABCMode: ; 40ec6
+ db "<PK><MN> are listed"
next "alphabetically.@"
; 40ee4
-String_40ee4: ; 40ee4
+.UnownMode: ; 40ee4
db "UNOWN are listed"
next "in catching order.@"
; 40f08
@@ -1771,24 +1781,25 @@ Function40f08: ; 40f08 (10:4f08)
xor a
ld [hBGMapMode], a
hlcoord 0, 12
- ld bc, $412
- call Function40ad5
- ld de, String_40f32
+ lb bc, 4, SCREEN_WIDTH - 2
+ call Pokedex_PlaceBorder
+ ld de, String_ChangingModesPleaseWait
hlcoord 1, 14
call PlaceString
ld a, $1
ld [hBGMapMode], a
- ld c, $40
+ ld c, 64
call DelayFrames
ld de, SFX_CHANGE_DEX_MODE
call PlaySFX
- ld c, $40
+ ld c, 64
call DelayFrames
ret
; 40f32 (10:4f32)
-String_40f32: ; 40f32
- db "Changing modes.", $4e, "Please wait.@"
+String_ChangingModesPleaseWait: ; 40f32
+ db "Changing modes."
+ next "Please wait.@"
; 40f4f
Function40f4f: ; 40f4f (10:4f4f)
@@ -1861,7 +1872,7 @@ Function40fa8: ; 40fa8 (10:4fa8)
hlcoord 9, 3
ld bc, $408
ld a, $7f
- call Function413fe
+ call Pokedex_FillBox
ld a, [wc7d5]
hlcoord 9, 4
call Function40fcd
@@ -1926,8 +1937,8 @@ Function41095: ; 41095
add hl, de
ld a, [hl]
ld [wc7df], a
- ld hl, wc6d0
- ld de, wc6d0
+ ld hl, wPokedexDataStart
+ ld de, wPokedexDataStart
ld c, NUM_POKEMON
xor a
ld [wc7d7], a
@@ -1938,7 +1949,7 @@ Function41095: ; 41095
jr z, .asm_410e0
ld [wd265], a
ld [CurSpecies], a
- call Function40bc4
+ call Pokedex_CheckCaught
jr z, .asm_410e0
push hl
push de
@@ -2008,7 +2019,7 @@ Function41107: ; 41107
ld [hBGMapMode], a
hlcoord 0, 12
ld bc, $0412
- call Function40ad5
+ call Pokedex_PlaceBorder
ld de, String_41126
hlcoord 1, 14
call PlaceString
@@ -2025,7 +2036,7 @@ String_41126: ; 41126
; 41148
Function41148: ; 41148 (10:5148)
- ld a, [wc7d4]
+ ld a, [wCurrentDexMode]
cp $1
jp z, Function41157
call Function41229
@@ -2034,7 +2045,7 @@ Function41148: ; 41148 (10:5148)
Function41157: ; 41157 (10:5157)
ld hl, Unknown_41167
- ld a, [wc7d1]
+ ld a, [wDexListingCursor]
or a
jr nz, .asm_41163
ld hl, Unknown_411c8
@@ -2133,7 +2144,7 @@ Unknown_41230: ; 41230
; 41281
Function41281: ; 41281 (10:5281)
- ld a, [wc7d4]
+ ld a, [wCurrentDexMode]
cp $1
jp z, Function41157
ld hl, Unknown_41290
@@ -2176,7 +2187,7 @@ Function412f1: ; 412f1 (10:52f1)
ld a, [hl]
cp $ff
ret z
- ld a, [wc7d1]
+ ld a, [wDexListingCursor]
and $7
swap a
add [hl]
@@ -2196,11 +2207,11 @@ Function412f1: ; 412f1 (10:52f1)
Function4130e: ; 4130e (10:530e)
push de
- ld a, [wc7d2]
+ ld a, [wDexListingEnd]
dec a
ld e, a
- ld a, [wc7d1]
- ld hl, wc7d0
+ ld a, [wDexListingCursor]
+ ld hl, wDexListingPage
add [hl]
cp e
jr z, .asm_4133f
@@ -2213,7 +2224,7 @@ Function4130e: ; 4130e (10:530e)
ld a, d
or e
jr z, .asm_41341
- ld a, [wc7d2]
+ ld a, [wDexListingEnd]
ld c, a
.asm_41333
ld a, e
@@ -2247,6 +2258,7 @@ Function4134f: ; 4134f (10:534f)
ret
Function4135a: ; 4135a (10:535a)
+; bc = [de] - 1
ld a, [de]
ld b, a
inc de
@@ -2254,74 +2266,79 @@ Function4135a: ; 4135a (10:535a)
dec a
ld c, a
inc de
- call Function413e0
+ call Pokedex_BlinkInfoScreenCursor
+
ld hl, hJoyPressed ; $ffa7
ld a, [hl]
and D_LEFT | D_UP
and b
- jr nz, .asm_4138f
+ jr nz, .MoveCursorLeft
ld a, [hl]
and D_RIGHT | D_DOWN
and b
- jr nz, .asm_413a0
+ jr nz, .MoveCursorRight
ld a, [hl]
and SELECT
and b
- jr nz, .asm_413c1
- call Function413f5
- jr c, .asm_413bf
+ jr nz, .Select
+ call Pokedex_CursorFrameDelay
+ jr c, .NoAction
ld hl, hJoyLast
ld a, [hl]
and D_LEFT | D_UP
and b
- jr nz, .asm_4138f
+ jr nz, .MoveCursorLeft
ld a, [hl]
and D_RIGHT | D_DOWN
and b
- jr nz, .asm_413a0
- jr .asm_413bf
-.asm_4138f
+ jr nz, .MoveCursorRight
+ jr .NoAction
+
+.MoveCursorLeft
ld a, [wc7d8]
and a
- jr z, .asm_413bf
- call Function413d4
- ld [hl], $7f
+ jr z, .NoAction
+ call Pokedex_GetCursorPosition
+ ld [hl], " "
ld hl, wc7d8
dec [hl]
- jr .asm_413af
-.asm_413a0
+ jr .UpdateCursorPosition
+
+.MoveCursorRight
ld a, [wc7d8]
cp c
- jr nc, .asm_413bf
- call Function413d4
- ld [hl], $7f
+ jr nc, .NoAction
+ call Pokedex_GetCursorPosition
+ ld [hl], " "
ld hl, wc7d8
inc [hl]
-.asm_413af
- call Function413d4
- ld [hl], $ed
+.UpdateCursorPosition
+ call Pokedex_GetCursorPosition
+ ld [hl], "▶"
ld a, $c
ld [wc7d9], a
xor a
ld [wc7da], a
scf
ret
-.asm_413bf
+
+.NoAction
and a
ret
-.asm_413c1
- call Function413d4
- ld [hl], $7f
+
+.Select
+ call Pokedex_GetCursorPosition
+ ld [hl], " "
ld a, [wc7d8]
cp c
- jr c, .asm_413ce
+ jr c, .Update
ld a, $ff
-.asm_413ce
+.Update
inc a
ld [wc7d8], a
- jr .asm_413af
+ jr .UpdateCursorPosition
-Function413d4: ; 413d4 (10:53d4)
+Pokedex_GetCursorPosition: ; 413d4 (10:53d4)
ld a, [wc7d8]
add a
ld l, a
@@ -2332,30 +2349,32 @@ Function413d4: ; 413d4 (10:53d4)
ld l, a
ret
-Function413e0: ; 413e0 (10:53e0)
+Pokedex_BlinkInfoScreenCursor: ; 413e0 (10:53e0)
ld hl, wc7da
ld a, [hl]
inc [hl]
and $8
- jr z, .asm_413ef
- call Function413d4
- ld [hl], $7f
+ jr z, .blink_on
+ call Pokedex_GetCursorPosition
+ ld [hl], " "
ret
-.asm_413ef
- call Function413d4
- ld [hl], $ed
+
+.blink_on
+ call Pokedex_GetCursorPosition
+ ld [hl], "▶"
ret
-Function413f5: ; 413f5 (10:53f5)
+Pokedex_CursorFrameDelay: ; 413f5 (10:53f5)
ld hl, wc7d9
ld a, [hl]
and a
ret z
+
dec [hl]
scf
ret
-Function413fe: ; 413fe (10:53fe)
+Pokedex_FillBox: ; 413fe (10:53fe)
jp FillBoxWithByte
Function41401: ; 41401 (10:5401)
@@ -2391,7 +2410,7 @@ Function41427: ; 41427
; 41432
-Function41432: ; 41432
+Pokedex_LoadPointer: ; 41432
ld e, a
ld d, 0
rept 2
@@ -2404,10 +2423,10 @@ endr
; 4143b
Function4143b: ; 4143b
- call Function40bb1
- call Function40bd0
- jr z, .asm_4145b
- ld a, [wdef4]
+ call Pokedex_GetMonAtCursorPosition
+ call Pokedex_CheckSeen
+ jr z, .QuestionMark
+ ld a, [wFirstUnownSeen]
ld [UnownLetter], a
ld a, [wd265]
ld [CurPartySpecies], a
@@ -2416,10 +2435,10 @@ Function4143b: ; 4143b
predef GetFrontpic
ret
-.asm_4145b
+.QuestionMark
ld a, BANK(sScratch)
call GetSRAMBank
- callba Function1de0d7
+ callba LoadQuestionMarkPic
ld hl, VTiles2
ld de, sScratch
ld c, 7 * 7
@@ -2431,13 +2450,13 @@ Function4143b: ; 4143b
; 41478
-Function41478: ; 41478 (10:5478)
- call Function40bb1
+Pokedex_LoadCurrentFootprint: ; 41478 (10:5478)
+ call Pokedex_GetMonAtCursorPosition
-Function4147b: ; 4147b
+Pokedex_LoadAnyFootprint: ; 4147b
ld a, [wd265]
dec a
- and $f8
+ and ($ff ^ $07) ; $f8 ; $1f << 3
srl a
srl a
srl a
@@ -2463,7 +2482,7 @@ Function4147b: ; 4147b
; Whoever was editing footprints forgot to fix their
; tile editor. Now each bottom half is 8 tiles off.
- ld de, $80
+ ld de, 8 tiles
add hl, de
ld e, l
@@ -2476,28 +2495,28 @@ Function4147b: ; 4147b
; 414b7
-Function414b7: ; 414b7
+Pokedex_LoadGFX: ; 414b7
call DisableLCD
ld hl, VTiles2
- ld bc, $0310
+ ld bc, $31 tiles
xor a
call ByteFill
- call Function414fb
+ call Pokedex_LoadInvertedFont
call LoadFontsExtra
ld hl, VTiles2 tile $60
- ld bc, $0200
- call Function41504
- call Function41a24
- jr nz, .asm_414e0
- callba Function1ddf1c
- jr .asm_414e9
-
-.asm_414e0
+ ld bc, $20 tiles
+ call Pokedex_InvertTiles
+ call Pokedex_CheckSGB
+ jr nz, .LoadPokedexLZ
+ callba LoadSGBPokedexGFX
+ jr .LoadPokedexSlowpokeLZ
+
+.LoadPokedexLZ
ld hl, PokedexLZ
ld de, VTiles2 tile $31
call Decompress
-.asm_414e9
+.LoadPokedexSlowpokeLZ
ld hl, PokedexSlowpokeLZ
ld de, VTiles0
call Decompress
@@ -2506,30 +2525,31 @@ Function414b7: ; 414b7
call EnableLCD
ret
-Function414fb: ; 414fb
+Pokedex_LoadInvertedFont: ; 414fb
call LoadStandardFont
ld hl, VTiles1
- ld bc, $0800
+ ld bc, $80 tiles
-Function41504: ; 41504
+Pokedex_InvertTiles: ; 41504
+.loop
ld a, [hl]
xor $ff
ld [hli], a
dec bc
ld a, b
or c
- jr nz, Function41504
+ jr nz, .loop
ret
; 4150e
PokedexLZ: ; 4150e
-INCBIN "gfx/unknown/04150e.2bpp.lz"
+INCBIN "gfx/pokedex/pokedex.2bpp.lz"
; 416b0
PokedexSlowpokeLZ: ; 416b0
INCBIN "gfx/pokedex/slowpoke.2bpp.lz"
-Function41a24: ; 41a24
+Pokedex_CheckSGB: ; 41a24
ld a, [hCGB]
or a
ret nz
@@ -2538,20 +2558,20 @@ Function41a24: ; 41a24
ret
; 41a2c
-Function41a2c: ; 41a2c
+Pokedex_LoadUnownFont: ; 41a2c
ld a, BANK(sScratch)
call GetSRAMBank
ld hl, UnownFont
ld de, sScratch + $188
- ld bc, $270
+ ld bc, 39 tiles
ld a, BANK(UnownFont)
call FarCopyBytes
ld hl, sScratch + $188
- ld bc, $1b0
- call Function41504
+ ld bc, 27 tiles
+ call Pokedex_InvertTiles
ld de, sScratch + $188
ld hl, VTiles2 tile $40
- lb bc, BANK(Function41a2c), $1b
+ lb bc, BANK(Pokedex_LoadUnownFont), 27
call Request2bpp
call CloseSRAM
ret
@@ -2577,24 +2597,24 @@ Function41a58: ; 41a58 (10:5a58)
ret
; 41a7f
-Function41a7f: ; 41a7f
+_NewPokedexEntry: ; 41a7f
xor a
ld [hBGMapMode], a
callba Function1de247
- call Function41af7
+ call Pokedex_ResetBGMapMode
call DisableLCD
call LoadStandardFont
call LoadFontsExtra
- call Function414b7
- call Function4147b
+ call Pokedex_LoadGFX
+ call Pokedex_LoadAnyFootprint
ld a, [wd265]
ld [CurPartySpecies], a
call Function407fd
- call Function40ba0
+ call Pokedex_DrawFootprint
hlcoord 0, 17
ld [hl], $3b
inc hl
- ld bc, $13
+ ld bc, 19
ld a, " "
call ByteFill
callba DisplayDexEntry
@@ -2611,31 +2631,31 @@ Function41a7f: ; 41a7f
; 41ad7
-Function41ad7: ; 41ad7 (10:5ad7)
+Pokedex_SetBGMapMode3: ; 41ad7 (10:5ad7)
ld a, $3
ld [hBGMapMode], a
ld c, 4
call DelayFrames
ret
-Function41ae1: ; 41ae1 (10:5ae1)
+Pokedex_SetBGMapMode4: ; 41ae1 (10:5ae1)
ld a, $4
ld [hBGMapMode], a
ld c, 4
call DelayFrames
ret
-Function41aeb: ; 41aeb (10:5aeb)
+Pokedex_SetBGMapMode_3ifDMG_4ifCGB: ; 41aeb (10:5aeb)
ld a, [hCGB]
and a
- jr z, .asm_41af3
- call Function41ae1
-.asm_41af3
- call Function41ad7
+ jr z, .DMG
+ call Pokedex_SetBGMapMode4
+.DMG
+ call Pokedex_SetBGMapMode3
ret
-Function41af7: ; 41af7
+Pokedex_ResetBGMapMode: ; 41af7
xor a
ld [hBGMapMode], a
ret