summaryrefslogtreecommitdiff
path: root/main.asm
diff options
context:
space:
mode:
Diffstat (limited to 'main.asm')
-rwxr-xr-xmain.asm1190
1 files changed, 1 insertions, 1189 deletions
diff --git a/main.asm b/main.asm
index 3bc7ec3..39461d4 100755
--- a/main.asm
+++ b/main.asm
@@ -33942,1195 +33942,7 @@ INCLUDE "engine/pinball_game/draw_sprites/draw_seel_bonus_sprites.asm"
SECTION "banka", ROMX, BANK[$a]
-HandlePokedexScreen: ; 0x28000
- ld a, [wScreenState]
- rst JumpTable ; calls JumpToFuncInTable
-PointerTable_28004: ; 0x28004
- dw LoadPokedexScreen
- dw MainPokedexScreen
- dw MonInfoPokedexScreen
- dw Func_282e9 ; not sure if this is used ever...
- dw ExitPokedexScreen
-
-LoadPokedexScreen: ; 0x2800e
- ld a, $23
- ld [hLCDC], a
- ld a, $e4
- ld [wBGP], a
- ld a, $93
- ld [wOBP0], a
- ld a, $e4
- ld [wOBP1], a
- xor a
- ld [hSCX], a
- ld a, $8
- ld [hSCY], a
- ld a, $7
- ld [hWX], a
- ld a, $8c
- ld [hWY], a
- ld a, $3b
- ld [hLYC], a
- ld [hLastLYC], a
- ld [hNextLYCSub], a
- ld [hLYCSub], a
- ld hl, hSTAT
- set 6, [hl]
- ld hl, rIE
- set 1, [hl]
- ld a, $2
- ld [hHBlankRoutine], a
- ld hl, PointerTable_280a2
- ld a, [hGameBoyColorFlag]
- call LoadVideoData
- xor a
- ld [wCurPokedexIndex], a
- ld [wPokedexOffset], a
- ld [wd95b], a
- ld [wd95c], a
- ld [wd960], a
- ld [wd961], a
- ld [wd95e], a
- ld a, $1
- ld [wd862], a
- call ClearOAMBuffer
- call Func_285db
- call Func_28931
- call Func_289c8
- call Func_28a15
- call Func_28972
- call Func_28a8a
- call Func_28ad1
- call Func_28add
- call CountNumSeenOwnedMons
- call Func_b66
- ld a, $f
- call SetSongBank
- ld de, $0004
- call PlaySong
- call Func_588
- call Func_bbe
- ld hl, wScreenState
- inc [hl]
- ret
-
-PointerTable_280a2: ; 0x280a2
- dw Data_280a6
- dw Data_280c4
-
-Data_280a6: ; 0x280a6
- dab PokedexInitialGfx
- dw vTilesOB
- dw $6000
- dab PokedexTilemap2
- dw $9800
- dw $1000
- dab PokedexTilemap
- dw vBGWin
- dw $800
- dab PokedexTilemap
- dw $9e00
- dw $800
- dw $FFFF ; terminators
-
-Data_280c4: ; 0x280c4
- dab PokedexInitialGfx
- dw vTilesOB
- dw $6000
- dab PokedexTilemap2
- dw $9800
- dw $1000
- dab PokedexBGAttributes2
- dw $9800
- dw $1002
- dab PokedexTilemap
- dw vBGWin
- dw $800
- dab PokedexTilemap
- dw $9e00
- dw $800
- dab PokedexBGAttributes
- dw vBGWin
- dw $802
- dab PokedexBGAttributes
- dw $9e00
- dw $802
- dab PokedexPalettes
- dw $0000
- dw $101
- dw $FFFF ; terminators
-
-MainPokedexScreen: ; 0x280fe
- call Func_28513
- ld a, [hNewlyPressedButtons]
- bit BIT_A_BUTTON, a
- jr z, .asm_28142
- ld a, [wd95f]
- and a
- jp nz, .asm_28174
- ld a, [wCurPokedexIndex]
- ld c, a
- ld b, $0
- ld hl, wPokedexFlags
- add hl, bc
- ld a, [hl]
- and a
- jp z, .asm_28174
- push hl
- ld a, [wCurPokedexIndex]
- inc a
- ld e, a
- ld d, $0
- call PlayCry
- pop hl
- bit 1, [hl]
- jp z, .asm_28174
- call Func_288c6
- call Func_2885c
- call CleanOAMBuffer
- call Func_2887c
- call Func_2885c
- ld hl, wScreenState
- inc [hl]
- ret
-
-.asm_28142
- bit BIT_B_BUTTON, a
- jr z, .asm_2814f
- call Func_285db
- ld a, $4
- ld [wScreenState], a
- ret
-
-.asm_2814f
- ld a, [hGameBoyColorFlag]
- and a
- jr z, .asm_28174
- ld a, [hJoypadState]
- bit BIT_START, a
- jr z, .asm_28168
- ld a, [wd960]
- and a
- ld a, $ff
- ld [wd960], a
- call z, Func_28add
- jr .asm_28174
-
-.asm_28168
- ld a, [wd960]
- and a
- ld a, $0
- ld [wd960], a
- call nz, Func_28add
-.asm_28174
- call Func_285db
- ret
-
-MonInfoPokedexScreen: ; 0x28178
- ld a, [wd956]
- bit 0, a
- jr z, .asm_28190
- ld a, [hNewlyPressedButtons]
- bit BIT_A_BUTTON, a
- jr z, .asm_2818a
- call Func_28912
- jr .asm_281a2
-
-.asm_2818a
- bit 1, a
- jr z, .asm_281a2
- jr .asm_28196
-
-.asm_28190
- ld a, [hNewlyPressedButtons]
- and $3
- jr z, .asm_281a2
-.asm_28196
- call Func_288a2
- call Func_285db
- ld a, $1
- ld [wScreenState], a
- ret
-
-.asm_281a2
- ld a, [hGameBoyColorFlag]
- and a
- jr z, .asm_281c7
- ld a, [hJoypadState]
- bit BIT_START, a
- jr z, .asm_281bb
- ld a, [wd960]
- and a
- ld a, $ff
- ld [wd960], a
- call z, Func_28add
- jr .asm_281c7
-
-.asm_281bb
- ld a, [wd960]
- and a
- ld a, $0
- ld [wd960], a
- call nz, Func_28add
-.asm_281c7
- call Func_2885c
- ret
-
-Func_281cb:
- ld a, [wCurPokedexIndex]
- ld c, a
- ld b, $0
- sla c
- rl b
- add c
- ld c, a
- jr nc, .asm_281da
- inc b
-.asm_281da
- ld a, [wd960]
- and a
- jr nz, .asm_281fb
- 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 [$ff8c], a
- jr .asm_28214
-
-.asm_281fb
- 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
- ld [$ff8c], a
-.asm_28214
- ld h, d
- ld l, e
- ld de, wda8a
- ld b, $8
-.asm_2821b
- push bc
- ld a, [$ff8c]
- call ReadByteFromBank
- inc hl
- ld c, a
- ld a, [$ff8c]
- call ReadByteFromBank
- inc hl
- ld b, a
- ld a, c
- and $1f
- ld [de], a
- inc de
- srl b
- rr c
- srl b
- rr c
- srl b
- rr c
- srl b
- rr c
- srl b
- rr c
- ld a, c
- and $1f
- ld [de], a
- inc de
- srl b
- rr c
- srl b
- rr c
- srl b
- rr c
- srl b
- rr c
- srl b
- rr c
- ld a, c
- and $1f
- ld [de], a
- inc de
- pop bc
- dec b
- jr nz, .asm_2821b
- ld hl, VRAMAddresses_28289
- ld de, wda8a
- ld b, $18
-.asm_2826d
- push hl
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld a, [de]
- inc de
- push af
- swap a
- and $f
- call PutTileInVRAM
- inc hl
- pop af
- and $f
- call PutTileInVRAM
- pop hl
- inc hl
- inc hl
- dec b
- jr nz, .asm_2826d
- ret
-
-VRAMAddresses_28289:
- dw vBGWin + $26
- dw vBGWin + $2B
- dw vBGWin + $30
- dw vBGWin + $46
- dw vBGWin + $4B
- dw vBGWin + $50
- dw vBGWin + $66
- dw vBGWin + $6B
- dw vBGWin + $70
- dw vBGWin + $86
- dw vBGWin + $8B
- dw vBGWin + $90
- dw vBGWin + $C6
- dw vBGWin + $CB
- dw vBGWin + $D0
- dw vBGWin + $E6
- dw vBGWin + $EB
- dw vBGWin + $F0
- dw vBGWin + $106
- dw vBGWin + $10B
- dw vBGWin + $110
- dw vBGWin + $126
- dw vBGWin + $12B
- dw vBGWin + $130
-
-OAMOffsetsTable_282b9:
-; y, x coordinates
- db $40, $18
- db $40, $40
- db $40, $68
- db $48, $18
- db $48, $40
- db $48, $68
- db $50, $18
- db $50, $40
- db $50, $68
- db $58, $18
- db $58, $40
- db $58, $68
- db $68, $18
- db $68, $40
- db $68, $68
- db $70, $18
- db $70, $40
- db $70, $68
- db $78, $18
- db $78, $40
- db $78, $68
- db $80, $18
- db $80, $40
- db $80, $68
-
-Func_282e9: ; 0x282e9
- ld a, [wd960]
- and a
- jr z, .asm_28318
- ld a, [wCurPokedexIndex]
- ld c, a
- ld b, $0
- ld hl, MonAnimatedSpriteTypes
- add hl, bc
- ld a, Bank(MonAnimatedSpriteTypes)
- call ReadByteFromBank
- ld c, a
- ld a, [hNumFramesDropped]
- swap a
- and $7
- cp $7
- jr z, .asm_2830d
- and $1
- jr .asm_2830f
-
-.asm_2830d
- ld a, $2
-.asm_2830f
- add c
- add $a5
- ld bc, $2030
- call LoadOAMData
-.asm_28318
- ld a, [wdaa2]
- sla a
- ld c, a
- ld b, $0
- ld hl, OAMOffsetsTable_282b9
- add hl, bc
- ld a, [hli]
- ld c, a
- ld a, [hli]
- ld b, a
- ld a, $63
- call LoadOAMData
- call Func_28368
- ld a, [hNewlyPressedButtons]
- and $6
- jr z, .asm_28367
- ld a, BANK(PokedexTilemap)
- ld hl, PokedexTilemap
- ld de, vBGWin
- ld bc, $0200
- call LoadVRAMData
- ld a, $1
- ld [rVBK], a
- ld a, BANK(PokedexBGAttributes)
- ld hl, PokedexBGAttributes
- ld de, vBGWin
- ld bc, $0200
- call LoadVRAMData
- xor a
- ld [rVBK], a
- call Func_28972
- call Func_28a8a
- call Func_28ad1
- ld a, $1
- ld [wScreenState], a
-.asm_28367
- ret
-
-Func_28368: ; 0x28368
- ld a, [hJoypadState]
- bit BIT_A_BUTTON, a
- jr nz, .asm_28371
- jp Func_284bc
-
-.asm_28371
- ld a, [hPressedButtons]
- ld b, a
- ld a, [wdaa2]
- ld e, a
- ld d, $0
- ld hl, wda8a
- add hl, de
- ld a, [hl]
- bit 5, b
- jr z, .asm_28386
- dec a
- jr .asm_2838a
-
-.asm_28386
- bit 4, b
- ret z
- inc a
-.asm_2838a
- and $1f
- ld [hl], a
- push af
- sla e
- rl d
- ld hl, VRAMAddresses_28289
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- pop af
- push af
- swap a
- and $f
- call PutTileInVRAM
- inc hl
- pop af
- and $f
- call PutTileInVRAM
- ld hl, Data_2842c
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld a, [hld]
- ld c, a
- ld b, $0
- sla c
- rl b
- sla c
- rl b
- sla c
- rl b
- sla c
- rl b
- sla c
- rl b
- ld a, [hld]
- or c
- ld c, a
- sla c
- rl b
- sla c
- rl b
- sla c
- rl b
- sla c
- rl b
- sla c
- rl b
- ld a, [hl]
- or c
- ld c, a
- ld a, [wd960]
- and a
- jr nz, .asm_283ff
- ld hl, BGPaletteIndices_2845c
- add hl, de
- ld a, [hl]
- ld hl, rBGPI
- call PutTileInVRAM
- ld hl, rBGPD
- ld a, c
- call PutTileInVRAM
- ld a, b
- call PutTileInVRAM
- ret
-
-.asm_283ff
- ld hl, BGPaletteIndices_2845c
- add hl, de
- ld a, [hl]
- ld hl, rBGPI
- call PutTileInVRAM
- ld hl, rBGPD
- ld a, c
- call PutTileInVRAM
- ld a, b
- call PutTileInVRAM
- ld hl, SpritePaletteIndices_2848c
- add hl, de
- ld a, [hl]
- ld hl, rOBPI
- call PutTileInVRAM
- ld hl, rOBPD
- ld a, c
- call PutTileInVRAM
- ld a, b
- call PutTileInVRAM
- ret
-
-Data_2842c:
- dw wda8c
- dw wda8c
- dw wda8c
- dw wda8f
- dw wda8f
- dw wda8f
- dw wda92
- dw wda92
- dw wda92
- dw wda95
- dw wda95
- dw wda95
- dw wda98
- dw wda98
- dw wda98
- dw wda9b
- dw wda9b
- dw wda9b
- dw wda9e
- dw wda9e
- dw wda9e
- dw wdaa1
- dw wdaa1
- dw wdaa1
-
-BGPaletteIndices_2845c:
-; second byte is unused
- db $30 | $80, $00
- db $30 | $80, $00
- db $30 | $80, $00
- db $32 | $80, $00
- db $32 | $80, $00
- db $32 | $80, $00
- db $34 | $80, $00
- db $34 | $80, $00
- db $34 | $80, $00
- db $36 | $80, $00
- db $36 | $80, $00
- db $36 | $80, $00
- db $38 | $80, $00
- db $38 | $80, $00
- db $38 | $80, $00
- db $3A | $80, $00
- db $3A | $80, $00
- db $3A | $80, $00
- db $3C | $80, $00
- db $3C | $80, $00
- db $3C | $80, $00
- db $3E | $80, $00
- db $3E | $80, $00
- db $3E | $80, $00
-
-SpritePaletteIndices_2848c:
- db $D8, $00
- db $D8, $00
- db $D8, $00
- db $DA, $00
- db $DA, $00
- db $DA, $00
- db $DC, $00
- db $DC, $00
- db $DC, $00
- db $DE, $00
- db $DE, $00
- db $DE, $00
- db $E8, $00
- db $E8, $00
- db $E8, $00
- db $EA, $00
- db $EA, $00
- db $EA, $00
- db $EC, $00
- db $EC, $00
- db $EC, $00
- db $EE, $00
- db $EE, $00
- db $EE, $00
-
-Func_284bc: ; 0x284bc
- ld a, [hPressedButtons]
- ld b, a
- ld a, [wdaa2]
- bit 5, b
- jr z, .asm_284cd
- dec a
- bit 7, a
- jr nz, .asm_284ef
- jr .asm_284f5
-
-.asm_284cd
- bit 4, b
- jr z, .asm_284d8
- inc a
- cp $18
- jr nc, .asm_284f3
- jr .asm_284f5
-
-.asm_284d8
- bit 6, b
- jr z, .asm_284e4
- sub $3
- bit 7, a
- jr nz, .asm_284ef
- jr .asm_284f5
-
-.asm_284e4
- bit 7, b
- ret z
- add $3
- cp $18
- jr nc, .asm_284f3
- jr .asm_284f5
-
-.asm_284ef
- add $18
- jr .asm_284f5
-
-.asm_284f3
- sub $18
-.asm_284f5
- ld [wdaa2], a
- ret
-
-ExitPokedexScreen: ; 0x284f9
- call Func_cb5
- call Func_576
- ld hl, hSTAT
- res 6, [hl]
- ld hl, rIE
- res 1, [hl]
- ld a, SCREEN_TITLESCREEN
- ld [wCurrentScreen], a
- xor a
- ld [wScreenState], a
- ret
-
-Func_28513: ; 0x28513
- ld a, [hPressedButtons]
- ld hl, wd95e
- or [hl]
- ld [hl], a
- ld a, [wd95c]
- and a
- ret nz
- ld a, [wd95e]
- ld b, a
- ld a, [wd9f8]
- and a
- ld a, NUM_POKEMON - 1
- jr z, .asm_2852d
- ld a, NUM_POKEMON
-.asm_2852d
- ld d, a
- ld a, [wCurPokedexIndex]
- bit 6, b
- jr z, .asm_28548
- and a
- jr z, .asm_285a9
- dec a
- ld [wCurPokedexIndex], a
- ld a, $4
- ld [wd95c], a
- ld a, $1
- ld [wd95f], a
- jr .asm_285a9
-
-.asm_28548
- bit 7, b
- jr z, .asm_2855f
- inc a
- cp d
- jr z, .asm_285a9
- ld [wCurPokedexIndex], a
- ld a, $4
- ld [wd95c], a
- ld a, $1
- ld [wd95f], a
- jr .asm_285a9
-
-.asm_2855f
- ld a, d
- sub $9
- ld d, a
- ld a, [wPokedexOffset]
- ld c, $5
- bit 5, b
- jr z, .asm_28586
- cp $5
- jr nc, .asm_28571
- ld c, a
-.asm_28571
- sub c
- ld [wPokedexOffset], a
- ld a, [wCurPokedexIndex]
- sub c
- ld [wCurPokedexIndex], a
- ld a, $1
- ld [wd95f], a
- call Func_285ca
- jr .asm_285aa
-
-.asm_28586
- bit 4, b
- jr z, .asm_285ae
- cp d
- jr c, .asm_28594
- push af
- cpl
- add d
- add $5
- ld c, a
- pop af
-.asm_28594
- add c
- ld [wPokedexOffset], a
- ld a, [wCurPokedexIndex]
- add c
- ld [wCurPokedexIndex], a
- ld a, $1
- ld [wd95f], a
- call Func_285ca
- jr .asm_285aa
-
-.asm_285a9
- xor a
-.asm_285aa
- ld [wd95e], a
- ret
-
-.asm_285ae
- ld a, [wd95f]
- and a
- ret z
- lb de, $00, $03
- call PlaySoundEffect
- call Func_28931
- call Func_289c8
- call Func_28a15
- call Func_28add
- xor a
- ld [wd95f], a
- ret
-
-Func_285ca: ; 0x285ca
- xor a
- ld [wd80a], a
- call Func_28972
- call Func_28a8a
- call Func_28ad1
- ld a, [wd80a]
- ret
-
-Func_285db: ; 0x285db
- ld a, [wCurPokedexIndex]
- ld c, a
- ld b, $0
- ld hl, wPokedexFlags
- add hl, bc
- bit 1, [hl] ; has pokemon been seen or captured?
- call nz, Func_287e7
- ld bc, $8c38
- ld a, $64
- call LoadOAMData
- ld bc, vTilesSH tile $04
- ld a, $65
- call LoadOAMData
- ld bc, $8888
- ld a, $66
- call LoadOAMData
- call DrawCornerInfoPokedexScreen
- ld a, [wCurPokedexIndex]
- ld c, a
- ld b, $0
- ld hl, DexScrollBarOffsets
- add hl, bc
- ld a, [hl]
- add $49
- ld c, a
- ld b, $90
- ld a, [wd95b]
- srl a
- srl a
- and $3
- ld e, a
- ld d, $0
- ld hl, DexScrollBarOAMIds
- add hl, de
- ld a, [hl]
- call LoadOAMData
- ld a, [wCurPokedexIndex]
- ld hl, wPokedexOffset
- sub [hl]
- jr nc, .asm_2863b
- dec [hl]
- ld a, $1
- ld [wd95d], a
- xor a
- jr .asm_28647
-
-.asm_2863b
- cp $5
- jr c, .asm_28647
- ld a, $1
- ld [wd95d], a
- inc [hl]
- ld a, $4
-.asm_28647
- ld c, a
- push bc
- ld a, [hJoypadState]
- and a
- ld a, [wd95b]
- jr z, .asm_28652
- xor a
-.asm_28652
- inc a
- ld [wd95b], a
- bit 3, a
- jr nz, .asm_28667
- swap c
- ld a, c
- add $40
- ld c, a
- ld b, $10
- ld a, $63
- call LoadOAMData
-.asm_28667
- pop bc
- ld a, [wd95c]
- and a
- ret z
- dec a
- ld [wd95c], a
- sla a
- ld e, a
- ld d, $0
- push hl
- ld hl, PointerTable_2867f
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-
-PointerTable_2867f: ; 0x2867f
- dw Func_286dd
- dw Func_28721
- dw Func_286dd
- dw Func_28765
-
-DexScrollBarOAMIds:
- db $67, $68, $69, $68
-
-DrawCornerInfoPokedexScreen: ; 0x2868b
-; If player is holding SELECT button, it draws the seen/own count in the top-right corner.
-; Otherwise, it draws the word "POKeDEX".
- ld a, [hJoypadState]
- bit BIT_SELECT, a
- jr z, .asm_286c8
- ld bc, $6d03
- ld a, [wNumPokemonSeen + 1]
- call LoadSeenOwnDigitOAM
- ld a, [wNumPokemonSeen]
- swap a
- call LoadSeenOwnDigitOAM
- ld a, [wNumPokemonSeen]
- call LoadSeenOwnDigitOAM
- ld bc, $8202
- ld a, $76
- call LoadOAMData ; draws the "/" between the seen/owned numbers
- ld bc, $8703
- ld a, [wNumPokemonOwned + 1]
- call LoadSeenOwnDigitOAM
- ld a, [wNumPokemonOwned]
- swap a
- call LoadSeenOwnDigitOAM
- ld a, [wNumPokemonOwned]
- call LoadSeenOwnDigitOAM
- ret
-
-.asm_286c8
- ld bc, $6800
- ld a, $6a
- call LoadOAMData
- ret
-
-LoadSeenOwnDigitOAM: ; 0x286d1
- and $f
- add $6c
- call LoadOAMData
- ld a, b
- add $7 ; adds 7 pixels to the next digit's x position on screen
- ld b, a
- ret
-
-Func_286dd: ; 0x286dd
- pop hl
- ld a, [wd862]
- and a
- jr nz, .asm_286ff
- push bc
- push hl
- ld a, [wd863]
- ld e, a
- ld a, [wd864]
- ld d, a
- ld hl, wc010
- xor a
- ld bc, $00a0
- call LoadOrCopyVRAMData
- ld a, $1
- ld [wd862], a
- pop hl
- pop bc
-.asm_286ff
- ld a, [wd95d]
- and a
- ret z
- ld a, [wd95c]
- and a
- jr nz, .asm_2870d
- ld [wd95d], a
-.asm_2870d
- ld a, c
- and a
- jr nz, .asm_28719
- ld hl, hNextFrameHBlankSCX
- dec [hl]
- dec [hl]
- dec [hl]
- dec [hl]
- ret
-
-.asm_28719
- ld hl, hNextFrameHBlankSCX
- inc [hl]
- inc [hl]
- inc [hl]
- inc [hl]
- ret
-
-Func_28721: ; 0x28721
- pop hl
- ld a, [wd95d]
- and a
- ret z
- ld a, c
- and a
- jr nz, .asm_28747
- ld a, [hl]
- push af
- sla a
- and $1e
- ld c, a
- ld b, $0
- ld hl, BGMapLocations_287c7
- add hl, bc
- ld a, [hli]
- ld h, [hl]
- ld l, a
- pop af
- call Func_28aaa
- ld hl, hNextFrameHBlankSCX
- dec [hl]
- dec [hl]
- dec [hl]
- dec [hl]
- ret
-
-.asm_28747
- ld a, [hl]
- add $5
- push af
- sla a
- and $1e
- ld c, a
- ld b, $0
- ld hl, BGMapLocations_287c7
- add hl, bc
- ld a, [hli]
- ld h, [hl]
- ld l, a
- pop af
- call Func_28aaa
- ld hl, hNextFrameHBlankSCX
- inc [hl]
- inc [hl]
- inc [hl]
- inc [hl]
- ret
-
-Func_28765: ; 0x28765
- pop hl
- ld a, [wd95d]
- and a
- ret z
- ld a, c
- and a
- jr nz, .asm_28791
- push hl
- ld a, [hl]
- sla a
- and $e
- ld c, a
- ld b, $0
- ld hl, TileLocations_287b7
- add hl, bc
- ld a, [hli]
- ld e, a
- ld a, [hli]
- ld d, a
- ld hl, hNextFrameHBlankSCX
- dec [hl]
- dec [hl]
- dec [hl]
- dec [hl]
- pop hl
- xor a
- ld [wd862], a
- ld a, [hl]
- call Func_28993
- ret
-
-.asm_28791
- push hl
- ld a, [hl]
- add $5
- sla a
- and $e
- ld c, a
- ld b, $0
- ld hl, TileLocations_287b7
- add hl, bc
- ld a, [hli]
- ld e, a
- ld a, [hli]
- ld d, a
- ld hl, hNextFrameHBlankSCX
- inc [hl]
- inc [hl]
- inc [hl]
- inc [hl]
- pop hl
- xor a
- ld [wd862], a
- ld a, [hl]
- add $5
- call Func_28993
- ret
-
-TileLocations_287b7:
- dw vTilesOB tile $0
- dw vTilesOB tile $A
- dw vTilesOB tile $14
- dw vTilesOB tile $1E
- dw vTilesOB tile $28
- dw vTilesOB tile $32
- dw vTilesOB tile $3C
- dw vTilesOB tile $46
-
-BGMapLocations_287c7:
- dw vBGWin + $7
- dw vBGWin + $47
- dw vBGWin + $87
- dw vBGWin + $C7
- dw vBGWin + $107
- dw vBGWin + $147
- dw vBGWin + $187
- dw vBGWin + $1C7
- dw vBGWin + $207
- dw vBGWin + $247
- dw vBGWin + $287
- dw vBGWin + $2C7
- dw vBGWin + $307
- dw vBGWin + $347
- dw vBGWin + $387
- dw vBGWin + $3C7
-
-Func_287e7: ; 0x287e7
- ld a, [wd960]
- and a
- ret z
- ld a, [wd95f]
- and a
- ret nz
- 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 nz
- ld [wd5bc], a
- call Func_28815
- ld a, [wd5bd]
- add $a5
- ld bc, $2030
- call LoadOAMData
- ret
+INCLUDE "engine/pokedex.asm"
Func_28815: ; 0x28815
ld a, [wd5be]