summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xengine/pokedex.asm1205
-rwxr-xr-xmain.asm1205
2 files changed, 1205 insertions, 1205 deletions
diff --git a/engine/pokedex.asm b/engine/pokedex.asm
index 0ff6819..69af64c 100755
--- a/engine/pokedex.asm
+++ b/engine/pokedex.asm
@@ -1187,3 +1187,1208 @@ Func_287e7: ; 0x287e7
ld bc, $2030
call LoadOAMData
ret
+
+Func_28815: ; 0x28815
+ ld a, [wd5be]
+ dec a
+ ld [wd5be], a
+ ret nz
+ ld a, [wBallHitWildMon]
+ inc a
+ and $7
+ ld [wBallHitWildMon], a
+ jr nz, .asm_28836
+ ld a, [wd5c3]
+ ld [wd5be], a
+ xor a
+ ld [wd5c4], a
+ ld c, $2
+ jr .asm_28854
+
+.asm_28836
+ ld a, [wd5bc]
+ ld c, a
+ ld a, [wd5bd]
+ sub c
+ cp $1
+ ld c, $0
+ jr nc, .asm_28846
+ ld c, $1
+.asm_28846
+ ld b, $0
+ ld hl, wd5c1
+ add hl, bc
+ ld a, [hl]
+ ld [wd5be], a
+ xor a
+ ld [wd5c4], a
+.asm_28854
+ ld a, [wd5bc]
+ add c
+ ld [wd5bd], a
+ ret
+
+Func_2885c: ; 0x2885c
+ ld a, [wCurPokedexIndex]
+ ld c, a
+ ld b, $0
+ ld hl, wPokedexFlags
+ add hl, bc
+ bit 1, [hl]
+ call nz, Func_287e7
+ ld bc, $8888
+ ld a, $66
+ call LoadOAMData
+ ld bc, $6800
+ ld a, $6a
+ call LoadOAMData
+ ret
+
+Func_2887c: ; 0x2887c
+ ld a, BANK(PokedexTilemap2)
+ ld hl, PokedexTilemap2 + $120
+ deCoord 0, 8, vBGMap
+ ld bc, $0100
+ call LoadVRAMData
+ ld a, $3f
+ ld [hLYC], a
+ ld a, $47
+ ld [hNextLYCSub], a
+ ld b, $33
+.asm_28894
+ push bc
+ ld a, $7a
+ sub b
+ ld [hNextLYCSub], a
+ rst AdvanceFrame
+ pop bc
+ dec b
+ dec b
+ dec b
+ jr nz, .asm_28894
+ ret
+
+Func_288a2: ; 0x288a2
+ ld b, $33
+.asm_288a4
+ push bc
+ ld a, $44
+ add b
+ ld [hNextLYCSub], a
+ rst AdvanceFrame
+ pop bc
+ dec b
+ dec b
+ dec b
+ jr nz, .asm_288a4
+ ld a, $3b
+ ld [hLYC], a
+ ld [hNextLYCSub], a
+ ld a, BANK(PokedexTilemap2)
+ ld hl, PokedexTilemap2 + $100
+ deCoord 0, 8, vBGMap
+ ld bc, $0020
+ call LoadVRAMData
+ ret
+
+Func_288c6: ; 0x288c6
+ ld a, [wCurPokedexIndex]
+ ld c, a
+ ld b, $0
+ ld hl, wPokedexFlags
+ add hl, bc
+ bit 1, [hl]
+ ld hl, Unknown_2c000
+ jr z, .asm_288f4
+ ld a, [wCurPokedexIndex]
+ ld c, a
+ ld b, $0
+ sla c
+ rl b
+ ld hl, PokedexDescriptionPointers
+ add hl, bc
+ ld a, BANK(PokedexDescriptionPointers)
+ call ReadByteFromBank
+ inc hl
+ ld c, a
+ ld a, BANK(PokedexDescriptionPointers)
+ call ReadByteFromBank
+ ld b, a
+ ld h, b
+ ld l, c
+.asm_288f4
+ xor a
+ ld [wd860], a
+ ld [wd861], a
+ ld bc, $906c
+ ld de, vTilesSH tile $10
+ call Func_28d97
+ rl a
+ ld [wd956], a
+ ld a, l
+ ld [wd957], a
+ ld a, h
+ ld [wd958], a
+ ret
+
+Func_28912: ; 0x28912
+ ld bc, $906c
+ ld de, vTilesSH tile $10
+ ld a, [wd957]
+ ld l, a
+ ld a, [wd958]
+ ld h, a
+ call Func_28d97
+ rl a
+ ld [wd956], a
+ ld a, l
+ ld [wd957], a
+ ld a, h
+ ld [wd958], a
+ ret
+
+Func_28931: ; 0x28931
+ ld a, [wCurPokedexIndex]
+ ld c, a
+ ld b, $0
+ ld hl, wPokedexFlags
+ add hl, bc
+ ld a, [hl]
+ and a
+ ld hl, BlankDexName
+ jr z, .asm_2895d
+ ld a, [wCurPokedexIndex]
+ ld c, a
+ ld b, $0
+ ld h, b
+ ld l, c
+ sla l
+ rl h
+ sla l
+ rl h
+ sla l
+ rl h
+ add hl, bc
+ add hl, bc
+ add hl, bc
+ ld bc, MonDexNames
+ add hl, bc
+.asm_2895d
+ ld a, $ff
+ ld [wd860], a
+ xor a
+ ld [wd861], a
+ ld bc, $500a
+ ld de, vTilesBG tile $50
+ call Func_28e09
+ ret
+
+BlankDexName:
+ db " @"
+
+Func_28972: ; 0x28972
+ ld a, [wPokedexOffset]
+ ld c, a
+ ld b, $6
+.asm_28978
+ push bc
+ ld a, c
+ sla a
+ and $e
+ ld e, a
+ ld d, $0
+ ld hl, TileLocations_287b7
+ add hl, de
+ ld a, [hli]
+ ld e, a
+ ld a, [hl]
+ ld d, a
+ ld a, c
+ call Func_28993
+ pop bc
+ inc c
+ dec b
+ jr nz, .asm_28978
+ ret
+
+Func_28993: ; 0x28993
+ push hl
+ ld c, a
+ ld b, $0
+ ld hl, wPokedexFlags
+ add hl, bc
+ ld a, [hl]
+ and a
+ ld hl, BlankDexName2
+ jr z, .asm_289b7
+ ld h, b
+ ld l, c
+ sla l
+ rl h
+ sla l
+ rl h
+ sla l
+ rl h
+ add hl, bc
+ add hl, bc
+ add hl, bc
+ ld bc, MonDexNames
+ add hl, bc
+.asm_289b7
+ xor a
+ ld [wd860], a
+ ld [wd861], a
+ ld bc, $500a ; not a pointer
+ call Func_28e09
+ pop hl
+ ret
+
+BlankDexName2:
+ db " @"
+
+Func_289c8: ; 0x289c8
+ ld a, [wCurPokedexIndex]
+ ld c, a
+ ld b, $0
+ ld hl, wPokedexFlags
+ add hl, bc
+ bit 1, [hl]
+ ld hl, BlankSpeciesName
+ jr z, .pokemonNotOwned
+ ld a, [wCurPokedexIndex]
+ ld c, a
+ ld b, $0
+ ld hl, MonSpecies
+ add hl, bc
+ ld c, [hl]
+ ld h, b
+ ld l, c
+ sla l
+ rl h
+ sla l
+ rl h
+ sla l
+ rl h
+ add hl, bc
+ add hl, bc
+ add hl, bc ; value * 11
+ sla l
+ rl h
+ add hl, bc ; value * 23
+ ld bc, MonSpeciesNames
+ add hl, bc
+.pokemonNotOwned
+ ld a, $ff
+ ld [wd860], a
+ ld a, $4
+ ld [wd861], a
+ ld bc, $5816
+ ld de, vTilesBG tile $5a
+ call Func_28e09
+ ret
+
+BlankSpeciesName:
+ dw $4081 ; variable-width font character
+ db $00
+
+Func_28a15: ; 0x28a15
+ ld a, [wCurPokedexIndex]
+ ld c, a
+ ld b, $0
+ ld h, b
+ ld l, c
+ sla l
+ rl h
+ add hl, bc
+ sla l
+ rl h
+ add hl, bc
+ sla l
+ rl h
+ add hl, bc
+ ld bc, PokedexMonAttributesTexts
+ add hl, bc
+ ld d, h
+ ld e, l
+ ld a, $0
+ ld [wd865], a
+ push de
+ hlCoord 4, 2, vBGMap
+ call Func_28d71
+ pop de
+ inc de
+ inc de
+ inc de
+ inc de
+ ld a, [wCurPokedexIndex]
+ ld c, a
+ ld b, $0
+ ld hl, wPokedexFlags
+ add hl, bc
+ bit 1, [hl]
+ jr nz, .asm_28a54
+ ld de, BlankPokemonTileData_28a7f
+.asm_28a54
+ push de
+ hlCoord 8, 6, vBGMap
+ call Func_28d71
+ pop de
+ inc de
+ inc de
+ inc de
+ inc de
+ inc de
+ push de
+ hlCoord 14, 6, vBGMap
+ call Func_28d71
+ pop de
+ inc de
+ inc de
+ inc de
+ inc de
+ inc de
+ hlCoord 16, 7, vBGMap
+ ld a, [rLCDC]
+ bit 7, a
+ jr nz, .asm_28a7a
+ ld a, [de]
+ ld [hl], a
+ ret
+
+.asm_28a7a
+ ld a, [de]
+ call PutTileInVRAM
+ ret
+
+BlankPokemonTileData_28a7f:
+ db $FF, $FF, $72, $FF
+ db $00 ; terminator
+
+ db $FF, $FF, $FF, $FF
+ db $00 ; terminator
+
+ db $83 ; tile id
+
+Func_28a8a: ; 0x28a8a
+ ld a, [wPokedexOffset]
+ ld c, a
+ ld b, $6
+.asm_28a90
+ push bc
+ ld a, c
+ sla a
+ and $1e
+ ld e, a
+ ld d, $0
+ ld hl, BGMapLocations_287c7
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld a, c
+ call Func_28aaa
+ pop bc
+ inc c
+ dec b
+ jr nz, .asm_28a90
+ ret
+
+Func_28aaa: ; 0x28aaa
+ push hl
+ ld c, a
+ ld b, $0
+ ld h, b
+ ld l, c
+ sla l
+ rl h
+ add hl, bc
+ sla l
+ rl h
+ add hl, bc
+ sla l
+ rl h
+ add hl, bc
+ ld bc, PokedexMonAttributesTexts
+ add hl, bc
+ ld d, h
+ ld e, l
+ ld a, $23
+ ld [wd865], a
+ pop hl
+ push hl
+ call Func_28d71
+ pop hl
+ ret
+
+Func_28ad1: ; 0x28ad1
+ ld a, [wPokedexOffset]
+ swap a
+ and $f0
+ sub $3c
+ ld [hNextFrameHBlankSCX], a
+ ret
+
+Func_28add: ; 0x28add
+ ld a, [wCurPokedexIndex]
+ ld c, a
+ ld b, $0
+ ld hl, wPokedexFlags
+ add hl, bc
+ ld a, [hl]
+ and a
+ jp z, LoadUncaughtPokemonBackgroundGfx
+ dec a
+ jp z, LoadSeenPokemonGfx
+ ld a, [wd960]
+ and a
+ jr z, .asm_28afc
+ call Func_28cc2
+ jp z, Func_28bf5
+.asm_28afc
+ ld a, [wCurPokedexIndex]
+ ld c, a
+ ld b, $0
+ sla c
+ rl b
+ add c
+ ld c, a
+ jr nc, .asm_28b0b
+ inc b
+.asm_28b0b
+ push bc
+ ld hl, MonBillboardPicPointers
+ add hl, bc
+ ld a, Bank(MonBillboardPicPointers)
+ call ReadByteFromBank
+ inc hl
+ ld c, a
+ ld a, Bank(MonBillboardPicPointers)
+ call ReadByteFromBank
+ inc hl
+ ld b, a
+ ld a, Bank(MonBillboardPicPointers)
+ call ReadByteFromBank
+ ld h, b
+ ld l, c
+ ld de, vTilesBG tile $00
+ ld bc, $0180
+ call LoadOrCopyVRAMData
+ call Func_28cd4
+ pop bc
+ ld a, [hGameBoyColorFlag]
+ and a
+ ret z
+ push bc
+ ld hl, MonBillboardPaletteMapPointers
+ add hl, bc
+ ld a, Bank(MonBillboardPaletteMapPointers)
+ call ReadByteFromBank
+ inc hl
+ ld e, a
+ ld a, Bank(MonBillboardPaletteMapPointers)
+ call ReadByteFromBank
+ inc hl
+ ld d, a
+ ld a, Bank(MonBillboardPaletteMapPointers)
+ call ReadByteFromBank
+ hlCoord 1, 3, vBGMap
+ call LoadBillboardPaletteMap
+ pop bc
+ ld hl, MonBillboardPalettePointers
+ add hl, bc
+ ld a, Bank(MonBillboardPalettePointers)
+ call ReadByteFromBank
+ inc hl
+ ld e, a
+ ld a, Bank(MonBillboardPalettePointers)
+ call ReadByteFromBank
+ inc hl
+ ld d, a
+ ld a, Bank(MonBillboardPalettePointers)
+ call ReadByteFromBank
+ ld bc, $10b0
+ ld hl, rBGPI
+ call Func_8e1
+ ret
+
+LoadUncaughtPokemonBackgroundGfx: ; 0x28b76
+ ld a, BANK(UncaughtPokemonBackgroundPic)
+ ld hl, UncaughtPokemonBackgroundPic
+ ld de, vTilesBG tile $00
+ ld bc, $0180
+ call LoadOrCopyVRAMData
+ call Func_28cd4
+ ld a, [hGameBoyColorFlag]
+ and a
+ ret z
+ ld a, BANK(UncaughtPokemonPaletteMap)
+ ld de, UncaughtPokemonPaletteMap
+ hlCoord 1, 3, vBGMap
+ call LoadBillboardPaletteMap
+ ret
+
+UncaughtPokemonPaletteMap:
+ db $05, $05, $05, $05, $05, $05
+ db $05, $05, $05, $05, $05, $05
+ db $05, $05, $05, $05, $05, $05
+ db $05, $05, $05, $05, $05, $05
+
+LoadSeenPokemonGfx: ; 0x28baf
+ ld a, [wCurPokedexIndex]
+ ld c, a
+ ld b, $0
+ sla c
+ rl b
+ add c
+ ld c, a
+ jr nc, .asm_28bbe
+ inc b
+.asm_28bbe
+ ld hl, MonBillboardPicPointers
+ add hl, bc
+ ld a, Bank(MonBillboardPicPointers)
+ call ReadByteFromBank
+ inc hl
+ ld c, a
+ ld a, Bank(MonBillboardPicPointers)
+ call ReadByteFromBank
+ inc hl
+ ld b, a
+ ld a, Bank(MonBillboardPicPointers)
+ call ReadByteFromBank
+ ld hl, $0180
+ add hl, bc
+ ld de, vTilesBG tile $00
+ ld bc, $0180
+ call LoadOrCopyVRAMData
+ call Func_28cd4
+ ld a, [hGameBoyColorFlag]
+ and a
+ ret z
+ ld a, BANK(UncaughtPokemonPaletteMap)
+ ld de, UncaughtPokemonPaletteMap
+ hlCoord 1, 3, vBGMap
+ call LoadBillboardPaletteMap
+ ret
+
+Func_28bf5: ; 0x28bf5
+ ld a, [wCurPokedexIndex]
+ ld c, a
+ ld b, $0
+ sla c
+ rl b
+ add c
+ ld c, a
+ jr nc, .asm_28c04
+ inc b
+.asm_28c04
+ push bc
+ ld a, $1
+ ld [rVBK], a
+ ld hl, MonAnimatedPicPointers
+ add hl, bc
+ ld a, Bank(MonAnimatedPicPointers)
+ call ReadByteFromBank
+ inc hl
+ ld c, a
+ ld a, Bank(MonAnimatedPicPointers)
+ call ReadByteFromBank
+ inc hl
+ ld b, a
+ ld a, Bank(MonAnimatedPicPointers)
+ call ReadByteFromBank
+ ld h, b
+ ld l, c
+ ld de, vTilesOB
+ ld bc, $0300
+ call LoadOrCopyVRAMData
+ xor a
+ ld [rVBK], a
+ pop bc
+ push bc
+ ld a, [wCurPokedexIndex]
+ ld c, a
+ ld b, $0
+ ld hl, EvolutionLineIds
+ add hl, bc
+ ld a, BANK(EvolutionLineIds)
+ call ReadByteFromBank
+ ld c, a
+ ld b, $0
+ sla c
+ rl b
+ add c
+ ld c, a
+ jr nc, .asm_28c4b
+ inc b
+.asm_28c4b
+ ld hl, Data_13685
+ add hl, bc
+ ld a, Bank(Data_13685)
+ call ReadByteFromBank
+ ld [wd5c1], a
+ ld [wd5be], a
+ inc hl
+ ld a, Bank(Data_13685)
+ call ReadByteFromBank
+ ld [wd5c2], a
+ inc hl
+ ld a, Bank(Data_13685)
+ call ReadByteFromBank
+ ld [wd5c3], a
+ ld a, [wCurPokedexIndex]
+ ld c, a
+ ld b, $0
+ ld hl, MonAnimatedSpriteTypes
+ add hl, bc
+ ld a, Bank(MonAnimatedSpriteTypes)
+ call ReadByteFromBank
+ ld [wd5bc], a
+ ld [wd5bd], a
+ call Func_28cf8
+ pop bc
+ ld a, [hGameBoyColorFlag]
+ and a
+ ret z
+ ld hl, MonAnimatedPalettePointers
+ add hl, bc
+ ld a, Bank(MonAnimatedPalettePointers)
+ call ReadByteFromBank
+ inc hl
+ ld e, a
+ ld a, Bank(MonAnimatedPalettePointers)
+ call ReadByteFromBank
+ inc hl
+ ld d, a
+ ld a, Bank(MonAnimatedPalettePointers)
+ call ReadByteFromBank
+ push af
+ push de
+ ld bc, $10b0
+ ld hl, rBGPI
+ call Func_8e1
+ pop de
+ pop af
+ push af
+ ld bc, $08d8
+ ld hl, rOBPI
+ call Func_8e1
+ pop af
+ ld bc, $08e8
+ ld hl, rOBPI
+ call Func_8e1
+ ret
+
+Func_28cc2: ; 0x28cc2
+ ld a, [wCurPokedexIndex]
+ ld c, a
+ ld b, $0
+ ld hl, MonAnimatedSpriteTypes
+ add hl, bc
+ ld a, Bank(MonAnimatedSpriteTypes)
+ call ReadByteFromBank
+ bit 7, a
+ ret
+
+Func_28cd4: ; 0x28cd4
+ xor a
+ ld hl, wd961
+ cp [hl]
+ ret z
+ ld [hl], a
+ ld de, .Data_28ce0
+ jr asm_28d1d
+
+.Data_28ce0: ; 0x28ce0
+ db $0
+ db $1
+ db $2
+ db $3
+ db $4
+ db $5
+ db $6
+ db $7
+ db $8
+ db $9
+ db $a
+ db $b
+ db $c
+ db $d
+ db $e
+ db $f
+ db $10
+ db $11
+ db $12
+ db $13
+ db $14
+ db $15
+ db $16
+ db $17
+
+Func_28cf8: ; 0x28cf8
+ ld a, $1
+ ld hl, wd961
+ cp [hl]
+ ret z
+ ld [hl], a
+ ld de, .data_28d05
+ jr asm_28d1d
+
+.data_28d05
+ db $fe
+ db $fe
+ db $fe
+ db $fe
+ db $fe
+ db $fe
+ db $fe
+ db $fe
+ db $fe
+ db $fe
+ db $fe
+ db $fe
+ db $fe
+ db $fe
+ db $fe
+ db $fe
+ db $fe
+ db $fe
+ db $fe
+ db $fe
+ db $fe
+ db $fe
+ db $fe
+ db $fe
+
+asm_28d1d
+ hlCoord 1, 3, vBGMap
+ ld b, $4
+.asm_28d22
+ ld c, $6
+.asm_28d24
+ ld a, [de]
+ call PutTileInVRAM
+ inc de
+ inc hl
+ dec c
+ jr nz, .asm_28d24
+ ld a, l
+ add $1a
+ ld l, a
+ dec b
+ jr nz, .asm_28d22
+ ret
+
+CountNumSeenOwnedMons: ; 0x28d35
+ ld hl, wPokedexFlags
+ ld de, $0000 ; keep a running count: d = owned, e = seen
+ ld b, NUM_POKEMON
+.checkSeen
+ bit 0, [hl] ; is mon seen?
+ jr z, .checkOwned
+ inc e
+.checkOwned
+ bit 1, [hl] ; is mon owned?
+ jr z, .nextMon
+ inc d
+.nextMon
+ inc hl
+ dec b
+ jr nz, .checkSeen
+ push de
+ ld a, d
+ call ConvertHexByteToDecWord
+ ld a, e
+ ld [wNumPokemonSeen], a
+ ld a, d
+ ld [wNumPokemonSeen + 1], a
+ pop de
+ ld a, e
+ call ConvertHexByteToDecWord
+ ld a, e
+ ld [wNumPokemonOwned], a
+ ld a, d
+ ld [wNumPokemonOwned + 1], a
+ ret
+
+ClearPokedexData: ; 0x28d66
+ ld hl, wPokedexFlags
+ xor a
+ ld b, NUM_POKEMON
+.asm_28d6c
+ ld [hli], a
+ dec b
+ jr nz, .asm_28d6c
+ ret
+
+Func_28d71: ; 0x28d71
+ ld a, [wd865]
+ ld c, a
+ ld a, [de]
+ inc de
+ and a
+ ret z
+ cp $20
+ jr nz, .asm_28d81
+ ld a, $ff
+ jr .asm_28d82
+
+.asm_28d81
+ add c
+.asm_28d82
+ call Func_28d88
+ inc hl
+ jr Func_28d71
+
+Func_28d88: ; 0x28d88
+ push af
+ ld a, [rLCDC]
+ bit 7, a
+ jr nz, .asm_28d92
+ pop af
+ ld [hl], a
+ ret
+
+.asm_28d92
+ pop af
+ call PutTileInVRAM
+ ret
+
+Func_28d97: ; 0x28d97
+ push de
+ ld a, b
+ ld [$ff8c], a
+ ld [$ff8d], a
+ ld a, c
+ ld [$ff8f], a
+ xor a
+ ld [$ff8e], a
+ ld [$ff90], a
+ ld [$ff91], a
+ call Func_28e73
+.asm_28daa
+ call Func_2957c
+ jr nc, .asm_28dcb
+ push hl
+ ld [$ff92], a
+ cp $ff
+ jr nz, .asm_28dbb
+ call Func_208c
+ jr .asm_28dc8
+
+.asm_28dbb
+ ld c, a
+ ld b, $0
+ ld hl, CharacterWidths
+ add hl, bc
+ ld a, [hl]
+ ld [$ff93], a
+ call LoadDexVWFCharacter
+.asm_28dc8
+ pop hl
+ jr nc, .asm_28daa
+.asm_28dcb
+ pop de
+ push af
+ ld a, e
+ ld [wd863], a
+ ld a, d
+ ld [wd864], a
+ ld a, [wd862]
+ and a
+ jr nz, .asm_28ddd
+ pop af
+ ret
+
+.asm_28ddd
+ push hl
+ ld a, [wd861]
+ ld c, a
+ ld b, $0
+ bit 7, c
+ jr z, .asm_28de9
+ dec b
+.asm_28de9
+ ld hl, wc010
+ add hl, bc
+ ld a, [$ff8f]
+ ld c, a
+ ld b, $0
+ sla c
+ rl b
+ sla c
+ rl b
+ sla c
+ rl b
+ sla c
+ rl b
+ xor a
+ call LoadOrCopyVRAMData
+ pop hl
+ pop af
+ ret
+
+Func_28e09: ; 0x28e09
+ push de
+ ld a, b
+ ld [$ff8c], a
+ ld [$ff8d], a
+ ld a, c
+ ld [$ff8f], a
+ xor a
+ ld [$ff8e], a
+ ld [$ff90], a
+ ld [$ff91], a
+ call Func_28e73
+.asm_28e1c
+ call Func_295e1
+ jr nc, .asm_28e35
+ push hl
+ ld [$ff92], a
+ ld c, a
+ ld b, $0
+ ld hl, CharacterWidths
+ add hl, bc
+ ld a, [hl]
+ ld [$ff93], a
+ call LoadDexVWFCharacter
+ pop hl
+ jr nc, .asm_28e1c
+ nop
+.asm_28e35
+ pop de
+ push af
+ ld a, e
+ ld [wd863], a
+ ld a, d
+ ld [wd864], a
+ ld a, [wd862]
+ and a
+ jr nz, .asm_28e47
+ pop af
+ ret
+
+.asm_28e47
+ push hl
+ ld a, [wd861]
+ ld c, a
+ ld b, $0
+ bit 7, c
+ jr z, .asm_28e53
+ dec b
+.asm_28e53
+ ld hl, wc010
+ add hl, bc
+ ld a, [$ff8f]
+ ld c, a
+ ld b, $0
+ sla c
+ rl b
+ sla c
+ rl b
+ sla c
+ rl b
+ sla c
+ rl b
+ xor a
+ call LoadOrCopyVRAMData
+ pop hl
+ pop af
+ ret
+
+Func_28e73: ; 0x28e73
+ push hl
+ ld a, [$ff8f]
+ ld c, a
+ ld b, $0
+ sla c
+ rl b
+ sla c
+ rl b
+ sla c
+ rl b
+ sla c
+ rl b
+ ld hl, Func_29566
+ ld a, l
+ sub c
+ ld l, a
+ ld a, h
+ sbc b
+ ld h, a
+ push hl
+ ld hl, wc000
+ ld a, [wd860]
+ ret
+
+Func_28e9a:
+REPT 20 * 87
+ ld [hli], a
+ENDR
+Func_29566:
+REPT 20
+ ld [hli], a
+ENDR
+ pop hl
+ ret
+
+Func_2957c: ; 0x2957c
+ ld a, BANK(PokedexDescriptionPointers)
+ call ReadByteFromBank
+ inc hl
+ and a
+ ret z
+ cp $d ; carriage return
+ jr nz, .asm_2958c
+ ld a, $ff
+ scf
+ ret
+
+.asm_2958c
+ cp "0"
+ jr c, .asm_29594
+ cp "9" + 1
+ jr c, .asm_295be
+.asm_29594
+ cp "A"
+ jr c, .asm_2959c
+ cp "Z" + 1
+ jr c, .asm_295c2
+.asm_2959c
+ cp "a"
+ jr c, .asm_295a4
+ cp "z" + 1
+ jr c, .asm_295c6
+.asm_295a4
+ cp " "
+ jr z, .asm_295ca
+ cp ","
+ jr z, .asm_295cd
+ cp "."
+ jr z, .asm_295d1
+ cp "`"
+ jr z, .asm_295d5
+ cp "-"
+ jr z, .asm_295d9
+ cp "é"
+ jr z, .asm_295dd
+ and a
+ ret
+
+.asm_295be
+ sub $88
+ scf
+ ret
+
+.asm_295c2
+ sub $8e
+ scf
+ ret
+
+.asm_295c6
+ sub $94
+ scf
+ ret
+
+.asm_295ca
+ xor a
+ scf
+ ret
+
+.asm_295cd
+ ld a, $f3
+ scf
+ ret
+
+.asm_295d1
+ ld a, $f4
+ scf
+ ret
+
+.asm_295d5
+ ld a, $fa
+ scf
+ ret
+
+.asm_295d9
+ ld a, $b2
+ scf
+ ret
+
+.asm_295dd
+ ld a, $f9
+ scf
+ ret
+
+Func_295e1: ; 0x295e1
+ ld a, [hli]
+ and a
+ ret z
+ cp $80
+ jr nc, .asm_295ed
+ ld c, a
+ ld b, $0
+ jr .asm_295f0
+
+.asm_295ed
+ ld b, a
+ ld a, [hli]
+ ld c, a
+.asm_295f0
+ ld a, b
+ and a
+ jr nz, .asm_295f9
+ ld a, c
+ sub $20
+ scf
+ ret
+
+.asm_295f9
+ push hl
+ call GetCharacterWidthIndex
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld a, [hl]
+ pop hl
+ scf
+ ret
+
+GetCharacterWidthIndex: ; 0x29605
+ ld a, b
+ cp $81
+ jr nz, .asm_29611
+ ld hl, CharacterWidthIndices1
+ ld a, c
+ sub $40
+ ret
+
+.asm_29611
+ cp $83
+ jr nz, .asm_2961c
+ ld hl, CharacterWidthIndices3
+ ld a, c
+ sub $40
+ ret
+
+.asm_2961c
+ ld a, c
+ cp $9f
+ jr nc, .asm_29628
+ ld hl, CharacterWidthIndices2
+ ld a, c
+ sub $4f
+ ret
+
+.asm_29628
+ ld hl, CharacterWidthIndices4
+ ld a, c
+ sub $9f
+ ret
+
+INCLUDE "data/vwf_character_widths.asm"
+INCLUDE "text/pokedex_mon_names.asm"
+INCLUDE "data/mon_species.asm"
+INCLUDE "text/pokedex_species.asm"
+INCLUDE "text/pokedex_mon_attributes.asm"
+INCLUDE "data/dex_scroll_offsets.asm"
diff --git a/main.asm b/main.asm
index a3f0fd5..bc451a4 100755
--- a/main.asm
+++ b/main.asm
@@ -4161,1211 +4161,6 @@ SECTION "banka", ROMX, BANK[$a]
INCLUDE "engine/pokedex.asm"
-Func_28815: ; 0x28815
- ld a, [wd5be]
- dec a
- ld [wd5be], a
- ret nz
- ld a, [wBallHitWildMon]
- inc a
- and $7
- ld [wBallHitWildMon], a
- jr nz, .asm_28836
- ld a, [wd5c3]
- ld [wd5be], a
- xor a
- ld [wd5c4], a
- ld c, $2
- jr .asm_28854
-
-.asm_28836
- ld a, [wd5bc]
- ld c, a
- ld a, [wd5bd]
- sub c
- cp $1
- ld c, $0
- jr nc, .asm_28846
- ld c, $1
-.asm_28846
- ld b, $0
- ld hl, wd5c1
- add hl, bc
- ld a, [hl]
- ld [wd5be], a
- xor a
- ld [wd5c4], a
-.asm_28854
- ld a, [wd5bc]
- add c
- ld [wd5bd], a
- ret
-
-Func_2885c: ; 0x2885c
- ld a, [wCurPokedexIndex]
- ld c, a
- ld b, $0
- ld hl, wPokedexFlags
- add hl, bc
- bit 1, [hl]
- call nz, Func_287e7
- ld bc, $8888
- ld a, $66
- call LoadOAMData
- ld bc, $6800
- ld a, $6a
- call LoadOAMData
- ret
-
-Func_2887c: ; 0x2887c
- ld a, BANK(PokedexTilemap2)
- ld hl, PokedexTilemap2 + $120
- deCoord 0, 8, vBGMap
- ld bc, $0100
- call LoadVRAMData
- ld a, $3f
- ld [hLYC], a
- ld a, $47
- ld [hNextLYCSub], a
- ld b, $33
-.asm_28894
- push bc
- ld a, $7a
- sub b
- ld [hNextLYCSub], a
- rst AdvanceFrame
- pop bc
- dec b
- dec b
- dec b
- jr nz, .asm_28894
- ret
-
-Func_288a2: ; 0x288a2
- ld b, $33
-.asm_288a4
- push bc
- ld a, $44
- add b
- ld [hNextLYCSub], a
- rst AdvanceFrame
- pop bc
- dec b
- dec b
- dec b
- jr nz, .asm_288a4
- ld a, $3b
- ld [hLYC], a
- ld [hNextLYCSub], a
- ld a, BANK(PokedexTilemap2)
- ld hl, PokedexTilemap2 + $100
- deCoord 0, 8, vBGMap
- ld bc, $0020
- call LoadVRAMData
- ret
-
-Func_288c6: ; 0x288c6
- ld a, [wCurPokedexIndex]
- ld c, a
- ld b, $0
- ld hl, wPokedexFlags
- add hl, bc
- bit 1, [hl]
- ld hl, Unknown_2c000
- jr z, .asm_288f4
- ld a, [wCurPokedexIndex]
- ld c, a
- ld b, $0
- sla c
- rl b
- ld hl, PokedexDescriptionPointers
- add hl, bc
- ld a, BANK(PokedexDescriptionPointers)
- call ReadByteFromBank
- inc hl
- ld c, a
- ld a, BANK(PokedexDescriptionPointers)
- call ReadByteFromBank
- ld b, a
- ld h, b
- ld l, c
-.asm_288f4
- xor a
- ld [wd860], a
- ld [wd861], a
- ld bc, $906c
- ld de, vTilesSH tile $10
- call Func_28d97
- rl a
- ld [wd956], a
- ld a, l
- ld [wd957], a
- ld a, h
- ld [wd958], a
- ret
-
-Func_28912: ; 0x28912
- ld bc, $906c
- ld de, vTilesSH tile $10
- ld a, [wd957]
- ld l, a
- ld a, [wd958]
- ld h, a
- call Func_28d97
- rl a
- ld [wd956], a
- ld a, l
- ld [wd957], a
- ld a, h
- ld [wd958], a
- ret
-
-Func_28931: ; 0x28931
- ld a, [wCurPokedexIndex]
- ld c, a
- ld b, $0
- ld hl, wPokedexFlags
- add hl, bc
- ld a, [hl]
- and a
- ld hl, BlankDexName
- jr z, .asm_2895d
- ld a, [wCurPokedexIndex]
- ld c, a
- ld b, $0
- ld h, b
- ld l, c
- sla l
- rl h
- sla l
- rl h
- sla l
- rl h
- add hl, bc
- add hl, bc
- add hl, bc
- ld bc, MonDexNames
- add hl, bc
-.asm_2895d
- ld a, $ff
- ld [wd860], a
- xor a
- ld [wd861], a
- ld bc, $500a
- ld de, vTilesBG tile $50
- call Func_28e09
- ret
-
-BlankDexName:
- db " @"
-
-Func_28972: ; 0x28972
- ld a, [wPokedexOffset]
- ld c, a
- ld b, $6
-.asm_28978
- push bc
- ld a, c
- sla a
- and $e
- ld e, a
- ld d, $0
- ld hl, TileLocations_287b7
- add hl, de
- ld a, [hli]
- ld e, a
- ld a, [hl]
- ld d, a
- ld a, c
- call Func_28993
- pop bc
- inc c
- dec b
- jr nz, .asm_28978
- ret
-
-Func_28993: ; 0x28993
- push hl
- ld c, a
- ld b, $0
- ld hl, wPokedexFlags
- add hl, bc
- ld a, [hl]
- and a
- ld hl, BlankDexName2
- jr z, .asm_289b7
- ld h, b
- ld l, c
- sla l
- rl h
- sla l
- rl h
- sla l
- rl h
- add hl, bc
- add hl, bc
- add hl, bc
- ld bc, MonDexNames
- add hl, bc
-.asm_289b7
- xor a
- ld [wd860], a
- ld [wd861], a
- ld bc, $500a ; not a pointer
- call Func_28e09
- pop hl
- ret
-
-BlankDexName2:
- db " @"
-
-Func_289c8: ; 0x289c8
- ld a, [wCurPokedexIndex]
- ld c, a
- ld b, $0
- ld hl, wPokedexFlags
- add hl, bc
- bit 1, [hl]
- ld hl, BlankSpeciesName
- jr z, .pokemonNotOwned
- ld a, [wCurPokedexIndex]
- ld c, a
- ld b, $0
- ld hl, MonSpecies
- add hl, bc
- ld c, [hl]
- ld h, b
- ld l, c
- sla l
- rl h
- sla l
- rl h
- sla l
- rl h
- add hl, bc
- add hl, bc
- add hl, bc ; value * 11
- sla l
- rl h
- add hl, bc ; value * 23
- ld bc, MonSpeciesNames
- add hl, bc
-.pokemonNotOwned
- ld a, $ff
- ld [wd860], a
- ld a, $4
- ld [wd861], a
- ld bc, $5816
- ld de, vTilesBG tile $5a
- call Func_28e09
- ret
-
-BlankSpeciesName:
- dw $4081 ; variable-width font character
- db $00
-
-Func_28a15: ; 0x28a15
- ld a, [wCurPokedexIndex]
- ld c, a
- ld b, $0
- ld h, b
- ld l, c
- sla l
- rl h
- add hl, bc
- sla l
- rl h
- add hl, bc
- sla l
- rl h
- add hl, bc
- ld bc, PokedexMonAttributesTexts
- add hl, bc
- ld d, h
- ld e, l
- ld a, $0
- ld [wd865], a
- push de
- hlCoord 4, 2, vBGMap
- call Func_28d71
- pop de
- inc de
- inc de
- inc de
- inc de
- ld a, [wCurPokedexIndex]
- ld c, a
- ld b, $0
- ld hl, wPokedexFlags
- add hl, bc
- bit 1, [hl]
- jr nz, .asm_28a54
- ld de, BlankPokemonTileData_28a7f
-.asm_28a54
- push de
- hlCoord 8, 6, vBGMap
- call Func_28d71
- pop de
- inc de
- inc de
- inc de
- inc de
- inc de
- push de
- hlCoord 14, 6, vBGMap
- call Func_28d71
- pop de
- inc de
- inc de
- inc de
- inc de
- inc de
- hlCoord 16, 7, vBGMap
- ld a, [rLCDC]
- bit 7, a
- jr nz, .asm_28a7a
- ld a, [de]
- ld [hl], a
- ret
-
-.asm_28a7a
- ld a, [de]
- call PutTileInVRAM
- ret
-
-BlankPokemonTileData_28a7f:
- db $FF, $FF, $72, $FF
- db $00 ; terminator
-
- db $FF, $FF, $FF, $FF
- db $00 ; terminator
-
- db $83 ; tile id
-
-Func_28a8a: ; 0x28a8a
- ld a, [wPokedexOffset]
- ld c, a
- ld b, $6
-.asm_28a90
- push bc
- ld a, c
- sla a
- and $1e
- ld e, a
- ld d, $0
- ld hl, BGMapLocations_287c7
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld a, c
- call Func_28aaa
- pop bc
- inc c
- dec b
- jr nz, .asm_28a90
- ret
-
-Func_28aaa: ; 0x28aaa
- push hl
- ld c, a
- ld b, $0
- ld h, b
- ld l, c
- sla l
- rl h
- add hl, bc
- sla l
- rl h
- add hl, bc
- sla l
- rl h
- add hl, bc
- ld bc, PokedexMonAttributesTexts
- add hl, bc
- ld d, h
- ld e, l
- ld a, $23
- ld [wd865], a
- pop hl
- push hl
- call Func_28d71
- pop hl
- ret
-
-Func_28ad1: ; 0x28ad1
- ld a, [wPokedexOffset]
- swap a
- and $f0
- sub $3c
- ld [hNextFrameHBlankSCX], a
- ret
-
-Func_28add: ; 0x28add
- ld a, [wCurPokedexIndex]
- ld c, a
- ld b, $0
- ld hl, wPokedexFlags
- add hl, bc
- ld a, [hl]
- and a
- jp z, LoadUncaughtPokemonBackgroundGfx
- dec a
- jp z, LoadSeenPokemonGfx
- ld a, [wd960]
- and a
- jr z, .asm_28afc
- call Func_28cc2
- jp z, Func_28bf5
-.asm_28afc
- ld a, [wCurPokedexIndex]
- ld c, a
- ld b, $0
- sla c
- rl b
- add c
- ld c, a
- jr nc, .asm_28b0b
- inc b
-.asm_28b0b
- push bc
- ld hl, MonBillboardPicPointers
- add hl, bc
- ld a, Bank(MonBillboardPicPointers)
- call ReadByteFromBank
- inc hl
- ld c, a
- ld a, Bank(MonBillboardPicPointers)
- call ReadByteFromBank
- inc hl
- ld b, a
- ld a, Bank(MonBillboardPicPointers)
- call ReadByteFromBank
- ld h, b
- ld l, c
- ld de, vTilesBG tile $00
- ld bc, $0180
- call LoadOrCopyVRAMData
- call Func_28cd4
- pop bc
- ld a, [hGameBoyColorFlag]
- and a
- ret z
- push bc
- ld hl, MonBillboardPaletteMapPointers
- add hl, bc
- ld a, Bank(MonBillboardPaletteMapPointers)
- call ReadByteFromBank
- inc hl
- ld e, a
- ld a, Bank(MonBillboardPaletteMapPointers)
- call ReadByteFromBank
- inc hl
- ld d, a
- ld a, Bank(MonBillboardPaletteMapPointers)
- call ReadByteFromBank
- hlCoord 1, 3, vBGMap
- call LoadBillboardPaletteMap
- pop bc
- ld hl, MonBillboardPalettePointers
- add hl, bc
- ld a, Bank(MonBillboardPalettePointers)
- call ReadByteFromBank
- inc hl
- ld e, a
- ld a, Bank(MonBillboardPalettePointers)
- call ReadByteFromBank
- inc hl
- ld d, a
- ld a, Bank(MonBillboardPalettePointers)
- call ReadByteFromBank
- ld bc, $10b0
- ld hl, rBGPI
- call Func_8e1
- ret
-
-LoadUncaughtPokemonBackgroundGfx: ; 0x28b76
- ld a, BANK(UncaughtPokemonBackgroundPic)
- ld hl, UncaughtPokemonBackgroundPic
- ld de, vTilesBG tile $00
- ld bc, $0180
- call LoadOrCopyVRAMData
- call Func_28cd4
- ld a, [hGameBoyColorFlag]
- and a
- ret z
- ld a, BANK(UncaughtPokemonPaletteMap)
- ld de, UncaughtPokemonPaletteMap
- hlCoord 1, 3, vBGMap
- call LoadBillboardPaletteMap
- ret
-
-UncaughtPokemonPaletteMap:
- db $05, $05, $05, $05, $05, $05
- db $05, $05, $05, $05, $05, $05
- db $05, $05, $05, $05, $05, $05
- db $05, $05, $05, $05, $05, $05
-
-LoadSeenPokemonGfx: ; 0x28baf
- ld a, [wCurPokedexIndex]
- ld c, a
- ld b, $0
- sla c
- rl b
- add c
- ld c, a
- jr nc, .asm_28bbe
- inc b
-.asm_28bbe
- ld hl, MonBillboardPicPointers
- add hl, bc
- ld a, Bank(MonBillboardPicPointers)
- call ReadByteFromBank
- inc hl
- ld c, a
- ld a, Bank(MonBillboardPicPointers)
- call ReadByteFromBank
- inc hl
- ld b, a
- ld a, Bank(MonBillboardPicPointers)
- call ReadByteFromBank
- ld hl, $0180
- add hl, bc
- ld de, vTilesBG tile $00
- ld bc, $0180
- call LoadOrCopyVRAMData
- call Func_28cd4
- ld a, [hGameBoyColorFlag]
- and a
- ret z
- ld a, BANK(UncaughtPokemonPaletteMap)
- ld de, UncaughtPokemonPaletteMap
- hlCoord 1, 3, vBGMap
- call LoadBillboardPaletteMap
- ret
-
-Func_28bf5: ; 0x28bf5
- ld a, [wCurPokedexIndex]
- ld c, a
- ld b, $0
- sla c
- rl b
- add c
- ld c, a
- jr nc, .asm_28c04
- inc b
-.asm_28c04
- push bc
- ld a, $1
- ld [rVBK], a
- ld hl, MonAnimatedPicPointers
- add hl, bc
- ld a, Bank(MonAnimatedPicPointers)
- call ReadByteFromBank
- inc hl
- ld c, a
- ld a, Bank(MonAnimatedPicPointers)
- call ReadByteFromBank
- inc hl
- ld b, a
- ld a, Bank(MonAnimatedPicPointers)
- call ReadByteFromBank
- ld h, b
- ld l, c
- ld de, vTilesOB
- ld bc, $0300
- call LoadOrCopyVRAMData
- xor a
- ld [rVBK], a
- pop bc
- push bc
- ld a, [wCurPokedexIndex]
- ld c, a
- ld b, $0
- ld hl, EvolutionLineIds
- add hl, bc
- ld a, BANK(EvolutionLineIds)
- call ReadByteFromBank
- ld c, a
- ld b, $0
- sla c
- rl b
- add c
- ld c, a
- jr nc, .asm_28c4b
- inc b
-.asm_28c4b
- ld hl, Data_13685
- add hl, bc
- ld a, Bank(Data_13685)
- call ReadByteFromBank
- ld [wd5c1], a
- ld [wd5be], a
- inc hl
- ld a, Bank(Data_13685)
- call ReadByteFromBank
- ld [wd5c2], a
- inc hl
- ld a, Bank(Data_13685)
- call ReadByteFromBank
- ld [wd5c3], a
- ld a, [wCurPokedexIndex]
- ld c, a
- ld b, $0
- ld hl, MonAnimatedSpriteTypes
- add hl, bc
- ld a, Bank(MonAnimatedSpriteTypes)
- call ReadByteFromBank
- ld [wd5bc], a
- ld [wd5bd], a
- call Func_28cf8
- pop bc
- ld a, [hGameBoyColorFlag]
- and a
- ret z
- ld hl, MonAnimatedPalettePointers
- add hl, bc
- ld a, Bank(MonAnimatedPalettePointers)
- call ReadByteFromBank
- inc hl
- ld e, a
- ld a, Bank(MonAnimatedPalettePointers)
- call ReadByteFromBank
- inc hl
- ld d, a
- ld a, Bank(MonAnimatedPalettePointers)
- call ReadByteFromBank
- push af
- push de
- ld bc, $10b0
- ld hl, rBGPI
- call Func_8e1
- pop de
- pop af
- push af
- ld bc, $08d8
- ld hl, rOBPI
- call Func_8e1
- pop af
- ld bc, $08e8
- ld hl, rOBPI
- call Func_8e1
- ret
-
-Func_28cc2: ; 0x28cc2
- ld a, [wCurPokedexIndex]
- ld c, a
- ld b, $0
- ld hl, MonAnimatedSpriteTypes
- add hl, bc
- ld a, Bank(MonAnimatedSpriteTypes)
- call ReadByteFromBank
- bit 7, a
- ret
-
-Func_28cd4: ; 0x28cd4
- xor a
- ld hl, wd961
- cp [hl]
- ret z
- ld [hl], a
- ld de, .Data_28ce0
- jr asm_28d1d
-
-.Data_28ce0: ; 0x28ce0
- db $0
- db $1
- db $2
- db $3
- db $4
- db $5
- db $6
- db $7
- db $8
- db $9
- db $a
- db $b
- db $c
- db $d
- db $e
- db $f
- db $10
- db $11
- db $12
- db $13
- db $14
- db $15
- db $16
- db $17
-
-Func_28cf8: ; 0x28cf8
- ld a, $1
- ld hl, wd961
- cp [hl]
- ret z
- ld [hl], a
- ld de, .data_28d05
- jr asm_28d1d
-
-.data_28d05
- db $fe
- db $fe
- db $fe
- db $fe
- db $fe
- db $fe
- db $fe
- db $fe
- db $fe
- db $fe
- db $fe
- db $fe
- db $fe
- db $fe
- db $fe
- db $fe
- db $fe
- db $fe
- db $fe
- db $fe
- db $fe
- db $fe
- db $fe
- db $fe
-
-asm_28d1d
- hlCoord 1, 3, vBGMap
- ld b, $4
-.asm_28d22
- ld c, $6
-.asm_28d24
- ld a, [de]
- call PutTileInVRAM
- inc de
- inc hl
- dec c
- jr nz, .asm_28d24
- ld a, l
- add $1a
- ld l, a
- dec b
- jr nz, .asm_28d22
- ret
-
-CountNumSeenOwnedMons: ; 0x28d35
- ld hl, wPokedexFlags
- ld de, $0000 ; keep a running count: d = owned, e = seen
- ld b, NUM_POKEMON
-.checkSeen
- bit 0, [hl] ; is mon seen?
- jr z, .checkOwned
- inc e
-.checkOwned
- bit 1, [hl] ; is mon owned?
- jr z, .nextMon
- inc d
-.nextMon
- inc hl
- dec b
- jr nz, .checkSeen
- push de
- ld a, d
- call ConvertHexByteToDecWord
- ld a, e
- ld [wNumPokemonSeen], a
- ld a, d
- ld [wNumPokemonSeen + 1], a
- pop de
- ld a, e
- call ConvertHexByteToDecWord
- ld a, e
- ld [wNumPokemonOwned], a
- ld a, d
- ld [wNumPokemonOwned + 1], a
- ret
-
-ClearPokedexData: ; 0x28d66
- ld hl, wPokedexFlags
- xor a
- ld b, NUM_POKEMON
-.asm_28d6c
- ld [hli], a
- dec b
- jr nz, .asm_28d6c
- ret
-
-Func_28d71: ; 0x28d71
- ld a, [wd865]
- ld c, a
- ld a, [de]
- inc de
- and a
- ret z
- cp $20
- jr nz, .asm_28d81
- ld a, $ff
- jr .asm_28d82
-
-.asm_28d81
- add c
-.asm_28d82
- call Func_28d88
- inc hl
- jr Func_28d71
-
-Func_28d88: ; 0x28d88
- push af
- ld a, [rLCDC]
- bit 7, a
- jr nz, .asm_28d92
- pop af
- ld [hl], a
- ret
-
-.asm_28d92
- pop af
- call PutTileInVRAM
- ret
-
-Func_28d97: ; 0x28d97
- push de
- ld a, b
- ld [$ff8c], a
- ld [$ff8d], a
- ld a, c
- ld [$ff8f], a
- xor a
- ld [$ff8e], a
- ld [$ff90], a
- ld [$ff91], a
- call Func_28e73
-.asm_28daa
- call Func_2957c
- jr nc, .asm_28dcb
- push hl
- ld [$ff92], a
- cp $ff
- jr nz, .asm_28dbb
- call Func_208c
- jr .asm_28dc8
-
-.asm_28dbb
- ld c, a
- ld b, $0
- ld hl, CharacterWidths
- add hl, bc
- ld a, [hl]
- ld [$ff93], a
- call LoadDexVWFCharacter
-.asm_28dc8
- pop hl
- jr nc, .asm_28daa
-.asm_28dcb
- pop de
- push af
- ld a, e
- ld [wd863], a
- ld a, d
- ld [wd864], a
- ld a, [wd862]
- and a
- jr nz, .asm_28ddd
- pop af
- ret
-
-.asm_28ddd
- push hl
- ld a, [wd861]
- ld c, a
- ld b, $0
- bit 7, c
- jr z, .asm_28de9
- dec b
-.asm_28de9
- ld hl, wc010
- add hl, bc
- ld a, [$ff8f]
- ld c, a
- ld b, $0
- sla c
- rl b
- sla c
- rl b
- sla c
- rl b
- sla c
- rl b
- xor a
- call LoadOrCopyVRAMData
- pop hl
- pop af
- ret
-
-Func_28e09: ; 0x28e09
- push de
- ld a, b
- ld [$ff8c], a
- ld [$ff8d], a
- ld a, c
- ld [$ff8f], a
- xor a
- ld [$ff8e], a
- ld [$ff90], a
- ld [$ff91], a
- call Func_28e73
-.asm_28e1c
- call Func_295e1
- jr nc, .asm_28e35
- push hl
- ld [$ff92], a
- ld c, a
- ld b, $0
- ld hl, CharacterWidths
- add hl, bc
- ld a, [hl]
- ld [$ff93], a
- call LoadDexVWFCharacter
- pop hl
- jr nc, .asm_28e1c
- nop
-.asm_28e35
- pop de
- push af
- ld a, e
- ld [wd863], a
- ld a, d
- ld [wd864], a
- ld a, [wd862]
- and a
- jr nz, .asm_28e47
- pop af
- ret
-
-.asm_28e47
- push hl
- ld a, [wd861]
- ld c, a
- ld b, $0
- bit 7, c
- jr z, .asm_28e53
- dec b
-.asm_28e53
- ld hl, wc010
- add hl, bc
- ld a, [$ff8f]
- ld c, a
- ld b, $0
- sla c
- rl b
- sla c
- rl b
- sla c
- rl b
- sla c
- rl b
- xor a
- call LoadOrCopyVRAMData
- pop hl
- pop af
- ret
-
-Func_28e73: ; 0x28e73
- push hl
- ld a, [$ff8f]
- ld c, a
- ld b, $0
- sla c
- rl b
- sla c
- rl b
- sla c
- rl b
- sla c
- rl b
- ld hl, Func_29566
- ld a, l
- sub c
- ld l, a
- ld a, h
- sbc b
- ld h, a
- push hl
- ld hl, wc000
- ld a, [wd860]
- ret
-
-Func_28e9a:
-REPT 20 * 87
- ld [hli], a
-ENDR
-Func_29566:
-REPT 20
- ld [hli], a
-ENDR
- pop hl
- ret
-
-Func_2957c: ; 0x2957c
- ld a, BANK(PokedexDescriptionPointers)
- call ReadByteFromBank
- inc hl
- and a
- ret z
- cp $d ; carriage return
- jr nz, .asm_2958c
- ld a, $ff
- scf
- ret
-
-.asm_2958c
- cp "0"
- jr c, .asm_29594
- cp "9" + 1
- jr c, .asm_295be
-.asm_29594
- cp "A"
- jr c, .asm_2959c
- cp "Z" + 1
- jr c, .asm_295c2
-.asm_2959c
- cp "a"
- jr c, .asm_295a4
- cp "z" + 1
- jr c, .asm_295c6
-.asm_295a4
- cp " "
- jr z, .asm_295ca
- cp ","
- jr z, .asm_295cd
- cp "."
- jr z, .asm_295d1
- cp "`"
- jr z, .asm_295d5
- cp "-"
- jr z, .asm_295d9
- cp "é"
- jr z, .asm_295dd
- and a
- ret
-
-.asm_295be
- sub $88
- scf
- ret
-
-.asm_295c2
- sub $8e
- scf
- ret
-
-.asm_295c6
- sub $94
- scf
- ret
-
-.asm_295ca
- xor a
- scf
- ret
-
-.asm_295cd
- ld a, $f3
- scf
- ret
-
-.asm_295d1
- ld a, $f4
- scf
- ret
-
-.asm_295d5
- ld a, $fa
- scf
- ret
-
-.asm_295d9
- ld a, $b2
- scf
- ret
-
-.asm_295dd
- ld a, $f9
- scf
- ret
-
-Func_295e1: ; 0x295e1
- ld a, [hli]
- and a
- ret z
- cp $80
- jr nc, .asm_295ed
- ld c, a
- ld b, $0
- jr .asm_295f0
-
-.asm_295ed
- ld b, a
- ld a, [hli]
- ld c, a
-.asm_295f0
- ld a, b
- and a
- jr nz, .asm_295f9
- ld a, c
- sub $20
- scf
- ret
-
-.asm_295f9
- push hl
- call GetCharacterWidthIndex
- ld c, a
- ld b, $0
- add hl, bc
- ld a, [hl]
- pop hl
- scf
- ret
-
-GetCharacterWidthIndex: ; 0x29605
- ld a, b
- cp $81
- jr nz, .asm_29611
- ld hl, CharacterWidthIndices1
- ld a, c
- sub $40
- ret
-
-.asm_29611
- cp $83
- jr nz, .asm_2961c
- ld hl, CharacterWidthIndices3
- ld a, c
- sub $40
- ret
-
-.asm_2961c
- ld a, c
- cp $9f
- jr nc, .asm_29628
- ld hl, CharacterWidthIndices2
- ld a, c
- sub $4f
- ret
-
-.asm_29628
- ld hl, CharacterWidthIndices4
- ld a, c
- sub $9f
- ret
-
-INCLUDE "data/vwf_character_widths.asm"
-INCLUDE "text/pokedex_mon_names.asm"
-INCLUDE "data/mon_species.asm"
-INCLUDE "text/pokedex_species.asm"
-INCLUDE "text/pokedex_mon_attributes.asm"
-INCLUDE "data/dex_scroll_offsets.asm"
-
SECTION "bankb", ROMX, BANK[$b]
Unknown_2c000: ; 0x2c000