2015-11-16 18:07:26 -08:00
|
|
|
|
PokeGear: ; 90b8d (24:4b8d)
|
|
|
|
|
ld hl, Options
|
|
|
|
|
ld a, [hl]
|
|
|
|
|
push af
|
|
|
|
|
set NO_TEXT_SCROLL, [hl]
|
|
|
|
|
|
|
|
|
|
ld a, [hInMenu]
|
|
|
|
|
push af
|
|
|
|
|
ld a, $1
|
|
|
|
|
ld [hInMenu], a
|
|
|
|
|
|
|
|
|
|
ld a, [VramState]
|
|
|
|
|
push af
|
|
|
|
|
xor a
|
|
|
|
|
ld [VramState], a
|
|
|
|
|
|
|
|
|
|
call Function90bea
|
|
|
|
|
call DelayFrame
|
|
|
|
|
|
|
|
|
|
.loop
|
|
|
|
|
call UpdateTime
|
|
|
|
|
call JoyTextDelay
|
|
|
|
|
ld a, [wJumptableIndex]
|
|
|
|
|
bit 7, a
|
|
|
|
|
jr nz, .done
|
|
|
|
|
call Function90f04
|
2015-11-28 12:13:40 -08:00
|
|
|
|
callba PlaySpriteAnimations
|
2015-11-16 18:07:26 -08:00
|
|
|
|
call DelayFrame
|
|
|
|
|
jr .loop
|
|
|
|
|
|
|
|
|
|
.done
|
|
|
|
|
ld de, SFX_READ_TEXT_2
|
|
|
|
|
call PlaySFX
|
|
|
|
|
call WaitSFX
|
|
|
|
|
pop af
|
|
|
|
|
ld [VramState], a
|
|
|
|
|
pop af
|
|
|
|
|
ld [hInMenu], a
|
|
|
|
|
pop af
|
|
|
|
|
ld [Options], a
|
|
|
|
|
call ClearBGPalettes
|
|
|
|
|
xor a
|
|
|
|
|
ld [hBGMapAddress], a
|
|
|
|
|
ld a, VBGMap0 / $100
|
|
|
|
|
ld [hBGMapAddress + 1], a
|
|
|
|
|
ld a, $90
|
|
|
|
|
ld [hWY], a
|
|
|
|
|
call Function91492
|
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
Function90bea: ; 90bea (24:4bea)
|
|
|
|
|
call ClearBGPalettes
|
|
|
|
|
call ClearTileMap
|
|
|
|
|
call ClearSprites
|
|
|
|
|
call DisableLCD
|
|
|
|
|
xor a
|
|
|
|
|
ld [hSCY], a
|
|
|
|
|
ld [hSCX], a
|
|
|
|
|
ld a, $7
|
|
|
|
|
ld [hWX], a
|
|
|
|
|
call Function90c4e
|
2015-12-01 18:54:11 -08:00
|
|
|
|
callba ClearSpriteAnims
|
2015-12-09 08:38:40 -08:00
|
|
|
|
call InitPokegearModeIndicatorArrow
|
2015-11-16 18:07:26 -08:00
|
|
|
|
ld a, 8
|
|
|
|
|
call SkipMusic
|
|
|
|
|
ld a, $e3
|
|
|
|
|
ld [rLCDC], a
|
|
|
|
|
call Function90d70
|
|
|
|
|
xor a
|
|
|
|
|
ld [wJumptableIndex], a
|
|
|
|
|
ld [wcf64], a
|
|
|
|
|
ld [wcf65], a
|
|
|
|
|
ld [wcf66], a
|
|
|
|
|
ld [wc6d2], a
|
|
|
|
|
ld [wc6d1], a
|
|
|
|
|
ld [wc6d3], a
|
|
|
|
|
ld [wc6d9], a
|
|
|
|
|
ld [wc6da], a
|
|
|
|
|
ld [wc6db], a
|
|
|
|
|
call Function90d9e
|
|
|
|
|
call Function90da8
|
|
|
|
|
ld b, SCGB_02
|
|
|
|
|
call GetSGBLayout
|
|
|
|
|
call SetPalettes
|
|
|
|
|
ld a, [hCGB]
|
|
|
|
|
and a
|
|
|
|
|
ret z
|
2015-12-09 08:38:40 -08:00
|
|
|
|
ld a, %11100100
|
|
|
|
|
call DmgToCgbObjPal0
|
2015-11-16 18:07:26 -08:00
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
Function90c4e: ; 90c4e
|
|
|
|
|
call ClearVBank1
|
|
|
|
|
ld hl, TownMapGFX
|
|
|
|
|
ld de, VTiles2
|
|
|
|
|
ld a, BANK(TownMapGFX)
|
|
|
|
|
call FarDecompress
|
|
|
|
|
|
|
|
|
|
ld hl, PokegearGFX
|
|
|
|
|
ld de, VTiles2 + $30 tiles
|
|
|
|
|
ld a, BANK(PokegearGFX)
|
|
|
|
|
call FarDecompress
|
|
|
|
|
|
|
|
|
|
ld hl, PokegearSpritesGFX
|
|
|
|
|
ld de, VTiles0
|
|
|
|
|
ld a, BANK(PokegearSpritesGFX)
|
|
|
|
|
call Decompress
|
|
|
|
|
|
|
|
|
|
ld a, [MapGroup]
|
|
|
|
|
ld b, a
|
|
|
|
|
ld a, [MapNumber]
|
|
|
|
|
ld c, a
|
|
|
|
|
call GetWorldMapLocation
|
|
|
|
|
cp FAST_SHIP
|
|
|
|
|
jr z, .ssaqua
|
|
|
|
|
|
|
|
|
|
callba GetPlayerIcon
|
|
|
|
|
|
|
|
|
|
push de
|
|
|
|
|
ld h, d
|
|
|
|
|
ld l, e
|
|
|
|
|
ld a, b
|
|
|
|
|
|
2015-12-09 08:38:40 -08:00
|
|
|
|
; standing sprite
|
2015-11-16 18:07:26 -08:00
|
|
|
|
push af
|
|
|
|
|
ld de, VTiles0 tile $10
|
|
|
|
|
ld bc, 4 tiles
|
|
|
|
|
call FarCopyBytes
|
|
|
|
|
pop af
|
|
|
|
|
|
|
|
|
|
pop hl
|
|
|
|
|
|
2015-12-09 08:38:40 -08:00
|
|
|
|
; walking sprite
|
|
|
|
|
ld de, 12 tiles
|
2015-11-16 18:07:26 -08:00
|
|
|
|
add hl, de
|
|
|
|
|
ld de, VTiles0 tile $14
|
|
|
|
|
ld bc, 4 tiles
|
|
|
|
|
call FarCopyBytes
|
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
.ssaqua
|
|
|
|
|
ld hl, FastShipGFX
|
|
|
|
|
ld de, VTiles0 tile $10
|
|
|
|
|
ld bc, 8 tiles
|
|
|
|
|
call CopyBytes
|
|
|
|
|
ret
|
|
|
|
|
; 90cb2
|
|
|
|
|
|
|
|
|
|
FastShipGFX: ; 90cb2
|
|
|
|
|
INCBIN "gfx/misc/fast_ship.2bpp"
|
|
|
|
|
; 90d32
|
|
|
|
|
|
2015-12-09 08:38:40 -08:00
|
|
|
|
InitPokegearModeIndicatorArrow: ; 90d32 (24:4d32)
|
2015-11-18 10:01:55 -08:00
|
|
|
|
depixel 4, 2, 4, 0
|
2015-11-16 18:07:26 -08:00
|
|
|
|
ld a, SPRITE_ANIM_INDEX_0D
|
|
|
|
|
call _InitSpriteAnimStruct
|
2015-12-09 08:38:40 -08:00
|
|
|
|
ld hl, SPRITEANIMSTRUCT_TILE_ID
|
2015-11-16 18:07:26 -08:00
|
|
|
|
add hl, bc
|
|
|
|
|
ld [hl], $0
|
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
Function90d41: ; 90d41 (24:4d41)
|
|
|
|
|
ld hl, wcf64
|
|
|
|
|
ld e, [hl]
|
|
|
|
|
ld d, 0
|
|
|
|
|
ld hl, Unknown_90d52
|
|
|
|
|
add hl, de
|
|
|
|
|
ld a, [hl]
|
|
|
|
|
ld hl, $6
|
|
|
|
|
add hl, bc
|
|
|
|
|
ld [hl], a
|
|
|
|
|
ret
|
|
|
|
|
; 90d52 (24:4d52)
|
|
|
|
|
|
|
|
|
|
Unknown_90d52: ; 90d52
|
|
|
|
|
db $00, $10, $20, $30
|
|
|
|
|
; 90d56
|
|
|
|
|
|
|
|
|
|
Function90d56: ; 90d56
|
|
|
|
|
ld a, [MapGroup]
|
|
|
|
|
ld b, a
|
|
|
|
|
ld a, [MapNumber]
|
|
|
|
|
ld c, a
|
|
|
|
|
call GetWorldMapLocation
|
|
|
|
|
cp SPECIAL_MAP
|
|
|
|
|
ret nz
|
|
|
|
|
ld a, [BackupMapGroup]
|
|
|
|
|
ld b, a
|
|
|
|
|
ld a, [BackupMapNumber]
|
|
|
|
|
ld c, a
|
|
|
|
|
call GetWorldMapLocation
|
|
|
|
|
ret
|
|
|
|
|
; 90d70
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Function90d70: ; 90d70 (24:4d70)
|
|
|
|
|
ld a, [MapGroup]
|
|
|
|
|
ld b, a
|
|
|
|
|
ld a, [MapNumber]
|
|
|
|
|
ld c, a
|
|
|
|
|
call GetWorldMapLocation
|
|
|
|
|
|
|
|
|
|
cp FAST_SHIP
|
2015-12-09 08:38:40 -08:00
|
|
|
|
jr z, .FastShip
|
2015-11-16 18:07:26 -08:00
|
|
|
|
|
|
|
|
|
cp SPECIAL_MAP
|
2015-12-09 08:38:40 -08:00
|
|
|
|
jr nz, .LoadLandmark
|
2015-11-16 18:07:26 -08:00
|
|
|
|
|
|
|
|
|
ld a, [BackupMapGroup]
|
|
|
|
|
ld b, a
|
|
|
|
|
ld a, [BackupMapNumber]
|
|
|
|
|
ld c, a
|
|
|
|
|
call GetWorldMapLocation
|
|
|
|
|
|
2015-12-09 08:38:40 -08:00
|
|
|
|
.LoadLandmark
|
2015-11-16 18:07:26 -08:00
|
|
|
|
ld [wc6d8], a
|
|
|
|
|
ld [wc6d7], a
|
|
|
|
|
ret
|
|
|
|
|
|
2015-12-09 08:38:40 -08:00
|
|
|
|
.FastShip
|
2015-11-16 18:07:26 -08:00
|
|
|
|
ld [wc6d8], a
|
|
|
|
|
ld a, NEW_BARK_TOWN
|
|
|
|
|
ld [wc6d7], a
|
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
Function90d9e: ; 90d9e (24:4d9e)
|
|
|
|
|
ld a, $0
|
|
|
|
|
ld [wJumptableIndex], a
|
|
|
|
|
xor a
|
|
|
|
|
ld [wcf64], a
|
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
Function90da8: ; 90da8 (24:4da8)
|
|
|
|
|
xor a
|
|
|
|
|
ld [hBGMapMode], a
|
|
|
|
|
hlcoord 0, 0
|
|
|
|
|
ld bc, TileMapEnd - TileMap
|
|
|
|
|
ld a, $4f
|
|
|
|
|
call ByteFill
|
|
|
|
|
ld a, [wcf64]
|
|
|
|
|
and $3
|
|
|
|
|
add a
|
|
|
|
|
ld e, a
|
|
|
|
|
ld d, 0
|
|
|
|
|
ld hl, Jumptable_90e12
|
|
|
|
|
add hl, de
|
|
|
|
|
ld a, [hli]
|
|
|
|
|
ld h, [hl]
|
|
|
|
|
ld l, a
|
|
|
|
|
ld de, .asm_90dcb
|
|
|
|
|
push de
|
|
|
|
|
jp [hl]
|
|
|
|
|
|
|
|
|
|
.asm_90dcb
|
|
|
|
|
call Function90eb0
|
|
|
|
|
callba TownMapPals
|
|
|
|
|
ld a, [wcf65]
|
|
|
|
|
and a
|
|
|
|
|
jr nz, .asm_90de8
|
|
|
|
|
|
|
|
|
|
xor a
|
|
|
|
|
ld [hBGMapAddress], a
|
|
|
|
|
ld a, VBGMap0 / $100
|
|
|
|
|
ld [hBGMapAddress + 1], a
|
|
|
|
|
call Function90e00
|
|
|
|
|
ld a, $90
|
|
|
|
|
jr .asm_90df3
|
|
|
|
|
|
|
|
|
|
.asm_90de8
|
|
|
|
|
xor a
|
|
|
|
|
ld [hBGMapAddress], a
|
|
|
|
|
ld a, VBGMap1 / $100
|
|
|
|
|
ld [hBGMapAddress + 1], a
|
|
|
|
|
call Function90e00
|
|
|
|
|
xor a
|
|
|
|
|
|
|
|
|
|
.asm_90df3
|
|
|
|
|
ld [hWY], a
|
|
|
|
|
ld a, [wcf65]
|
|
|
|
|
and 1
|
|
|
|
|
xor 1
|
|
|
|
|
ld [wcf65], a
|
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
Function90e00: ; 90e00 (24:4e00)
|
|
|
|
|
ld a, [hCGB]
|
|
|
|
|
and a
|
|
|
|
|
jr z, .asm_90e0e
|
|
|
|
|
ld a, $2
|
|
|
|
|
ld [hBGMapMode], a
|
|
|
|
|
ld c, 3
|
|
|
|
|
call DelayFrames
|
|
|
|
|
.asm_90e0e
|
|
|
|
|
call WaitBGMap
|
|
|
|
|
ret
|
|
|
|
|
; 90e12 (24:4e12)
|
|
|
|
|
|
|
|
|
|
Jumptable_90e12: ; 90e12
|
|
|
|
|
dw Function90e1a
|
|
|
|
|
dw Function90e3f
|
|
|
|
|
dw Function90e82
|
|
|
|
|
dw Function90e72
|
|
|
|
|
; 90e1a
|
|
|
|
|
|
|
|
|
|
Function90e1a: ; 90e1a
|
|
|
|
|
ld de, ClockTilemapRLE
|
|
|
|
|
call Function914bb
|
|
|
|
|
hlcoord 12, 1
|
|
|
|
|
ld de, .switch
|
|
|
|
|
call PlaceString
|
|
|
|
|
hlcoord 0, 12
|
|
|
|
|
lb bc, 4, 18
|
|
|
|
|
call TextBox
|
|
|
|
|
call Function90f86
|
|
|
|
|
ret
|
|
|
|
|
; 90e36 (24:4e36)
|
|
|
|
|
|
|
|
|
|
.switch
|
|
|
|
|
db " SWITCH▶@"
|
|
|
|
|
; 90e3f
|
|
|
|
|
|
|
|
|
|
Function90e3f: ; 90e3f
|
|
|
|
|
|
|
|
|
|
ld a, [wc6d8]
|
|
|
|
|
cp FAST_SHIP
|
|
|
|
|
jr z, .johto
|
|
|
|
|
cp KANTO_LANDMARK
|
|
|
|
|
jr nc, .kanto
|
|
|
|
|
.johto
|
|
|
|
|
ld e, 0
|
|
|
|
|
jr .ok
|
|
|
|
|
.kanto
|
|
|
|
|
ld e, 1
|
|
|
|
|
.ok
|
2015-11-18 15:35:44 -08:00
|
|
|
|
callba PokegearMap
|
2015-11-16 18:07:26 -08:00
|
|
|
|
ld a, $7
|
|
|
|
|
ld bc, $12
|
|
|
|
|
hlcoord 1, 2
|
|
|
|
|
call ByteFill
|
|
|
|
|
hlcoord 0, 2
|
|
|
|
|
ld [hl], $6
|
|
|
|
|
hlcoord 19, 2
|
|
|
|
|
ld [hl], $17
|
|
|
|
|
ld a, [wc6d7]
|
|
|
|
|
call Function910b4
|
|
|
|
|
ret
|
|
|
|
|
; 90e72
|
|
|
|
|
|
|
|
|
|
Function90e72: ; 90e72
|
|
|
|
|
ld de, RadioTilemapRLE
|
|
|
|
|
call Function914bb
|
|
|
|
|
hlcoord 0, 12
|
|
|
|
|
lb bc, 4, 18
|
|
|
|
|
call TextBox
|
|
|
|
|
ret
|
|
|
|
|
; 90e82
|
|
|
|
|
|
|
|
|
|
Function90e82: ; 90e82
|
|
|
|
|
ld de, PhoneTilemapRLE
|
|
|
|
|
call Function914bb
|
|
|
|
|
hlcoord 0, 12
|
|
|
|
|
lb bc, 4, 18
|
|
|
|
|
call TextBox
|
|
|
|
|
call Function90e98
|
|
|
|
|
call Function912d8
|
|
|
|
|
ret
|
|
|
|
|
; 90e98
|
|
|
|
|
|
|
|
|
|
Function90e98: ; 90e98 (24:4e98)
|
|
|
|
|
hlcoord 17, 1
|
|
|
|
|
ld a, $3c
|
|
|
|
|
ld [hli], a
|
|
|
|
|
inc a
|
|
|
|
|
ld [hl], a
|
|
|
|
|
hlcoord 17, 2
|
|
|
|
|
inc a
|
|
|
|
|
ld [hli], a
|
|
|
|
|
call GetMapHeaderPhoneServiceNybble
|
|
|
|
|
and a
|
|
|
|
|
ret nz
|
|
|
|
|
hlcoord 18, 2
|
|
|
|
|
ld [hl], $3f
|
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
Function90eb0: ; 90eb0 (24:4eb0)
|
|
|
|
|
hlcoord 0, 0
|
|
|
|
|
ld bc, $8
|
|
|
|
|
ld a, $4f
|
|
|
|
|
call ByteFill
|
|
|
|
|
hlcoord 0, 1
|
|
|
|
|
ld bc, $8
|
|
|
|
|
ld a, $4f
|
|
|
|
|
call ByteFill
|
|
|
|
|
ld de, wPokegearFlags
|
|
|
|
|
ld a, [de]
|
|
|
|
|
bit 0, a
|
|
|
|
|
call nz, Function90ee4
|
|
|
|
|
ld a, [de]
|
|
|
|
|
bit 2, a
|
|
|
|
|
call nz, Function90eeb
|
|
|
|
|
ld a, [de]
|
|
|
|
|
bit 1, a
|
|
|
|
|
call nz, Function90ef2
|
|
|
|
|
hlcoord 0, 0
|
|
|
|
|
ld a, $46
|
|
|
|
|
call Function90ef7
|
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
Function90ee4: ; 90ee4 (24:4ee4)
|
|
|
|
|
hlcoord 2, 0
|
|
|
|
|
ld a, $40
|
|
|
|
|
jr Function90ef7
|
|
|
|
|
|
|
|
|
|
Function90eeb: ; 90eeb (24:4eeb)
|
|
|
|
|
hlcoord 4, 0
|
|
|
|
|
ld a, $44
|
|
|
|
|
jr Function90ef7
|
|
|
|
|
|
|
|
|
|
Function90ef2: ; 90ef2 (24:4ef2)
|
|
|
|
|
hlcoord 6, 0
|
|
|
|
|
ld a, $42
|
|
|
|
|
|
|
|
|
|
Function90ef7: ; 90ef7 (24:4ef7)
|
|
|
|
|
ld [hli], a
|
|
|
|
|
inc a
|
|
|
|
|
ld [hld], a
|
|
|
|
|
ld bc, $14
|
|
|
|
|
add hl, bc
|
|
|
|
|
add $f
|
|
|
|
|
ld [hli], a
|
|
|
|
|
inc a
|
|
|
|
|
ld [hld], a
|
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
Function90f04: ; 90f04 (24:4f04)
|
|
|
|
|
ld a, [wJumptableIndex]
|
|
|
|
|
ld e, a
|
|
|
|
|
ld d, 0
|
|
|
|
|
ld hl, Jumptable_90f13
|
|
|
|
|
rept 2
|
|
|
|
|
add hl, de
|
|
|
|
|
endr
|
|
|
|
|
ld a, [hli]
|
|
|
|
|
ld h, [hl]
|
|
|
|
|
ld l, a
|
|
|
|
|
jp [hl]
|
|
|
|
|
|
|
|
|
|
Jumptable_90f13: ; 90f13 (24:4f13)
|
|
|
|
|
dw Function90f2d
|
|
|
|
|
dw Function90f3e
|
|
|
|
|
dw Function90fb4
|
|
|
|
|
dw Function90fcd
|
|
|
|
|
dw Function90fee
|
|
|
|
|
dw Function90fcd
|
|
|
|
|
dw Function90fe9
|
|
|
|
|
dw Function91156
|
|
|
|
|
dw Function91171
|
|
|
|
|
dw Function911eb
|
|
|
|
|
dw Function91256
|
|
|
|
|
dw Function910f9
|
|
|
|
|
dw Function91112
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Function90f2d: ; 90f2d (24:4f2d)
|
|
|
|
|
call Function90da8
|
|
|
|
|
ld hl, UnknownText_0x914d3
|
|
|
|
|
call PrintText
|
|
|
|
|
ld hl, wJumptableIndex
|
|
|
|
|
inc [hl]
|
|
|
|
|
call Function91492
|
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
Function90f3e: ; 90f3e (24:4f3e)
|
|
|
|
|
call Function90f7b
|
|
|
|
|
ld hl, hJoyLast
|
|
|
|
|
|
|
|
|
|
ld a, [hl]
|
|
|
|
|
and A_BUTTON + B_BUTTON + START + SELECT
|
|
|
|
|
jr nz, .asm_90f75
|
|
|
|
|
|
|
|
|
|
ld a, [hl]
|
|
|
|
|
and D_RIGHT
|
|
|
|
|
ret z
|
|
|
|
|
|
|
|
|
|
ld a, [wPokegearFlags]
|
|
|
|
|
bit 0, a
|
|
|
|
|
jr z, .asm_90f5a
|
|
|
|
|
ld c, $2
|
|
|
|
|
ld b, $1
|
|
|
|
|
jr .asm_90f71
|
|
|
|
|
.asm_90f5a
|
|
|
|
|
|
|
|
|
|
ld a, [wPokegearFlags]
|
|
|
|
|
bit 2, a
|
|
|
|
|
jr z, .asm_90f67
|
|
|
|
|
ld c, $7
|
|
|
|
|
ld b, $2
|
|
|
|
|
jr .asm_90f71
|
|
|
|
|
.asm_90f67
|
|
|
|
|
|
|
|
|
|
ld a, [wPokegearFlags]
|
|
|
|
|
bit 1, a
|
|
|
|
|
ret z
|
|
|
|
|
|
|
|
|
|
ld c, $b
|
|
|
|
|
ld b, $3
|
|
|
|
|
|
|
|
|
|
.asm_90f71
|
|
|
|
|
call Function91480
|
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
.asm_90f75
|
|
|
|
|
ld hl, wJumptableIndex
|
|
|
|
|
set 7, [hl]
|
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
Function90f7b: ; 90f7b (24:4f7b)
|
|
|
|
|
xor a
|
|
|
|
|
ld [hBGMapMode], a
|
|
|
|
|
call Function90f86
|
|
|
|
|
ld a, $1
|
|
|
|
|
ld [hBGMapMode], a
|
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
Function90f86: ; 90f86 (24:4f86)
|
|
|
|
|
hlcoord 3, 5
|
|
|
|
|
lb bc, 5, 14
|
|
|
|
|
call ClearBox
|
|
|
|
|
ld a, [hHours]
|
|
|
|
|
ld b, a
|
|
|
|
|
ld a, [hMinutes]
|
|
|
|
|
ld c, a
|
|
|
|
|
decoord 6, 8
|
|
|
|
|
callba PrintHoursMins
|
|
|
|
|
ld hl, UnknownText_0x90faf
|
|
|
|
|
bccoord 6, 6
|
|
|
|
|
call PlaceWholeStringInBoxAtOnce
|
|
|
|
|
ret
|
|
|
|
|
; 90fa8 (24:4fa8)
|
|
|
|
|
|
|
|
|
|
String_90fa8: db "ごぜん@"
|
|
|
|
|
String_90fac: db "ごご@"
|
|
|
|
|
|
|
|
|
|
UnknownText_0x90faf: ; 0x90faf
|
|
|
|
|
text_jump UnknownText_0x1c5821
|
|
|
|
|
db "@"
|
|
|
|
|
; 0x90fb4
|
|
|
|
|
|
|
|
|
|
Function90fb4: ; 90fb4 (24:4fb4)
|
|
|
|
|
ld a, [wc6d8]
|
|
|
|
|
cp FAST_SHIP
|
|
|
|
|
jr z, .johto
|
|
|
|
|
cp KANTO_LANDMARK
|
|
|
|
|
jr nc, .kanto
|
|
|
|
|
.johto
|
|
|
|
|
ld a, 3
|
|
|
|
|
jr .done
|
|
|
|
|
|
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
.kanto
|
|
|
|
|
ld a, 5
|
|
|
|
|
.done
|
|
|
|
|
ld [wJumptableIndex], a
|
|
|
|
|
call Function91492
|
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
Function90fcd: ; 90fcd (24:4fcd)
|
|
|
|
|
call Function90da8
|
|
|
|
|
ld a, [wc6d8]
|
|
|
|
|
call Function9106a
|
|
|
|
|
ld a, [wc6d7]
|
|
|
|
|
call Function91098
|
|
|
|
|
ld a, c
|
|
|
|
|
ld [wc6d5], a
|
|
|
|
|
ld a, b
|
|
|
|
|
ld [wc6d6], a
|
|
|
|
|
ld hl, wJumptableIndex
|
|
|
|
|
inc [hl]
|
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
Function90fe9: ; 90fe9 (24:4fe9)
|
|
|
|
|
call Function910e8
|
|
|
|
|
jr Function90ff2
|
|
|
|
|
|
|
|
|
|
Function90fee: ; 90fee (24:4fee)
|
|
|
|
|
ld d, $2e
|
|
|
|
|
ld e, $1
|
|
|
|
|
Function90ff2: ; 90ff2 (24:4ff2)
|
|
|
|
|
ld hl, hJoyLast
|
|
|
|
|
ld a, [hl]
|
|
|
|
|
and B_BUTTON
|
|
|
|
|
jr nz, .cancel
|
|
|
|
|
ld a, [hl]
|
|
|
|
|
and D_RIGHT
|
|
|
|
|
jr nz, .right
|
|
|
|
|
ld a, [hl]
|
|
|
|
|
and D_LEFT
|
|
|
|
|
jr nz, .left
|
|
|
|
|
call Function9102f
|
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
.right
|
|
|
|
|
ld a, [wPokegearFlags]
|
|
|
|
|
bit 2, a
|
|
|
|
|
jr z, .asm_91015
|
|
|
|
|
ld c, $7
|
|
|
|
|
ld b, $2
|
|
|
|
|
jr .done
|
|
|
|
|
|
|
|
|
|
.asm_91015
|
|
|
|
|
ld a, [wPokegearFlags]
|
|
|
|
|
bit 1, a
|
|
|
|
|
ret z
|
|
|
|
|
ld c, $b
|
|
|
|
|
ld b, $3
|
|
|
|
|
jr .done
|
|
|
|
|
|
|
|
|
|
.left
|
|
|
|
|
ld c, $0
|
|
|
|
|
ld b, $0
|
|
|
|
|
.done
|
|
|
|
|
call Function91480
|
|
|
|
|
ret
|
|
|
|
|
.cancel
|
|
|
|
|
ld hl, wJumptableIndex
|
|
|
|
|
set 7, [hl]
|
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
Function9102f: ; 9102f (24:502f)
|
|
|
|
|
ld hl, hJoyLast
|
|
|
|
|
ld a, [hl]
|
|
|
|
|
and D_UP
|
|
|
|
|
jr nz, .up
|
|
|
|
|
ld a, [hl]
|
|
|
|
|
and D_DOWN
|
|
|
|
|
jr nz, .down
|
|
|
|
|
ret
|
|
|
|
|
.up
|
|
|
|
|
ld hl, wc6d7
|
|
|
|
|
ld a, [hl]
|
|
|
|
|
cp d
|
|
|
|
|
jr c, .asm_91047
|
|
|
|
|
ld a, e
|
|
|
|
|
dec a
|
|
|
|
|
ld [hl], a
|
|
|
|
|
.asm_91047
|
|
|
|
|
inc [hl]
|
|
|
|
|
jr .done
|
|
|
|
|
|
|
|
|
|
.down
|
|
|
|
|
ld hl, wc6d7
|
|
|
|
|
ld a, [hl]
|
|
|
|
|
cp e
|
|
|
|
|
jr nz, .asm_91054
|
|
|
|
|
ld a, d
|
|
|
|
|
inc a
|
|
|
|
|
ld [hl], a
|
|
|
|
|
.asm_91054
|
|
|
|
|
dec [hl]
|
|
|
|
|
|
|
|
|
|
.done
|
|
|
|
|
ld a, [wc6d7]
|
|
|
|
|
call Function910b4
|
|
|
|
|
ld a, [wc6d5]
|
|
|
|
|
ld c, a
|
|
|
|
|
ld a, [wc6d6]
|
|
|
|
|
ld b, a
|
|
|
|
|
ld a, [wc6d7]
|
|
|
|
|
call Function910d4
|
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
Function9106a: ; 9106a
|
|
|
|
|
push af
|
2015-12-09 08:38:40 -08:00
|
|
|
|
depixel 0, 0
|
2015-12-18 17:07:09 -08:00
|
|
|
|
ld b, SPRITE_ANIM_INDEX_WALK_CYCLE
|
2015-11-16 18:07:26 -08:00
|
|
|
|
ld a, [PlayerGender]
|
|
|
|
|
bit 0, a
|
|
|
|
|
jr z, .asm_91079
|
|
|
|
|
ld b, SPRITE_ANIM_INDEX_1E
|
|
|
|
|
|
|
|
|
|
.asm_91079
|
|
|
|
|
ld a, b
|
|
|
|
|
call _InitSpriteAnimStruct
|
2015-12-09 08:38:40 -08:00
|
|
|
|
ld hl, SPRITEANIMSTRUCT_TILE_ID
|
2015-11-16 18:07:26 -08:00
|
|
|
|
add hl, bc
|
|
|
|
|
ld [hl], $10
|
|
|
|
|
pop af
|
|
|
|
|
ld e, a
|
|
|
|
|
push bc
|
|
|
|
|
callba GetLandmarkCoords
|
|
|
|
|
pop bc
|
2015-12-09 08:38:40 -08:00
|
|
|
|
ld hl, SPRITEANIMSTRUCT_XCOORD
|
2015-11-16 18:07:26 -08:00
|
|
|
|
add hl, bc
|
|
|
|
|
ld [hl], e
|
2015-12-09 08:38:40 -08:00
|
|
|
|
ld hl, SPRITEANIMSTRUCT_YCOORD
|
2015-11-16 18:07:26 -08:00
|
|
|
|
add hl, bc
|
|
|
|
|
ld [hl], d
|
|
|
|
|
ret
|
|
|
|
|
; 91098
|
|
|
|
|
|
|
|
|
|
Function91098: ; 91098
|
|
|
|
|
push af
|
2015-12-09 08:38:40 -08:00
|
|
|
|
depixel 0, 0
|
2015-11-16 18:07:26 -08:00
|
|
|
|
ld a, SPRITE_ANIM_INDEX_0D
|
|
|
|
|
call _InitSpriteAnimStruct
|
2015-12-09 08:38:40 -08:00
|
|
|
|
ld hl, SPRITEANIMSTRUCT_TILE_ID
|
2015-11-16 18:07:26 -08:00
|
|
|
|
add hl, bc
|
|
|
|
|
ld [hl], $4
|
2015-12-09 08:38:40 -08:00
|
|
|
|
ld hl, SPRITEANIMSTRUCT_ANIM_SEQ_ID
|
2015-11-16 18:07:26 -08:00
|
|
|
|
add hl, bc
|
2015-12-18 17:07:09 -08:00
|
|
|
|
ld [hl], SPRITE_ANIM_SEQ_NULL
|
2015-11-16 18:07:26 -08:00
|
|
|
|
pop af
|
|
|
|
|
push bc
|
|
|
|
|
call Function910d4
|
|
|
|
|
pop bc
|
|
|
|
|
ret
|
|
|
|
|
; 910b4
|
|
|
|
|
|
|
|
|
|
Function910b4: ; 910b4
|
|
|
|
|
push af
|
|
|
|
|
hlcoord 8, 0
|
|
|
|
|
lb bc, 2, 12
|
|
|
|
|
call ClearBox
|
|
|
|
|
pop af
|
|
|
|
|
ld e, a
|
|
|
|
|
push de
|
|
|
|
|
callba GetLandmarkName
|
|
|
|
|
pop de
|
|
|
|
|
callba Function1de2c5
|
|
|
|
|
hlcoord 8, 0
|
|
|
|
|
ld [hl], $34
|
|
|
|
|
ret
|
|
|
|
|
; 910d4
|
|
|
|
|
|
|
|
|
|
Function910d4: ; 910d4
|
|
|
|
|
push bc
|
|
|
|
|
ld e, a
|
|
|
|
|
callba GetLandmarkCoords
|
|
|
|
|
pop bc
|
2015-12-09 08:38:40 -08:00
|
|
|
|
ld hl, SPRITEANIMSTRUCT_XCOORD
|
2015-11-16 18:07:26 -08:00
|
|
|
|
add hl, bc
|
|
|
|
|
ld [hl], e
|
2015-12-09 08:38:40 -08:00
|
|
|
|
ld hl, SPRITEANIMSTRUCT_YCOORD
|
2015-11-16 18:07:26 -08:00
|
|
|
|
add hl, bc
|
|
|
|
|
ld [hl], d
|
|
|
|
|
ret
|
|
|
|
|
; 910e8
|
|
|
|
|
|
|
|
|
|
Function910e8: ; 910e8
|
|
|
|
|
ld a, [StatusFlags]
|
|
|
|
|
bit 6, a
|
|
|
|
|
jr z, .asm_910f4
|
|
|
|
|
ld d, $5e
|
|
|
|
|
ld e, $2f
|
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
.asm_910f4
|
|
|
|
|
ld d, $5e
|
|
|
|
|
ld e, $58
|
|
|
|
|
ret
|
|
|
|
|
; 910f9
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Function910f9: ; 910f9 (24:50f9)
|
|
|
|
|
call Function90da8
|
2015-11-18 10:01:55 -08:00
|
|
|
|
depixel 4, 10, 4, 4
|
2015-11-16 18:07:26 -08:00
|
|
|
|
ld a, SPRITE_ANIM_INDEX_14
|
|
|
|
|
call _InitSpriteAnimStruct
|
2015-12-09 08:38:40 -08:00
|
|
|
|
ld hl, SPRITEANIMSTRUCT_TILE_ID
|
2015-11-16 18:07:26 -08:00
|
|
|
|
add hl, bc
|
|
|
|
|
ld [hl], $8
|
|
|
|
|
call _UpdateRadioStation
|
|
|
|
|
ld hl, wJumptableIndex
|
|
|
|
|
inc [hl]
|
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
Function91112: ; 91112 (24:5112)
|
|
|
|
|
ld hl, hJoyLast
|
|
|
|
|
ld a, [hl]
|
|
|
|
|
and B_BUTTON
|
|
|
|
|
jr nz, .cancel
|
|
|
|
|
ld a, [hl]
|
|
|
|
|
and D_LEFT
|
|
|
|
|
jr nz, .left
|
|
|
|
|
ld a, [wc6da]
|
|
|
|
|
ld l, a
|
|
|
|
|
ld a, [wc6db]
|
|
|
|
|
ld h, a
|
|
|
|
|
ld a, [wc6d9]
|
|
|
|
|
and a
|
|
|
|
|
ret z
|
|
|
|
|
rst FarCall
|
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
.left
|
|
|
|
|
ld a, [wPokegearFlags]
|
|
|
|
|
bit 2, a
|
|
|
|
|
jr z, .asm_9113b
|
|
|
|
|
ld c, $7
|
|
|
|
|
ld b, $2
|
|
|
|
|
jr .asm_9114c
|
|
|
|
|
|
|
|
|
|
.asm_9113b
|
|
|
|
|
ld a, [wPokegearFlags]
|
|
|
|
|
bit 0, a
|
|
|
|
|
jr z, .asm_91148
|
|
|
|
|
ld c, $2
|
|
|
|
|
ld b, $1
|
|
|
|
|
jr .asm_9114c
|
|
|
|
|
|
|
|
|
|
.asm_91148
|
|
|
|
|
ld c, $0
|
|
|
|
|
ld b, $0
|
|
|
|
|
.asm_9114c
|
|
|
|
|
call Function91480
|
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
.cancel
|
|
|
|
|
ld hl, wJumptableIndex
|
|
|
|
|
set 7, [hl]
|
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
Function91156: ; 91156 (24:5156)
|
|
|
|
|
ld hl, wJumptableIndex
|
|
|
|
|
inc [hl]
|
|
|
|
|
xor a
|
|
|
|
|
ld [wc6d2], a
|
|
|
|
|
ld [wc6d1], a
|
|
|
|
|
ld [wc6d3], a
|
|
|
|
|
call Function90da8
|
|
|
|
|
call Function91492
|
|
|
|
|
ld hl, UnknownText_0x914ce
|
|
|
|
|
call PrintText
|
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
Function91171: ; 91171 (24:5171)
|
|
|
|
|
ld hl, hJoyPressed
|
|
|
|
|
ld a, [hl]
|
|
|
|
|
and B_BUTTON
|
|
|
|
|
jr nz, .b
|
|
|
|
|
ld a, [hl]
|
|
|
|
|
and A_BUTTON
|
|
|
|
|
jr nz, .a
|
|
|
|
|
ld hl, hJoyLast
|
|
|
|
|
ld a, [hl]
|
|
|
|
|
and D_LEFT
|
|
|
|
|
jr nz, .left
|
|
|
|
|
ld a, [hl]
|
|
|
|
|
and D_RIGHT
|
|
|
|
|
jr nz, .right
|
|
|
|
|
call Function9126d
|
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
.left
|
|
|
|
|
ld a, [wPokegearFlags]
|
|
|
|
|
bit 0, a
|
|
|
|
|
jr z, .asm_9119c
|
|
|
|
|
ld c, $2
|
|
|
|
|
ld b, $1
|
|
|
|
|
jr .asm_911ac
|
|
|
|
|
.asm_9119c
|
|
|
|
|
ld c, $0
|
|
|
|
|
ld b, $0
|
|
|
|
|
jr .asm_911ac
|
|
|
|
|
|
|
|
|
|
.right
|
|
|
|
|
ld a, [wPokegearFlags]
|
|
|
|
|
bit 1, a
|
|
|
|
|
ret z
|
|
|
|
|
ld c, $b
|
|
|
|
|
ld b, $3
|
|
|
|
|
.asm_911ac
|
|
|
|
|
call Function91480
|
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
.b
|
|
|
|
|
ld hl, wJumptableIndex
|
|
|
|
|
set 7, [hl]
|
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
.a
|
|
|
|
|
ld hl, wPhoneList
|
|
|
|
|
ld a, [wc6d2]
|
|
|
|
|
ld e, a
|
|
|
|
|
ld d, 0
|
|
|
|
|
add hl, de
|
|
|
|
|
ld a, [wc6d1]
|
|
|
|
|
ld e, a
|
|
|
|
|
ld d, 0
|
|
|
|
|
add hl, de
|
|
|
|
|
ld a, [hl]
|
|
|
|
|
and a
|
|
|
|
|
ret z
|
|
|
|
|
|
|
|
|
|
ld [wc6d3], a
|
|
|
|
|
hlcoord 1, 4
|
|
|
|
|
ld a, [wc6d1]
|
|
|
|
|
ld bc, 20 * 2
|
|
|
|
|
call AddNTimes
|
|
|
|
|
ld [hl], "▷"
|
|
|
|
|
call Function91342
|
|
|
|
|
jr c, .asm_911e5
|
|
|
|
|
|
|
|
|
|
ld hl, wJumptableIndex
|
|
|
|
|
inc [hl]
|
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
.asm_911e5
|
|
|
|
|
ld a, $8
|
|
|
|
|
ld [wJumptableIndex], a
|
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
Function911eb: ; 911eb (24:51eb)
|
|
|
|
|
call GetMapHeaderPhoneServiceNybble
|
|
|
|
|
and a
|
|
|
|
|
jr nz, .asm_91234
|
|
|
|
|
ld hl, Options
|
|
|
|
|
res NO_TEXT_SCROLL, [hl]
|
|
|
|
|
xor a
|
|
|
|
|
ld [hInMenu], a
|
|
|
|
|
ld de, SFX_CALL
|
|
|
|
|
call PlaySFX
|
|
|
|
|
ld hl, UnknownText_0x9124c
|
|
|
|
|
call PrintText
|
|
|
|
|
call WaitSFX
|
|
|
|
|
ld de, SFX_CALL
|
|
|
|
|
call PlaySFX
|
|
|
|
|
ld hl, UnknownText_0x9124c
|
|
|
|
|
call PrintText
|
|
|
|
|
call WaitSFX
|
|
|
|
|
ld a, [wc6d3]
|
|
|
|
|
ld b, a
|
|
|
|
|
call Function90199
|
|
|
|
|
ld c, 10
|
|
|
|
|
call DelayFrames
|
|
|
|
|
ld hl, Options
|
|
|
|
|
set NO_TEXT_SCROLL, [hl]
|
|
|
|
|
ld a, $1
|
|
|
|
|
ld [hInMenu], a
|
|
|
|
|
call Function912b7
|
|
|
|
|
ld hl, wJumptableIndex
|
|
|
|
|
inc [hl]
|
|
|
|
|
ret
|
|
|
|
|
.asm_91234
|
|
|
|
|
callba Phone_NoSignal
|
|
|
|
|
ld hl, OutOfServiceAreaText
|
|
|
|
|
call PrintText
|
|
|
|
|
ld a, $8
|
|
|
|
|
ld [wJumptableIndex], a
|
|
|
|
|
ld hl, UnknownText_0x914ce
|
|
|
|
|
call PrintText
|
|
|
|
|
ret
|
|
|
|
|
; 9124c (24:524c)
|
|
|
|
|
|
|
|
|
|
UnknownText_0x9124c: ; 0x9124c
|
|
|
|
|
;
|
|
|
|
|
text_jump UnknownText_0x1c5824
|
|
|
|
|
db "@"
|
|
|
|
|
; 0x91251
|
|
|
|
|
|
|
|
|
|
OutOfServiceAreaText: ; 0x91251
|
|
|
|
|
; You're out of the service area.
|
|
|
|
|
text_jump UnknownText_0x1c5827
|
|
|
|
|
db "@"
|
|
|
|
|
; 0x91256
|
|
|
|
|
|
|
|
|
|
Function91256: ; 91256 (24:5256)
|
|
|
|
|
ld a, [hJoyPressed]
|
|
|
|
|
and A_BUTTON | B_BUTTON
|
|
|
|
|
ret z
|
|
|
|
|
callba HangUp
|
|
|
|
|
ld a, $8
|
|
|
|
|
ld [wJumptableIndex], a
|
|
|
|
|
ld hl, UnknownText_0x914ce
|
|
|
|
|
call PrintText
|
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
Function9126d: ; 9126d (24:526d)
|
|
|
|
|
ld hl, hJoyLast
|
|
|
|
|
ld a, [hl]
|
|
|
|
|
and D_UP
|
|
|
|
|
jr nz, .up
|
|
|
|
|
ld a, [hl]
|
|
|
|
|
and D_DOWN
|
|
|
|
|
jr nz, .down
|
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
.up
|
|
|
|
|
ld hl, wc6d1
|
|
|
|
|
ld a, [hl]
|
|
|
|
|
and a
|
|
|
|
|
jr z, .asm_91285
|
|
|
|
|
dec [hl]
|
|
|
|
|
jr .asm_912a3
|
|
|
|
|
|
|
|
|
|
.asm_91285
|
|
|
|
|
ld hl, wc6d2
|
|
|
|
|
ld a, [hl]
|
|
|
|
|
and a
|
|
|
|
|
ret z
|
|
|
|
|
dec [hl]
|
|
|
|
|
jr .asm_912ad
|
|
|
|
|
|
|
|
|
|
.down
|
|
|
|
|
ld hl, wc6d1
|
|
|
|
|
ld a, [hl]
|
|
|
|
|
cp $3
|
|
|
|
|
jr nc, .asm_91299
|
|
|
|
|
inc [hl]
|
|
|
|
|
jr .asm_912a3
|
|
|
|
|
|
|
|
|
|
.asm_91299
|
|
|
|
|
ld hl, wc6d2
|
|
|
|
|
ld a, [hl]
|
|
|
|
|
cp $6
|
|
|
|
|
ret nc
|
|
|
|
|
inc [hl]
|
|
|
|
|
jr .asm_912ad
|
|
|
|
|
|
|
|
|
|
.asm_912a3
|
|
|
|
|
xor a
|
|
|
|
|
ld [hBGMapMode], a
|
|
|
|
|
call Function912b7
|
|
|
|
|
call WaitBGMap
|
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
.asm_912ad
|
|
|
|
|
xor a
|
|
|
|
|
ld [hBGMapMode], a
|
|
|
|
|
call Function912d8
|
|
|
|
|
call WaitBGMap
|
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
Function912b7: ; 912b7 (24:52b7)
|
|
|
|
|
ld a, " "
|
|
|
|
|
hlcoord 1, 4
|
|
|
|
|
ld [hl], a
|
|
|
|
|
hlcoord 1, 6
|
|
|
|
|
ld [hl], a
|
|
|
|
|
hlcoord 1, 8
|
|
|
|
|
ld [hl], a
|
|
|
|
|
hlcoord 1, 10
|
|
|
|
|
ld [hl], a
|
|
|
|
|
hlcoord 1, 4
|
|
|
|
|
ld a, [wc6d1]
|
|
|
|
|
ld bc, $28
|
|
|
|
|
call AddNTimes
|
|
|
|
|
ld [hl], "▶"
|
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
Function912d8: ; 912d8 (24:52d8)
|
|
|
|
|
hlcoord 1, 3
|
|
|
|
|
ld b, $9
|
|
|
|
|
ld a, $7f
|
|
|
|
|
.asm_912df
|
|
|
|
|
ld c, $12
|
|
|
|
|
.asm_912e1
|
|
|
|
|
ld [hli], a
|
|
|
|
|
dec c
|
|
|
|
|
jr nz, .asm_912e1
|
|
|
|
|
rept 2
|
|
|
|
|
inc hl
|
|
|
|
|
endr
|
|
|
|
|
dec b
|
|
|
|
|
jr nz, .asm_912df
|
|
|
|
|
ld a, [wc6d2]
|
|
|
|
|
ld e, a
|
|
|
|
|
ld d, $0
|
|
|
|
|
ld hl, wPhoneList
|
|
|
|
|
add hl, de
|
|
|
|
|
xor a
|
|
|
|
|
ld [wc6d0], a
|
|
|
|
|
.asm_912f8
|
|
|
|
|
ld a, [hli]
|
|
|
|
|
push hl
|
|
|
|
|
push af
|
|
|
|
|
hlcoord 2, 4
|
|
|
|
|
ld a, [wc6d0]
|
|
|
|
|
ld bc, $28
|
|
|
|
|
call AddNTimes
|
|
|
|
|
ld d, h
|
|
|
|
|
ld e, l
|
|
|
|
|
pop af
|
|
|
|
|
ld b, a
|
|
|
|
|
call Function90380
|
|
|
|
|
pop hl
|
|
|
|
|
ld a, [wc6d0]
|
|
|
|
|
inc a
|
|
|
|
|
ld [wc6d0], a
|
|
|
|
|
cp $4
|
|
|
|
|
jr c, .asm_912f8
|
|
|
|
|
call Function912b7
|
|
|
|
|
ret
|
|
|
|
|
; 9131e (24:531e)
|
|
|
|
|
|
|
|
|
|
Function9131e: ; 9131e
|
|
|
|
|
ld hl, wPhoneList
|
|
|
|
|
ld a, [wc6d2]
|
|
|
|
|
ld e, a
|
|
|
|
|
ld d, 0
|
|
|
|
|
add hl, de
|
|
|
|
|
ld a, [wc6d1]
|
|
|
|
|
ld e, a
|
|
|
|
|
ld d, 0
|
|
|
|
|
add hl, de
|
|
|
|
|
ld [hl], 0
|
|
|
|
|
ld hl, wPhoneList
|
|
|
|
|
ld c, $a
|
|
|
|
|
.asm_91336
|
|
|
|
|
ld a, [hli]
|
|
|
|
|
and a
|
|
|
|
|
jr nz, .asm_9133e
|
|
|
|
|
ld a, [hld]
|
|
|
|
|
ld [hli], a
|
|
|
|
|
ld [hl], 0
|
|
|
|
|
.asm_9133e
|
|
|
|
|
dec c
|
|
|
|
|
jr nz, .asm_91336
|
|
|
|
|
ret
|
|
|
|
|
; 91342
|
|
|
|
|
|
|
|
|
|
Function91342: ; 91342 (24:5342)
|
|
|
|
|
ld hl, wPhoneList
|
|
|
|
|
ld a, [wc6d2]
|
|
|
|
|
ld e, a
|
|
|
|
|
ld d, 0
|
|
|
|
|
add hl, de
|
|
|
|
|
ld a, [wc6d1]
|
|
|
|
|
ld e, a
|
|
|
|
|
ld d, 0
|
|
|
|
|
add hl, de
|
|
|
|
|
ld c, [hl]
|
|
|
|
|
callba Function9038a
|
|
|
|
|
ld a, c
|
|
|
|
|
and a
|
|
|
|
|
jr z, .asm_91366
|
|
|
|
|
|
|
|
|
|
ld hl, Jumptable_91455
|
|
|
|
|
ld de, Unknown_9143f
|
|
|
|
|
jr .asm_9136c
|
|
|
|
|
|
|
|
|
|
.asm_91366
|
|
|
|
|
ld hl, Jumptable_9146a
|
|
|
|
|
ld de, Unknown_9145b
|
|
|
|
|
|
|
|
|
|
.asm_9136c
|
|
|
|
|
xor a
|
|
|
|
|
ld [hBGMapMode], a
|
|
|
|
|
push hl
|
|
|
|
|
push de
|
|
|
|
|
ld a, [de]
|
|
|
|
|
ld l, a
|
|
|
|
|
inc de
|
|
|
|
|
ld a, [de]
|
|
|
|
|
ld h, a
|
|
|
|
|
inc de
|
|
|
|
|
push hl
|
|
|
|
|
ld bc, hBGMapAddress + 1
|
|
|
|
|
add hl, bc
|
|
|
|
|
ld a, [de]
|
|
|
|
|
inc de
|
|
|
|
|
sla a
|
|
|
|
|
ld b, a
|
|
|
|
|
ld c, 8
|
|
|
|
|
push de
|
|
|
|
|
call TextBox
|
|
|
|
|
pop de
|
|
|
|
|
pop hl
|
|
|
|
|
inc hl
|
|
|
|
|
call PlaceString
|
|
|
|
|
pop de
|
|
|
|
|
xor a
|
|
|
|
|
ld [wc6d4], a
|
|
|
|
|
call Function9141d
|
|
|
|
|
call WaitBGMap
|
|
|
|
|
|
|
|
|
|
.asm_91398
|
|
|
|
|
push de
|
|
|
|
|
call JoyTextDelay
|
|
|
|
|
pop de
|
|
|
|
|
ld hl, hJoyPressed
|
|
|
|
|
ld a, [hl]
|
|
|
|
|
and D_UP
|
|
|
|
|
jr nz, .asm_913b4
|
|
|
|
|
ld a, [hl]
|
|
|
|
|
and D_DOWN
|
|
|
|
|
jr nz, .asm_913c1
|
|
|
|
|
ld a, [hl]
|
|
|
|
|
and A_BUTTON | B_BUTTON
|
|
|
|
|
jr nz, .asm_913d4
|
|
|
|
|
call DelayFrame
|
|
|
|
|
jr .asm_91398
|
|
|
|
|
|
|
|
|
|
.asm_913b4
|
|
|
|
|
ld hl, wc6d4
|
|
|
|
|
ld a, [hl]
|
|
|
|
|
and a
|
|
|
|
|
jr z, .asm_91398
|
|
|
|
|
dec [hl]
|
|
|
|
|
call Function9141d
|
|
|
|
|
jr .asm_91398
|
|
|
|
|
|
|
|
|
|
.asm_913c1
|
|
|
|
|
ld hl, 2
|
|
|
|
|
add hl, de
|
|
|
|
|
ld a, [wc6d4]
|
|
|
|
|
inc a
|
|
|
|
|
cp [hl]
|
|
|
|
|
jr nc, .asm_91398
|
|
|
|
|
ld [wc6d4], a
|
|
|
|
|
call Function9141d
|
|
|
|
|
jr .asm_91398
|
|
|
|
|
|
|
|
|
|
.asm_913d4
|
|
|
|
|
xor a
|
|
|
|
|
ld [hBGMapMode], a
|
|
|
|
|
call Function912d8
|
|
|
|
|
ld a, $1
|
|
|
|
|
ld [hBGMapMode], a
|
|
|
|
|
pop hl
|
|
|
|
|
ld a, [hJoyPressed]
|
|
|
|
|
and B_BUTTON
|
|
|
|
|
jr nz, Function913f1
|
|
|
|
|
|
|
|
|
|
ld a, [wc6d4]
|
|
|
|
|
ld e, a
|
|
|
|
|
ld d, 0
|
|
|
|
|
rept 2
|
|
|
|
|
add hl, de
|
|
|
|
|
endr
|
|
|
|
|
ld a, [hli]
|
|
|
|
|
ld h, [hl]
|
|
|
|
|
ld l, a
|
|
|
|
|
jp [hl]
|
|
|
|
|
|
|
|
|
|
Function913f1: ; 913f1
|
|
|
|
|
ld hl, UnknownText_0x914ce
|
|
|
|
|
call PrintText
|
|
|
|
|
scf
|
|
|
|
|
ret
|
|
|
|
|
; 913f9 (24:53f9)
|
|
|
|
|
|
|
|
|
|
Function913f9: ; 913f9
|
|
|
|
|
ld hl, UnknownText_0x914d8
|
|
|
|
|
call MenuTextBox
|
|
|
|
|
call YesNoBox
|
|
|
|
|
call ExitMenu
|
|
|
|
|
jr c, .asm_91419
|
|
|
|
|
call Function9131e
|
|
|
|
|
xor a
|
|
|
|
|
ld [hBGMapMode], a
|
|
|
|
|
call Function912d8
|
|
|
|
|
ld hl, UnknownText_0x914ce
|
|
|
|
|
call PrintText
|
|
|
|
|
call WaitBGMap
|
|
|
|
|
.asm_91419
|
|
|
|
|
scf
|
|
|
|
|
ret
|
|
|
|
|
; 9141b
|
|
|
|
|
|
|
|
|
|
Function9141b: ; 9141b
|
|
|
|
|
and a
|
|
|
|
|
ret
|
|
|
|
|
; 9141d
|
|
|
|
|
|
|
|
|
|
Function9141d: ; 9141d (24:541d)
|
|
|
|
|
push de
|
|
|
|
|
ld a, [de]
|
|
|
|
|
inc de
|
|
|
|
|
ld l, a
|
|
|
|
|
ld a, [de]
|
|
|
|
|
inc de
|
|
|
|
|
ld h, a
|
|
|
|
|
ld a, [de]
|
|
|
|
|
ld c, a
|
|
|
|
|
push hl
|
|
|
|
|
ld a, " "
|
|
|
|
|
ld de, 20 * 2
|
|
|
|
|
.asm_9142c
|
|
|
|
|
ld [hl], a
|
|
|
|
|
add hl, de
|
|
|
|
|
dec c
|
|
|
|
|
jr nz, .asm_9142c
|
|
|
|
|
pop hl
|
|
|
|
|
ld a, [wc6d4]
|
|
|
|
|
ld bc, 20 * 2
|
|
|
|
|
call AddNTimes
|
|
|
|
|
ld [hl], "▶"
|
|
|
|
|
pop de
|
|
|
|
|
ret
|
|
|
|
|
; 9143f (24:543f)
|
|
|
|
|
|
|
|
|
|
Unknown_9143f: ; 9143f
|
|
|
|
|
dwcoord 10, 6
|
|
|
|
|
db 3
|
|
|
|
|
db "CALL"
|
|
|
|
|
next "DELETE"
|
|
|
|
|
next "CANCEL"
|
|
|
|
|
db "@"
|
|
|
|
|
; 91455
|
|
|
|
|
|
|
|
|
|
Jumptable_91455: ; 91455
|
|
|
|
|
dw Function9141b
|
|
|
|
|
dw Function913f9
|
|
|
|
|
dw Function913f1
|
|
|
|
|
; 9145b
|
|
|
|
|
|
|
|
|
|
Unknown_9145b: ; 9145b
|
|
|
|
|
dwcoord 10, 8
|
|
|
|
|
db 2
|
|
|
|
|
db "CALL"
|
|
|
|
|
next "CANCEL"
|
|
|
|
|
db "@"
|
|
|
|
|
; 9146a
|
|
|
|
|
|
|
|
|
|
Jumptable_9146a: ; 9146a
|
|
|
|
|
dw Function9141b
|
|
|
|
|
dw Function913f1
|
|
|
|
|
; 9146e
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Function9146e: ; 9146e
|
|
|
|
|
ld a, [hHours]
|
|
|
|
|
cp 12
|
|
|
|
|
jr c, .asm_9147b
|
|
|
|
|
sub 12
|
|
|
|
|
ld [wd265], a
|
|
|
|
|
scf
|
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
.asm_9147b
|
|
|
|
|
ld [wd265], a
|
|
|
|
|
and a
|
|
|
|
|
ret
|
|
|
|
|
; 91480
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Function91480: ; 91480 (24:5480)
|
|
|
|
|
ld de, SFX_READ_TEXT_2
|
|
|
|
|
call PlaySFX
|
|
|
|
|
ld a, c
|
|
|
|
|
ld [wJumptableIndex], a
|
|
|
|
|
ld a, b
|
|
|
|
|
ld [wcf64], a
|
|
|
|
|
call DeleteSpriteAnimStruct2ToEnd
|
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
Function91492: ; 91492
|
|
|
|
|
ld a, [wc6dc]
|
|
|
|
|
cp $fe
|
|
|
|
|
jr z, .asm_914a3
|
|
|
|
|
cp $ff
|
|
|
|
|
call z, EnterMapMusic
|
|
|
|
|
xor a
|
|
|
|
|
ld [wc6dc], a
|
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
.asm_914a3
|
|
|
|
|
call RestartMapMusic
|
|
|
|
|
xor a
|
|
|
|
|
ld [wc6dc], a
|
|
|
|
|
ret
|
|
|
|
|
; 914ab
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
DeleteSpriteAnimStruct2ToEnd: ; 914ab (24:54ab)
|
|
|
|
|
ld hl, SpriteAnim2
|
|
|
|
|
ld bc, wSpriteAnimationStructsEnd - SpriteAnim2
|
|
|
|
|
xor a
|
|
|
|
|
call ByteFill
|
|
|
|
|
ld a, 2
|
|
|
|
|
ld [wSpriteAnimCount], a
|
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
Function914bb: ; 914bb (24:54bb)
|
|
|
|
|
hlcoord 0, 0
|
|
|
|
|
.asm_914be
|
|
|
|
|
ld a, [de]
|
|
|
|
|
cp $ff
|
|
|
|
|
ret z
|
|
|
|
|
ld b, a
|
|
|
|
|
inc de
|
|
|
|
|
ld a, [de]
|
|
|
|
|
ld c, a
|
|
|
|
|
inc de
|
|
|
|
|
ld a, b
|
|
|
|
|
.asm_914c8
|
|
|
|
|
ld [hli], a
|
|
|
|
|
dec c
|
|
|
|
|
jr nz, .asm_914c8
|
|
|
|
|
jr .asm_914be
|
|
|
|
|
; 914ce (24:54ce)
|
|
|
|
|
|
|
|
|
|
UnknownText_0x914ce: ; 0x914ce
|
|
|
|
|
; Whom do you want to call?
|
|
|
|
|
text_jump UnknownText_0x1c5847
|
|
|
|
|
db "@"
|
|
|
|
|
; 0x914d3
|
|
|
|
|
|
|
|
|
|
UnknownText_0x914d3: ; 0x914d3
|
|
|
|
|
; Press any button to exit.
|
|
|
|
|
text_jump UnknownText_0x1c5862
|
|
|
|
|
db "@"
|
|
|
|
|
; 0x914d8
|
|
|
|
|
|
|
|
|
|
UnknownText_0x914d8: ; 0x914d8
|
|
|
|
|
; Delete this stored phone number?
|
|
|
|
|
text_jump UnknownText_0x1c587d
|
|
|
|
|
db "@"
|
|
|
|
|
; 0x914dd
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
PokegearSpritesGFX: ; 914dd
|
|
|
|
|
INCBIN "gfx/misc/pokegear_sprites.2bpp.lz"
|
|
|
|
|
; 9150d
|
|
|
|
|
|
|
|
|
|
RadioTilemapRLE: ; 9150d
|
|
|
|
|
INCBIN "gfx/unknown/09150d.tilemap.rle"
|
|
|
|
|
|
|
|
|
|
PhoneTilemapRLE: ; 9158a
|
|
|
|
|
INCBIN "gfx/unknown/09158a.tilemap.rle"
|
|
|
|
|
|
|
|
|
|
ClockTilemapRLE: ; 915db
|
|
|
|
|
INCBIN "gfx/unknown/0915db.tilemap.rle"
|
|
|
|
|
; 9163e
|
|
|
|
|
_UpdateRadioStation: ; 9163e (24:563e)
|
|
|
|
|
jr UpdateRadioStation
|
|
|
|
|
|
2015-12-04 05:46:11 -08:00
|
|
|
|
; called from engine/sprite_anims.asm
|
|
|
|
|
AnimateTuningKnob: ; 91640 (24:5640)
|
2015-11-16 18:07:26 -08:00
|
|
|
|
push bc
|
|
|
|
|
call .TuningKnob
|
|
|
|
|
pop bc
|
|
|
|
|
ld a, [wRadioTuningKnob]
|
2015-12-04 05:46:11 -08:00
|
|
|
|
ld hl, SPRITEANIMSTRUCT_XOFFSET
|
2015-11-16 18:07:26 -08:00
|
|
|
|
add hl, bc
|
|
|
|
|
ld [hl], a
|
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
.TuningKnob: ; 9164e (24:564e)
|
|
|
|
|
ld hl, hJoyLast
|
|
|
|
|
ld a, [hl]
|
|
|
|
|
and D_DOWN
|
|
|
|
|
jr nz, .down
|
|
|
|
|
ld a, [hl]
|
|
|
|
|
and D_UP
|
|
|
|
|
jr nz, .up
|
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
.down
|
|
|
|
|
ld hl, wRadioTuningKnob
|
|
|
|
|
ld a, [hl]
|
|
|
|
|
and a
|
|
|
|
|
ret z
|
|
|
|
|
rept 2
|
|
|
|
|
dec [hl]
|
|
|
|
|
endr
|
|
|
|
|
jr .update
|
|
|
|
|
|
|
|
|
|
.up
|
|
|
|
|
ld hl, wRadioTuningKnob
|
|
|
|
|
ld a, [hl]
|
|
|
|
|
cp 80
|
|
|
|
|
ret nc
|
|
|
|
|
rept 2
|
|
|
|
|
inc [hl]
|
|
|
|
|
endr
|
|
|
|
|
|
|
|
|
|
.update
|
|
|
|
|
|
|
|
|
|
UpdateRadioStation: ; 9166f (24:566f)
|
|
|
|
|
ld hl, wRadioTuningKnob
|
|
|
|
|
ld d, [hl]
|
|
|
|
|
ld hl, RadioChannels
|
|
|
|
|
.loop
|
|
|
|
|
ld a, [hli]
|
|
|
|
|
cp -1
|
|
|
|
|
jr z, .nostation
|
|
|
|
|
cp d
|
|
|
|
|
jr z, .foundstation
|
|
|
|
|
rept 2
|
|
|
|
|
inc hl
|
|
|
|
|
endr
|
|
|
|
|
jr .loop
|
|
|
|
|
|
|
|
|
|
.nostation
|
|
|
|
|
call NoRadioStation
|
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
.foundstation
|
|
|
|
|
ld a, [hli]
|
|
|
|
|
ld h, [hl]
|
|
|
|
|
ld l, a
|
|
|
|
|
ld de, .returnafterstation
|
|
|
|
|
push de
|
|
|
|
|
jp [hl]
|
|
|
|
|
.returnafterstation
|
|
|
|
|
ld a, [wc6d9]
|
|
|
|
|
and a
|
|
|
|
|
ret z
|
|
|
|
|
xor a
|
|
|
|
|
ld [hBGMapMode], a
|
|
|
|
|
hlcoord 2, 9
|
|
|
|
|
call PlaceString
|
|
|
|
|
ld a, $1
|
|
|
|
|
ld [hBGMapMode], a
|
|
|
|
|
ret
|
|
|
|
|
; 916a1 (24:56a1)
|
|
|
|
|
|
|
|
|
|
Function916a1: ; 916a1
|
|
|
|
|
ld [wc6d9], a
|
|
|
|
|
ld a, [hli]
|
|
|
|
|
ld [wc6da], a
|
|
|
|
|
ld a, [hli]
|
|
|
|
|
ld [wc6db], a
|
|
|
|
|
ret
|
|
|
|
|
; 916ad
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
RadioChannels:
|
|
|
|
|
; frequencies and the shows that play on them.
|
|
|
|
|
; frequency value given here = 4 × ingame_frequency − 2
|
|
|
|
|
dbw 16, .PkmnTalkAndPokedexShow
|
|
|
|
|
dbw 28, .PokemonMusic
|
|
|
|
|
dbw 32, .LuckyChannel
|
|
|
|
|
dbw 40, .BuenasPassword
|
|
|
|
|
dbw 52, .RuinsOfAlphRadio
|
|
|
|
|
dbw 64, .PlacesAndPeople
|
|
|
|
|
dbw 72, .LetsAllSing
|
|
|
|
|
dbw 78, .PokeFluteRadio
|
|
|
|
|
dbw 80, .EvolutionRadio
|
|
|
|
|
db $ff
|
|
|
|
|
|
|
|
|
|
.PkmnTalkAndPokedexShow
|
|
|
|
|
; Pokédex Show in the morning
|
|
|
|
|
; Oak's Pokémon Talk in the afternoon and evening
|
|
|
|
|
call .InJohto
|
|
|
|
|
jr nc, .NoSignal
|
|
|
|
|
ld a, [TimeOfDay]
|
|
|
|
|
and a
|
|
|
|
|
jp z, LoadStation_PokedexShow
|
|
|
|
|
jp LoadStation_OaksPokemonTalk
|
|
|
|
|
|
|
|
|
|
.PokemonMusic
|
|
|
|
|
call .InJohto
|
|
|
|
|
jr nc, .NoSignal
|
|
|
|
|
jp LoadStation_PokemonMusic
|
|
|
|
|
|
|
|
|
|
.LuckyChannel
|
|
|
|
|
call .InJohto
|
|
|
|
|
jr nc, .NoSignal
|
|
|
|
|
jp LoadStation_LuckyChannel
|
|
|
|
|
|
|
|
|
|
.BuenasPassword
|
|
|
|
|
call .InJohto
|
|
|
|
|
jr nc, .NoSignal
|
|
|
|
|
jp LoadStation_BuenasPassword
|
|
|
|
|
|
|
|
|
|
.RuinsOfAlphRadio
|
|
|
|
|
ld a, [wc6d8]
|
|
|
|
|
cp RUINS_OF_ALPH
|
|
|
|
|
jr nz, .NoSignal
|
|
|
|
|
jp LoadStation_UnownRadio
|
|
|
|
|
|
|
|
|
|
.PlacesAndPeople
|
|
|
|
|
call .InJohto
|
|
|
|
|
jr c, .NoSignal
|
|
|
|
|
ld a, [wPokegearFlags]
|
|
|
|
|
bit 3, a
|
|
|
|
|
jr z, .NoSignal
|
|
|
|
|
jp LoadStation_PlacesAndPeople
|
|
|
|
|
|
|
|
|
|
.LetsAllSing
|
|
|
|
|
call .InJohto
|
|
|
|
|
jr c, .NoSignal
|
|
|
|
|
ld a, [wPokegearFlags]
|
|
|
|
|
bit 3, a
|
|
|
|
|
jr z, .NoSignal
|
|
|
|
|
jp LoadStation_LetsAllSing
|
|
|
|
|
|
|
|
|
|
.PokeFluteRadio
|
|
|
|
|
call .InJohto
|
|
|
|
|
jr c, .NoSignal
|
|
|
|
|
ld a, [wPokegearFlags]
|
|
|
|
|
bit 3, a
|
|
|
|
|
jr z, .NoSignal
|
|
|
|
|
jp LoadStation_PokeFluteRadio
|
|
|
|
|
|
|
|
|
|
.EvolutionRadio
|
|
|
|
|
; This station airs in the Lake of Rage area when Rocket are still in Mahogany.
|
|
|
|
|
|
|
|
|
|
ld a, [StatusFlags]
|
|
|
|
|
bit 4, a
|
|
|
|
|
jr z, .NoSignal
|
|
|
|
|
|
|
|
|
|
ld a, [wc6d8]
|
|
|
|
|
cp MAHOGANY_TOWN
|
|
|
|
|
jr z, .ok
|
|
|
|
|
cp ROUTE_43
|
|
|
|
|
jr z, .ok
|
|
|
|
|
cp LAKE_OF_RAGE
|
|
|
|
|
jr nz, .NoSignal
|
|
|
|
|
.ok
|
|
|
|
|
jp LoadStation_EvolutionRadio
|
|
|
|
|
|
|
|
|
|
.NoSignal
|
|
|
|
|
call NoRadioStation
|
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
.InJohto
|
|
|
|
|
; if in Johto or on the S.S. Aqua, set carry
|
|
|
|
|
; otherwise clear carry
|
|
|
|
|
ld a, [wc6d8]
|
|
|
|
|
cp FAST_SHIP
|
|
|
|
|
jr z, .johto
|
|
|
|
|
cp KANTO_LANDMARK
|
|
|
|
|
jr c, .johto
|
|
|
|
|
.kanto
|
|
|
|
|
and a
|
|
|
|
|
ret
|
|
|
|
|
.johto
|
|
|
|
|
scf
|
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
LoadStation_OaksPokemonTalk: ; 91753 (24:5753)
|
|
|
|
|
xor a ; OAKS_POKEMON_TALK
|
|
|
|
|
ld [wd002], a
|
|
|
|
|
ld [wd005], a
|
|
|
|
|
ld a, BANK(PlayRadioShow)
|
|
|
|
|
ld hl, PlayRadioShow
|
|
|
|
|
call Radio_BackUpFarCallParams
|
|
|
|
|
ld de, OaksPkmnTalkName
|
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
LoadStation_PokedexShow: ; 91766 (24:5766)
|
|
|
|
|
ld a, POKEDEX_SHOW
|
|
|
|
|
ld [wd002], a
|
|
|
|
|
xor a
|
|
|
|
|
ld [wd005], a
|
|
|
|
|
ld a, BANK(PlayRadioShow)
|
|
|
|
|
ld hl, PlayRadioShow
|
|
|
|
|
call Radio_BackUpFarCallParams
|
|
|
|
|
ld de, PokedexShowName
|
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
LoadStation_PokemonMusic: ; 9177b (24:577b)
|
|
|
|
|
ld a, POKEMON_MUSIC
|
|
|
|
|
ld [wd002], a
|
|
|
|
|
xor a
|
|
|
|
|
ld [wd005], a
|
|
|
|
|
ld a, BANK(PlayRadioShow)
|
|
|
|
|
ld hl, PlayRadioShow
|
|
|
|
|
call Radio_BackUpFarCallParams
|
|
|
|
|
ld de, PokemonMusicName
|
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
LoadStation_LuckyChannel: ; 91790 (24:5790)
|
|
|
|
|
ld a, LUCKY_CHANNEL
|
|
|
|
|
ld [wd002], a
|
|
|
|
|
xor a
|
|
|
|
|
ld [wd005], a
|
|
|
|
|
ld a, BANK(PlayRadioShow)
|
|
|
|
|
ld hl, PlayRadioShow
|
|
|
|
|
call Radio_BackUpFarCallParams
|
|
|
|
|
ld de, LuckyChannelName
|
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
LoadStation_BuenasPassword: ; 917a5 (24:57a5)
|
|
|
|
|
ld a, BUENAS_PASSWORD
|
|
|
|
|
ld [wd002], a
|
|
|
|
|
xor a
|
|
|
|
|
ld [wd005], a
|
|
|
|
|
ld a, BANK(PlayRadioShow)
|
|
|
|
|
ld hl, PlayRadioShow
|
|
|
|
|
call Radio_BackUpFarCallParams
|
|
|
|
|
ld de, NotBuenasPasswordName
|
|
|
|
|
ld a, [StatusFlags2]
|
|
|
|
|
bit 0, a
|
|
|
|
|
ret z
|
|
|
|
|
ld de, BuenasPasswordName
|
|
|
|
|
ret
|
|
|
|
|
; 917c3 (24:57c3)
|
|
|
|
|
|
|
|
|
|
BuenasPasswordName: db "BUENA'S PASSWORD@"
|
|
|
|
|
NotBuenasPasswordName: db "@"
|
|
|
|
|
|
|
|
|
|
LoadStation_UnownRadio: ; 917d5 (24:57d5)
|
|
|
|
|
ld a, UNOWN_RADIO
|
|
|
|
|
ld [wd002], a
|
|
|
|
|
xor a
|
|
|
|
|
ld [wd005], a
|
|
|
|
|
ld a, BANK(PlayRadioShow)
|
|
|
|
|
ld hl, PlayRadioShow
|
|
|
|
|
call Radio_BackUpFarCallParams
|
|
|
|
|
ld de, UnknownStationName
|
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
LoadStation_PlacesAndPeople: ; 917ea (24:57ea)
|
|
|
|
|
ld a, PLACES_AND_PEOPLE
|
|
|
|
|
ld [wd002], a
|
|
|
|
|
xor a
|
|
|
|
|
ld [wd005], a
|
|
|
|
|
ld a, BANK(PlayRadioShow)
|
|
|
|
|
ld hl, PlayRadioShow
|
|
|
|
|
call Radio_BackUpFarCallParams
|
|
|
|
|
ld de, PlacesAndPeopleName
|
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
LoadStation_LetsAllSing: ; 917ff (24:57ff)
|
|
|
|
|
ld a, LETS_ALL_SING
|
|
|
|
|
ld [wd002], a
|
|
|
|
|
xor a
|
|
|
|
|
ld [wd005], a
|
|
|
|
|
ld a, BANK(PlayRadioShow)
|
|
|
|
|
ld hl, PlayRadioShow
|
|
|
|
|
call Radio_BackUpFarCallParams
|
|
|
|
|
ld de, LetsAllSingName
|
|
|
|
|
ret
|
|
|
|
|
; 91814 (24:5814)
|
|
|
|
|
|
|
|
|
|
LoadStation_RocketRadio: ; 91814
|
|
|
|
|
ld a, ROCKET_RADIO
|
|
|
|
|
ld [wd002], a
|
|
|
|
|
xor a
|
|
|
|
|
ld [wd005], a
|
|
|
|
|
ld a, BANK(PlayRadioShow)
|
|
|
|
|
ld hl, PlayRadioShow
|
|
|
|
|
call Radio_BackUpFarCallParams
|
|
|
|
|
ld de, LetsAllSingName
|
|
|
|
|
ret
|
|
|
|
|
; 91829
|
|
|
|
|
|
|
|
|
|
LoadStation_PokeFluteRadio: ; 91829 (24:5829)
|
|
|
|
|
ld a, POKE_FLUTE_RADIO
|
|
|
|
|
ld [wd002], a
|
|
|
|
|
xor a
|
|
|
|
|
ld [wd005], a
|
|
|
|
|
ld a, BANK(PlayRadioShow)
|
|
|
|
|
ld hl, PlayRadioShow
|
|
|
|
|
call Radio_BackUpFarCallParams
|
|
|
|
|
ld de, PokeFluteStationName
|
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
LoadStation_EvolutionRadio: ; 9183e (24:583e)
|
|
|
|
|
ld a, EVOLUTION_RADIO
|
|
|
|
|
ld [wd002], a
|
|
|
|
|
xor a
|
|
|
|
|
ld [wd005], a
|
|
|
|
|
ld a, BANK(PlayRadioShow)
|
|
|
|
|
ld hl, PlayRadioShow
|
|
|
|
|
call Radio_BackUpFarCallParams
|
|
|
|
|
ld de, UnknownStationName
|
|
|
|
|
ret
|
|
|
|
|
; 91853 (24:5853)
|
|
|
|
|
|
|
|
|
|
LoadStation_Dummy: ; 91853
|
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
RadioMusicRestartDE: ; 91854 (24:5854)
|
|
|
|
|
push de
|
|
|
|
|
ld a, e
|
|
|
|
|
ld [wc6dc], a
|
|
|
|
|
ld de, MUSIC_NONE
|
|
|
|
|
call PlayMusic
|
|
|
|
|
pop de
|
|
|
|
|
ld a, e
|
|
|
|
|
ld [wMapMusic], a
|
|
|
|
|
call PlayMusic
|
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
RadioMusicRestartPokemonChannel: ; 91868 (24:5868)
|
|
|
|
|
push de
|
|
|
|
|
ld a, $fe
|
|
|
|
|
ld [wc6dc], a
|
|
|
|
|
ld de, MUSIC_NONE
|
|
|
|
|
call PlayMusic
|
|
|
|
|
pop de
|
|
|
|
|
ld de, MUSIC_POKEMON_CHANNEL
|
|
|
|
|
call PlayMusic
|
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
Radio_BackUpFarCallParams: ; 9187c (24:587c)
|
|
|
|
|
ld [wc6d9], a
|
|
|
|
|
ld a, l
|
|
|
|
|
ld [wc6da], a
|
|
|
|
|
ld a, h
|
|
|
|
|
ld [wc6db], a
|
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
NoRadioStation: ; 91888 (24:5888)
|
|
|
|
|
call NoRadioMusic
|
|
|
|
|
call NoRadioName
|
|
|
|
|
xor a
|
|
|
|
|
ld [wc6d9], a
|
|
|
|
|
ld [wc6da], a
|
|
|
|
|
ld [wc6db], a
|
|
|
|
|
ld a, $1
|
|
|
|
|
ld [hBGMapMode], a
|
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
NoRadioMusic: ; 9189d (24:589d)
|
|
|
|
|
ld de, MUSIC_NONE
|
|
|
|
|
call PlayMusic
|
|
|
|
|
ld a, $ff
|
|
|
|
|
ld [wc6dc], a
|
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
NoRadioName: ; 918a9 (24:58a9)
|
|
|
|
|
xor a
|
|
|
|
|
ld [hBGMapMode], a
|
|
|
|
|
hlcoord 1, 8
|
|
|
|
|
lb bc, 3, 18
|
|
|
|
|
call ClearBox
|
|
|
|
|
hlcoord 0, 12
|
|
|
|
|
ld bc, $412
|
|
|
|
|
call TextBox
|
|
|
|
|
ret
|
|
|
|
|
; 918bf
|
|
|
|
|
|
|
|
|
|
OaksPkmnTalkName: db "OAK's <PK><MN> Talk@"
|
|
|
|
|
PokedexShowName: db "#DEX Show@"
|
|
|
|
|
PokemonMusicName: db "#MON Music@"
|
|
|
|
|
LuckyChannelName: db "Lucky Channel@"
|
|
|
|
|
UnknownStationName: db "?????@"
|
|
|
|
|
PlacesAndPeopleName: db "Places & People@"
|
|
|
|
|
LetsAllSingName: db "Let's All Sing!@"
|
|
|
|
|
PokeFluteStationName: db "# FLUTE@"
|
|
|
|
|
; 9191c
|
|
|
|
|
|
|
|
|
|
INCLUDE "engine/town_map.asm"
|
|
|
|
|
|
|
|
|
|
PlayRadio: ; 91a53
|
|
|
|
|
ld hl, Options
|
|
|
|
|
ld a, [hl]
|
|
|
|
|
push af
|
|
|
|
|
set 4, [hl]
|
|
|
|
|
call .PlayStation
|
|
|
|
|
ld c, 100
|
|
|
|
|
call DelayFrames
|
|
|
|
|
.loop
|
|
|
|
|
call JoyTextDelay
|
|
|
|
|
ld a, [hJoyPressed]
|
|
|
|
|
and A_BUTTON | B_BUTTON
|
|
|
|
|
jr nz, .stop
|
|
|
|
|
ld a, [wc6da]
|
|
|
|
|
ld l, a
|
|
|
|
|
ld a, [wc6db]
|
|
|
|
|
ld h, a
|
|
|
|
|
ld a, [wc6d9]
|
|
|
|
|
and a
|
|
|
|
|
jr z, .zero
|
|
|
|
|
rst FarCall
|
|
|
|
|
|
|
|
|
|
.zero
|
|
|
|
|
call DelayFrame
|
|
|
|
|
jr .loop
|
|
|
|
|
|
|
|
|
|
.stop
|
|
|
|
|
pop af
|
|
|
|
|
ld [Options], a
|
|
|
|
|
call Function91492
|
|
|
|
|
ret
|
|
|
|
|
; 91a87
|
|
|
|
|
|
|
|
|
|
.PlayStation: ; 91a87
|
|
|
|
|
ld a, -1
|
|
|
|
|
ld [EnemyTurnsTaken], a
|
|
|
|
|
ld hl, .StationPointers
|
|
|
|
|
ld d, $0
|
|
|
|
|
rept 2
|
|
|
|
|
add hl, de
|
|
|
|
|
endr
|
|
|
|
|
ld a, [hli]
|
|
|
|
|
ld h, [hl]
|
|
|
|
|
ld l, a
|
|
|
|
|
ld de, .jump_return
|
|
|
|
|
push de
|
|
|
|
|
jp [hl]
|
|
|
|
|
|
|
|
|
|
.jump_return
|
|
|
|
|
push de
|
|
|
|
|
hlcoord 0, 12
|
|
|
|
|
lb bc, 4, 18
|
|
|
|
|
call TextBox
|
|
|
|
|
hlcoord 1, 14
|
|
|
|
|
ld [hl], $72
|
|
|
|
|
pop de
|
|
|
|
|
hlcoord 2, 14
|
|
|
|
|
call PlaceString
|
|
|
|
|
ld h, b
|
|
|
|
|
ld l, c
|
|
|
|
|
ld [hl], $73
|
|
|
|
|
call WaitBGMap
|
|
|
|
|
ret
|
|
|
|
|
; 91ab9
|
|
|
|
|
|
|
|
|
|
.StationPointers: ; 91ab9
|
|
|
|
|
dw .OakOrPnP
|
|
|
|
|
dw LoadStation_OaksPokemonTalk
|
|
|
|
|
dw LoadStation_PokedexShow
|
|
|
|
|
dw LoadStation_PokemonMusic
|
|
|
|
|
dw LoadStation_LuckyChannel
|
|
|
|
|
dw LoadStation_UnownRadio
|
|
|
|
|
dw LoadStation_PlacesAndPeople
|
|
|
|
|
dw LoadStation_LetsAllSing
|
|
|
|
|
dw LoadStation_RocketRadio
|
|
|
|
|
; 91acb
|
|
|
|
|
|
|
|
|
|
.OakOrPnP: ; 91acb
|
|
|
|
|
call IsInJohto
|
|
|
|
|
and a
|
|
|
|
|
jr nz, .kanto
|
|
|
|
|
call UpdateTime
|
|
|
|
|
ld a, [TimeOfDay]
|
|
|
|
|
and a
|
|
|
|
|
jp z, LoadStation_PokedexShow
|
|
|
|
|
jp LoadStation_OaksPokemonTalk
|
|
|
|
|
|
|
|
|
|
.kanto
|
|
|
|
|
jp LoadStation_PlacesAndPeople
|
|
|
|
|
; 91ae1
|
2015-11-18 15:35:44 -08:00
|
|
|
|
|
|
|
|
|
PokegearMap: ; 91ae1
|
2015-11-16 18:07:26 -08:00
|
|
|
|
ld a, e
|
|
|
|
|
and a
|
|
|
|
|
jr nz, .kanto
|
2015-12-09 08:38:40 -08:00
|
|
|
|
call LoadTownMapGFX
|
2015-11-16 18:07:26 -08:00
|
|
|
|
call FillJohtoMap
|
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
.kanto
|
2015-12-09 08:38:40 -08:00
|
|
|
|
call LoadTownMapGFX
|
2015-11-16 18:07:26 -08:00
|
|
|
|
call FillKantoMap
|
|
|
|
|
ret
|
|
|
|
|
; 91af3
|
|
|
|
|
|
|
|
|
|
_FlyMap: ; 91af3
|
|
|
|
|
call ClearBGPalettes
|
|
|
|
|
call ClearTileMap
|
|
|
|
|
call ClearSprites
|
|
|
|
|
ld hl, hInMenu
|
|
|
|
|
ld a, [hl]
|
|
|
|
|
push af
|
|
|
|
|
ld [hl], $1
|
|
|
|
|
xor a
|
|
|
|
|
ld [hBGMapMode], a
|
2015-12-01 18:54:11 -08:00
|
|
|
|
callba ClearSpriteAnims
|
2015-12-09 08:38:40 -08:00
|
|
|
|
call LoadTownMapGFX
|
|
|
|
|
ld de, FlyMapLabelBorderGFX
|
2015-11-16 18:07:26 -08:00
|
|
|
|
ld hl, VTiles2 tile $30
|
2015-12-09 08:38:40 -08:00
|
|
|
|
lb bc, BANK(FlyMapLabelBorderGFX), 6
|
2015-11-16 18:07:26 -08:00
|
|
|
|
call Request1bpp
|
|
|
|
|
call FlyMap
|
2015-12-09 08:38:40 -08:00
|
|
|
|
call ret_91c8f
|
2015-11-20 12:15:32 -08:00
|
|
|
|
ld b, SCGB_02
|
2015-11-16 18:07:26 -08:00
|
|
|
|
call GetSGBLayout
|
|
|
|
|
call SetPalettes
|
|
|
|
|
.loop
|
|
|
|
|
call JoyTextDelay
|
|
|
|
|
ld hl, hJoyPressed
|
|
|
|
|
ld a, [hl]
|
|
|
|
|
and B_BUTTON
|
|
|
|
|
jr nz, .pressedB
|
|
|
|
|
ld a, [hl]
|
|
|
|
|
and A_BUTTON
|
|
|
|
|
jr nz, .pressedA
|
|
|
|
|
call FlyMapScroll
|
|
|
|
|
call GetMapCursorCoordinates
|
2015-11-28 12:13:40 -08:00
|
|
|
|
callba PlaySpriteAnimations
|
2015-11-16 18:07:26 -08:00
|
|
|
|
call DelayFrame
|
|
|
|
|
jr .loop
|
|
|
|
|
|
|
|
|
|
.pressedB
|
|
|
|
|
ld a, -1
|
|
|
|
|
jr .exit
|
|
|
|
|
|
|
|
|
|
.pressedA
|
|
|
|
|
ld a, [wd002]
|
|
|
|
|
ld l, a
|
|
|
|
|
ld h, 0
|
|
|
|
|
add hl, hl
|
|
|
|
|
ld de, Flypoints + 1
|
|
|
|
|
add hl, de
|
|
|
|
|
ld a, [hl]
|
|
|
|
|
|
|
|
|
|
.exit
|
|
|
|
|
ld [wd002], a
|
|
|
|
|
pop af
|
|
|
|
|
ld [hInMenu], a
|
|
|
|
|
call ClearBGPalettes
|
|
|
|
|
ld a, $90
|
|
|
|
|
ld [hWY], a
|
|
|
|
|
xor a
|
|
|
|
|
ld [hBGMapAddress], a
|
|
|
|
|
ld a, VBGMap0 / $100
|
|
|
|
|
ld [hBGMapAddress + 1], a
|
|
|
|
|
ld a, [wd002]
|
|
|
|
|
ld e, a
|
|
|
|
|
ret
|
|
|
|
|
; 91b73
|
|
|
|
|
|
|
|
|
|
FlyMapScroll: ; 91b73
|
|
|
|
|
ld a, [StartFlypoint]
|
|
|
|
|
ld e, a
|
|
|
|
|
ld a, [EndFlypoint]
|
|
|
|
|
ld d, a
|
|
|
|
|
ld hl, hJoyLast
|
|
|
|
|
ld a, [hl]
|
|
|
|
|
and D_UP
|
|
|
|
|
jr nz, .ScrollNext
|
|
|
|
|
ld a, [hl]
|
|
|
|
|
and D_DOWN
|
|
|
|
|
jr nz, .ScrollPrev
|
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
.ScrollNext
|
|
|
|
|
ld hl, wd002
|
|
|
|
|
ld a, [hl]
|
|
|
|
|
cp d
|
|
|
|
|
jr nz, .NotAtEndYet
|
|
|
|
|
ld a, e
|
|
|
|
|
dec a
|
|
|
|
|
ld [hl], a
|
|
|
|
|
|
|
|
|
|
.NotAtEndYet
|
|
|
|
|
inc [hl]
|
|
|
|
|
call CheckIfVisitedFlypoint
|
|
|
|
|
jr z, .ScrollNext
|
|
|
|
|
jr .Finally
|
|
|
|
|
|
|
|
|
|
.ScrollPrev
|
|
|
|
|
ld hl, wd002
|
|
|
|
|
ld a, [hl]
|
|
|
|
|
cp e
|
|
|
|
|
jr nz, .NotAtStartYet
|
|
|
|
|
ld a, d
|
|
|
|
|
inc a
|
|
|
|
|
ld [hl], a
|
|
|
|
|
|
|
|
|
|
.NotAtStartYet
|
|
|
|
|
dec [hl]
|
|
|
|
|
call CheckIfVisitedFlypoint
|
|
|
|
|
jr z, .ScrollPrev
|
|
|
|
|
|
|
|
|
|
.Finally
|
|
|
|
|
call TownMapBubble
|
|
|
|
|
call WaitBGMap
|
|
|
|
|
xor a
|
|
|
|
|
ld [hBGMapMode], a
|
|
|
|
|
ret
|
|
|
|
|
; 91bb5
|
|
|
|
|
|
|
|
|
|
TownMapBubble: ; 91bb5
|
|
|
|
|
; Draw the bubble containing the location text in the town map HUD
|
|
|
|
|
|
|
|
|
|
; Top-left corner
|
|
|
|
|
hlcoord 1, 0
|
|
|
|
|
ld a, $30
|
|
|
|
|
ld [hli], a
|
|
|
|
|
|
|
|
|
|
; Top row
|
|
|
|
|
ld bc, 16
|
|
|
|
|
ld a, " "
|
|
|
|
|
call ByteFill
|
|
|
|
|
|
|
|
|
|
; Top-right corner
|
|
|
|
|
ld a, $31
|
|
|
|
|
ld [hl], a
|
|
|
|
|
hlcoord 1, 1
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
; Middle row
|
|
|
|
|
ld bc, 18
|
|
|
|
|
ld a, " "
|
|
|
|
|
call ByteFill
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
; Bottom-left corner
|
|
|
|
|
hlcoord 1, 2
|
|
|
|
|
ld a, $32
|
|
|
|
|
ld [hli], a
|
|
|
|
|
|
|
|
|
|
; Bottom row
|
|
|
|
|
ld bc, 16
|
|
|
|
|
ld a, " "
|
|
|
|
|
call ByteFill
|
|
|
|
|
|
|
|
|
|
; Bottom-right corner
|
|
|
|
|
ld a, $33
|
|
|
|
|
ld [hl], a
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
; Print "Where?"
|
|
|
|
|
hlcoord 2, 0
|
|
|
|
|
ld de, .Where
|
|
|
|
|
call PlaceString
|
|
|
|
|
|
|
|
|
|
; Print the name of the default flypoint
|
|
|
|
|
call .Name
|
|
|
|
|
|
|
|
|
|
; Up/down arrows
|
|
|
|
|
hlcoord 18, 1
|
|
|
|
|
ld [hl], $34
|
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
.Where
|
|
|
|
|
db "Where?@"
|
|
|
|
|
|
|
|
|
|
.Name
|
|
|
|
|
; We need the map location of the default flypoint
|
|
|
|
|
ld a, [wd002]
|
|
|
|
|
ld l, a
|
|
|
|
|
ld h, 0
|
|
|
|
|
add hl, hl ; two bytes per flypoint
|
|
|
|
|
ld de, Flypoints
|
|
|
|
|
add hl, de
|
|
|
|
|
ld e, [hl]
|
|
|
|
|
|
|
|
|
|
callba GetLandmarkName
|
|
|
|
|
|
|
|
|
|
hlcoord 2, 1
|
|
|
|
|
ld de, StringBuffer1
|
|
|
|
|
call PlaceString
|
|
|
|
|
ret
|
|
|
|
|
; 91c17
|
|
|
|
|
|
|
|
|
|
GetMapCursorCoordinates: ; 91c17
|
|
|
|
|
ld a, [wd002]
|
|
|
|
|
ld l, a
|
|
|
|
|
ld h, $0
|
|
|
|
|
add hl, hl
|
|
|
|
|
ld de, Flypoints
|
|
|
|
|
add hl, de
|
|
|
|
|
ld e, [hl]
|
|
|
|
|
callba GetLandmarkCoords
|
|
|
|
|
ld a, [wd003]
|
|
|
|
|
ld c, a
|
|
|
|
|
ld a, [wd004]
|
|
|
|
|
ld b, a
|
|
|
|
|
ld hl, $4
|
|
|
|
|
add hl, bc
|
|
|
|
|
ld [hl], e
|
|
|
|
|
ld hl, $5
|
|
|
|
|
add hl, bc
|
|
|
|
|
ld [hl], d
|
|
|
|
|
ret
|
|
|
|
|
; 91c3c
|
|
|
|
|
|
|
|
|
|
CheckIfVisitedFlypoint: ; 91c3c
|
|
|
|
|
; Check if the flypoint loaded in [hl] has been visited yet.
|
|
|
|
|
push bc
|
|
|
|
|
push de
|
|
|
|
|
push hl
|
|
|
|
|
ld l, [hl]
|
|
|
|
|
ld h, 0
|
|
|
|
|
add hl, hl
|
|
|
|
|
ld de, Flypoints + 1
|
|
|
|
|
add hl, de
|
|
|
|
|
ld c, [hl]
|
|
|
|
|
call HasVisitedSpawn
|
|
|
|
|
pop hl
|
|
|
|
|
pop de
|
|
|
|
|
pop bc
|
|
|
|
|
and a
|
|
|
|
|
ret
|
|
|
|
|
; 91c50
|
|
|
|
|
|
|
|
|
|
HasVisitedSpawn: ; 91c50
|
|
|
|
|
; Check if spawn point c has been visited.
|
|
|
|
|
ld hl, VisitedSpawns
|
|
|
|
|
ld b, CHECK_FLAG
|
|
|
|
|
ld d, 0
|
|
|
|
|
predef FlagPredef
|
|
|
|
|
ld a, c
|
|
|
|
|
ret
|
|
|
|
|
; 91c5e
|
|
|
|
|
|
|
|
|
|
Flypoints: ; 91c5e
|
|
|
|
|
; landmark, spawn point
|
|
|
|
|
|
|
|
|
|
const_def
|
|
|
|
|
|
|
|
|
|
flypoint: MACRO
|
|
|
|
|
const FLY_\1
|
|
|
|
|
db \2, SPAWN_\1
|
|
|
|
|
ENDM
|
|
|
|
|
|
|
|
|
|
; Johto
|
|
|
|
|
flypoint NEW_BARK, NEW_BARK_TOWN
|
|
|
|
|
flypoint CHERRYGROVE, CHERRYGROVE_CITY
|
|
|
|
|
flypoint VIOLET, VIOLET_CITY
|
|
|
|
|
flypoint AZALEA, AZALEA_TOWN
|
|
|
|
|
flypoint GOLDENROD, GOLDENROD_CITY
|
|
|
|
|
flypoint ECRUTEAK, ECRUTEAK_CITY
|
|
|
|
|
flypoint OLIVINE, OLIVINE_CITY
|
|
|
|
|
flypoint CIANWOOD, CIANWOOD_CITY
|
|
|
|
|
flypoint MAHOGANY, MAHOGANY_TOWN
|
|
|
|
|
flypoint LAKE, LAKE_OF_RAGE
|
|
|
|
|
flypoint BLACKTHORN, BLACKTHORN_CITY
|
|
|
|
|
flypoint MT_SILVER, SILVER_CAVE
|
|
|
|
|
|
|
|
|
|
; Kanto
|
|
|
|
|
KANTO_FLYPOINT EQU const_value
|
|
|
|
|
|
|
|
|
|
flypoint PALLET, PALLET_TOWN
|
|
|
|
|
flypoint VIRIDIAN, VIRIDIAN_CITY
|
|
|
|
|
flypoint PEWTER, PEWTER_CITY
|
|
|
|
|
flypoint CERULEAN, CERULEAN_CITY
|
|
|
|
|
flypoint VERMILION, VERMILION_CITY
|
|
|
|
|
flypoint ROCK_TUNNEL, ROCK_TUNNEL
|
|
|
|
|
flypoint LAVENDER, LAVENDER_TOWN
|
|
|
|
|
flypoint CELADON, CELADON_CITY
|
|
|
|
|
flypoint SAFFRON, SAFFRON_CITY
|
|
|
|
|
flypoint FUCHSIA, FUCHSIA_CITY
|
|
|
|
|
flypoint CINNABAR, CINNABAR_ISLAND
|
|
|
|
|
flypoint INDIGO, INDIGO_PLATEAU
|
|
|
|
|
|
|
|
|
|
db -1
|
|
|
|
|
; 91c8f
|
|
|
|
|
|
2015-12-09 08:38:40 -08:00
|
|
|
|
ret_91c8f: ; 91c8f
|
2015-11-16 18:07:26 -08:00
|
|
|
|
ret
|
|
|
|
|
; 91c90
|
|
|
|
|
|
|
|
|
|
FlyMap: ; 91c90
|
|
|
|
|
|
|
|
|
|
ld a, [MapGroup]
|
|
|
|
|
ld b, a
|
|
|
|
|
ld a, [MapNumber]
|
|
|
|
|
ld c, a
|
|
|
|
|
call GetWorldMapLocation
|
|
|
|
|
|
|
|
|
|
; If we're not in a valid location, i.e. Pokecenter floor 2F,
|
|
|
|
|
; the backup map information is used
|
|
|
|
|
|
|
|
|
|
cp SPECIAL_MAP
|
|
|
|
|
jr nz, .CheckRegion
|
|
|
|
|
|
|
|
|
|
ld a, [BackupMapGroup]
|
|
|
|
|
ld b, a
|
|
|
|
|
ld a, [BackupMapNumber]
|
|
|
|
|
ld c, a
|
|
|
|
|
call GetWorldMapLocation
|
|
|
|
|
|
|
|
|
|
.CheckRegion
|
|
|
|
|
; The first 46 locations are part of Johto. The rest are in Kanto
|
|
|
|
|
cp KANTO_LANDMARK
|
|
|
|
|
jr nc, .KantoFlyMap
|
|
|
|
|
|
|
|
|
|
.JohtoFlyMap
|
|
|
|
|
; Note that .NoKanto should be modified in tandem with this branch
|
|
|
|
|
|
|
|
|
|
push af
|
|
|
|
|
|
|
|
|
|
; Start from New Bark Town
|
|
|
|
|
ld a, FLY_NEW_BARK
|
|
|
|
|
ld [wd002], a
|
|
|
|
|
|
|
|
|
|
; Flypoints begin at New Bark Town...
|
|
|
|
|
ld [StartFlypoint], a
|
|
|
|
|
; ..and end at Silver Cave
|
|
|
|
|
ld a, FLY_MT_SILVER
|
|
|
|
|
ld [EndFlypoint], a
|
|
|
|
|
|
|
|
|
|
; Fill out the map
|
|
|
|
|
call FillJohtoMap
|
|
|
|
|
call .MapHud
|
|
|
|
|
pop af
|
|
|
|
|
call TownMapPlayerIcon
|
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
.KantoFlyMap
|
|
|
|
|
|
|
|
|
|
; The event that there are no flypoints enabled in a map is not
|
|
|
|
|
; accounted for. As a result, if you attempt to select a flypoint
|
|
|
|
|
; when there are none enabled, the game will crash. Additionally,
|
|
|
|
|
; the flypoint selection has a default starting point that
|
|
|
|
|
; can be flown to even if none are enabled
|
|
|
|
|
|
|
|
|
|
; To prevent both of these things from happening when the player
|
|
|
|
|
; enters Kanto, fly access is restricted until Indigo Plateau is
|
|
|
|
|
; visited and its flypoint enabled
|
|
|
|
|
|
|
|
|
|
push af
|
|
|
|
|
ld c, SPAWN_INDIGO
|
|
|
|
|
call HasVisitedSpawn
|
|
|
|
|
and a
|
|
|
|
|
jr z, .NoKanto
|
|
|
|
|
|
|
|
|
|
; Kanto's map is only loaded if we've visited Indigo Plateau
|
|
|
|
|
|
|
|
|
|
; Flypoints begin at Pallet Town...
|
|
|
|
|
ld a, FLY_PALLET
|
|
|
|
|
ld [StartFlypoint], a
|
|
|
|
|
; ...and end at Indigo Plateau
|
|
|
|
|
ld a, FLY_INDIGO
|
|
|
|
|
ld [EndFlypoint], a
|
|
|
|
|
|
|
|
|
|
; Because Indigo Plateau is the first flypoint the player
|
|
|
|
|
; visits, it's made the default flypoint
|
|
|
|
|
ld [wd002], a
|
|
|
|
|
|
|
|
|
|
; Fill out the map
|
|
|
|
|
call FillKantoMap
|
|
|
|
|
call .MapHud
|
|
|
|
|
pop af
|
|
|
|
|
call TownMapPlayerIcon
|
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
.NoKanto
|
|
|
|
|
; If Indigo Plateau hasn't been visited, we use Johto's map instead
|
|
|
|
|
|
|
|
|
|
; Start from New Bark Town
|
|
|
|
|
ld a, FLY_NEW_BARK
|
|
|
|
|
ld [wd002], a
|
|
|
|
|
|
|
|
|
|
; Flypoints begin at New Bark Town...
|
|
|
|
|
ld [StartFlypoint], a
|
|
|
|
|
; ..and end at Silver Cave
|
|
|
|
|
ld a, FLY_MT_SILVER
|
|
|
|
|
ld [EndFlypoint], a
|
|
|
|
|
|
|
|
|
|
call FillJohtoMap
|
|
|
|
|
|
|
|
|
|
pop af
|
|
|
|
|
|
|
|
|
|
.MapHud
|
|
|
|
|
call TownMapBubble
|
|
|
|
|
call TownMapPals
|
|
|
|
|
|
2015-11-20 08:47:52 -08:00
|
|
|
|
hlbgcoord 0, 0 ; BG Map 0
|
2015-11-16 18:07:26 -08:00
|
|
|
|
call TownMapBGUpdate
|
|
|
|
|
|
|
|
|
|
call TownMapMon
|
|
|
|
|
ld a, c
|
|
|
|
|
ld [wd003], a
|
|
|
|
|
ld a, b
|
|
|
|
|
ld [wd004], a
|
|
|
|
|
ret
|
|
|
|
|
; 91d11
|
|
|
|
|
|
2015-12-09 08:38:40 -08:00
|
|
|
|
_Area: ; 91d11
|
|
|
|
|
; e: Current landmark
|
2015-11-16 18:07:26 -08:00
|
|
|
|
ld a, [wd002]
|
|
|
|
|
push af
|
|
|
|
|
ld a, [wd003]
|
|
|
|
|
push af
|
|
|
|
|
ld a, e
|
|
|
|
|
ld [wd002], a
|
|
|
|
|
call ClearSprites
|
|
|
|
|
xor a
|
|
|
|
|
ld [hBGMapMode], a
|
|
|
|
|
ld a, $1
|
|
|
|
|
ld [hInMenu], a
|
|
|
|
|
|
2015-12-09 08:38:40 -08:00
|
|
|
|
ld de, PokedexNestIconGFX
|
2015-11-16 18:07:26 -08:00
|
|
|
|
ld hl, VTiles0 tile $7f
|
2015-12-09 08:38:40 -08:00
|
|
|
|
lb bc, BANK(PokedexNestIconGFX), 1
|
|
|
|
|
call Request2bpp
|
2015-11-16 18:07:26 -08:00
|
|
|
|
|
2015-12-09 08:38:40 -08:00
|
|
|
|
call .GetPlayerOrFastShipIcon
|
2015-11-16 18:07:26 -08:00
|
|
|
|
ld hl, VTiles0 tile $78
|
2015-12-09 08:38:40 -08:00
|
|
|
|
ld c, 4
|
2015-11-16 18:07:26 -08:00
|
|
|
|
call Request2bpp
|
|
|
|
|
|
2015-12-09 08:38:40 -08:00
|
|
|
|
call LoadTownMapGFX
|
2015-11-16 18:07:26 -08:00
|
|
|
|
call FillKantoMap
|
2015-12-09 08:38:40 -08:00
|
|
|
|
call .PlaceString_MonsNest
|
2015-11-16 18:07:26 -08:00
|
|
|
|
call TownMapPals
|
2015-11-20 08:47:52 -08:00
|
|
|
|
hlbgcoord 0, 0, VBGMap1
|
2015-11-16 18:07:26 -08:00
|
|
|
|
call TownMapBGUpdate
|
|
|
|
|
call FillJohtoMap
|
2015-12-09 08:38:40 -08:00
|
|
|
|
call .PlaceString_MonsNest
|
2015-11-16 18:07:26 -08:00
|
|
|
|
call TownMapPals
|
2015-11-20 08:47:52 -08:00
|
|
|
|
hlbgcoord 0, 0
|
2015-11-16 18:07:26 -08:00
|
|
|
|
call TownMapBGUpdate
|
2015-11-20 12:15:32 -08:00
|
|
|
|
ld b, SCGB_02
|
2015-11-16 18:07:26 -08:00
|
|
|
|
call GetSGBLayout
|
|
|
|
|
call SetPalettes
|
|
|
|
|
xor a
|
|
|
|
|
ld [hBGMapMode], a
|
2015-12-09 08:38:40 -08:00
|
|
|
|
xor a ; Johto
|
|
|
|
|
call .GetAndPlaceNest
|
2015-11-16 18:07:26 -08:00
|
|
|
|
.loop
|
|
|
|
|
call JoyTextDelay
|
|
|
|
|
ld hl, hJoyPressed
|
|
|
|
|
ld a, [hl]
|
|
|
|
|
and A_BUTTON | B_BUTTON
|
|
|
|
|
jr nz, .a_b
|
|
|
|
|
ld a, [hJoypadDown]
|
|
|
|
|
and SELECT
|
|
|
|
|
jr nz, .select
|
2015-12-09 08:38:40 -08:00
|
|
|
|
call .LeftRightInput
|
|
|
|
|
call .BlinkNestIcons
|
2015-11-16 18:07:26 -08:00
|
|
|
|
jr .next
|
|
|
|
|
|
|
|
|
|
.select
|
2015-12-09 08:38:40 -08:00
|
|
|
|
call .HideNestsShowPlayer
|
2015-11-16 18:07:26 -08:00
|
|
|
|
|
|
|
|
|
.next
|
|
|
|
|
call DelayFrame
|
|
|
|
|
jr .loop
|
|
|
|
|
|
|
|
|
|
.a_b
|
|
|
|
|
call ClearSprites
|
|
|
|
|
pop af
|
|
|
|
|
ld [wd003], a
|
|
|
|
|
pop af
|
|
|
|
|
ld [wd002], a
|
|
|
|
|
ret
|
|
|
|
|
; 91d9b
|
|
|
|
|
|
2015-12-09 08:38:40 -08:00
|
|
|
|
.LeftRightInput: ; 91d9b
|
2015-11-16 18:07:26 -08:00
|
|
|
|
ld a, [hl]
|
2015-12-09 08:38:40 -08:00
|
|
|
|
and D_LEFT
|
|
|
|
|
jr nz, .left
|
2015-11-16 18:07:26 -08:00
|
|
|
|
ld a, [hl]
|
2015-12-09 08:38:40 -08:00
|
|
|
|
and D_RIGHT
|
|
|
|
|
jr nz, .right
|
2015-11-16 18:07:26 -08:00
|
|
|
|
ret
|
|
|
|
|
|
2015-12-09 08:38:40 -08:00
|
|
|
|
.left
|
2015-11-16 18:07:26 -08:00
|
|
|
|
ld a, [hWY]
|
|
|
|
|
cp $90
|
|
|
|
|
ret z
|
|
|
|
|
call ClearSprites
|
|
|
|
|
ld a, $90
|
|
|
|
|
ld [hWY], a
|
2015-12-09 08:38:40 -08:00
|
|
|
|
xor a ; Johto
|
|
|
|
|
call .GetAndPlaceNest
|
2015-11-16 18:07:26 -08:00
|
|
|
|
ret
|
|
|
|
|
|
2015-12-09 08:38:40 -08:00
|
|
|
|
.right
|
2015-11-16 18:07:26 -08:00
|
|
|
|
ld a, [StatusFlags]
|
|
|
|
|
bit 6, a ; hall of fame
|
|
|
|
|
ret z
|
|
|
|
|
ld a, [hWY]
|
|
|
|
|
and a
|
|
|
|
|
ret z
|
|
|
|
|
call ClearSprites
|
|
|
|
|
xor a
|
|
|
|
|
ld [hWY], a
|
2015-12-09 08:38:40 -08:00
|
|
|
|
ld a, 1 ; Kanto
|
|
|
|
|
call .GetAndPlaceNest
|
2015-11-16 18:07:26 -08:00
|
|
|
|
ret
|
|
|
|
|
; 91dcd
|
|
|
|
|
|
2015-12-09 08:38:40 -08:00
|
|
|
|
.BlinkNestIcons: ; 91dcd
|
2015-11-16 18:07:26 -08:00
|
|
|
|
ld a, [hVBlankCounter]
|
|
|
|
|
ld e, a
|
|
|
|
|
and $f
|
|
|
|
|
ret nz
|
|
|
|
|
ld a, e
|
|
|
|
|
and $10
|
2015-12-09 08:38:40 -08:00
|
|
|
|
jr nz, .copy_sprites
|
2015-11-16 18:07:26 -08:00
|
|
|
|
call ClearSprites
|
|
|
|
|
ret
|
|
|
|
|
|
2015-12-09 08:38:40 -08:00
|
|
|
|
.copy_sprites
|
2015-11-16 18:07:26 -08:00
|
|
|
|
hlcoord 0, 0
|
|
|
|
|
ld de, Sprites
|
2015-12-09 08:38:40 -08:00
|
|
|
|
ld bc, SpritesEnd - Sprites
|
2015-11-16 18:07:26 -08:00
|
|
|
|
call CopyBytes
|
|
|
|
|
ret
|
|
|
|
|
; 91de9
|
|
|
|
|
|
2015-12-09 08:38:40 -08:00
|
|
|
|
.PlaceString_MonsNest: ; 91de9
|
2015-11-16 18:07:26 -08:00
|
|
|
|
hlcoord 0, 0
|
|
|
|
|
ld bc, SCREEN_WIDTH
|
2015-12-09 08:38:40 -08:00
|
|
|
|
ld a, " "
|
2015-11-16 18:07:26 -08:00
|
|
|
|
call ByteFill
|
|
|
|
|
hlcoord 0, 1
|
|
|
|
|
ld a, $6
|
|
|
|
|
ld [hli], a
|
2015-12-09 08:38:40 -08:00
|
|
|
|
ld bc, SCREEN_WIDTH - 2
|
2015-11-16 18:07:26 -08:00
|
|
|
|
ld a, $7
|
|
|
|
|
call ByteFill
|
|
|
|
|
ld [hl], $17
|
|
|
|
|
call GetPokemonName
|
|
|
|
|
hlcoord 2, 0
|
|
|
|
|
call PlaceString
|
|
|
|
|
ld h, b
|
|
|
|
|
ld l, c
|
2015-12-09 08:38:40 -08:00
|
|
|
|
ld de, .String_SNest
|
2015-11-16 18:07:26 -08:00
|
|
|
|
call PlaceString
|
|
|
|
|
ret
|
|
|
|
|
; 91e16
|
|
|
|
|
|
2015-12-09 08:38:40 -08:00
|
|
|
|
.String_SNest:
|
2015-11-16 18:07:26 -08:00
|
|
|
|
db "'S NEST@"
|
|
|
|
|
; 91e1e
|
|
|
|
|
|
2015-12-09 08:38:40 -08:00
|
|
|
|
.GetAndPlaceNest: ; 91e1e
|
2015-11-16 18:07:26 -08:00
|
|
|
|
ld [wd003], a
|
|
|
|
|
ld e, a
|
2015-12-09 08:38:40 -08:00
|
|
|
|
callba FindNest ; load nest landmarks into TileMap[0,0]
|
2015-11-16 18:07:26 -08:00
|
|
|
|
decoord 0, 0
|
|
|
|
|
ld hl, Sprites
|
2015-12-09 08:38:40 -08:00
|
|
|
|
.nestloop
|
2015-11-16 18:07:26 -08:00
|
|
|
|
ld a, [de]
|
|
|
|
|
and a
|
2015-12-09 08:38:40 -08:00
|
|
|
|
jr z, .done_nest
|
2015-11-16 18:07:26 -08:00
|
|
|
|
push de
|
|
|
|
|
ld e, a
|
|
|
|
|
push hl
|
|
|
|
|
callba GetLandmarkCoords
|
|
|
|
|
pop hl
|
2015-12-09 08:38:40 -08:00
|
|
|
|
; load into OAM
|
2015-11-16 18:07:26 -08:00
|
|
|
|
ld a, d
|
2015-12-09 08:38:40 -08:00
|
|
|
|
sub 4
|
2015-11-16 18:07:26 -08:00
|
|
|
|
ld [hli], a
|
|
|
|
|
ld a, e
|
2015-12-09 08:38:40 -08:00
|
|
|
|
sub 4
|
2015-11-16 18:07:26 -08:00
|
|
|
|
ld [hli], a
|
2015-12-09 08:38:40 -08:00
|
|
|
|
ld a, $7f ; nest icon in this context
|
2015-11-16 18:07:26 -08:00
|
|
|
|
ld [hli], a
|
|
|
|
|
xor a
|
|
|
|
|
ld [hli], a
|
2015-12-09 08:38:40 -08:00
|
|
|
|
; next
|
2015-11-16 18:07:26 -08:00
|
|
|
|
pop de
|
|
|
|
|
inc de
|
2015-12-09 08:38:40 -08:00
|
|
|
|
jr .nestloop
|
2015-11-16 18:07:26 -08:00
|
|
|
|
|
2015-12-09 08:38:40 -08:00
|
|
|
|
.done_nest
|
2015-11-16 18:07:26 -08:00
|
|
|
|
ld hl, Sprites
|
|
|
|
|
decoord 0, 0
|
2015-12-09 08:38:40 -08:00
|
|
|
|
ld bc, SpritesEnd - Sprites
|
2015-11-16 18:07:26 -08:00
|
|
|
|
call CopyBytes
|
|
|
|
|
ret
|
|
|
|
|
; 91e5a
|
|
|
|
|
|
2015-12-09 08:38:40 -08:00
|
|
|
|
.HideNestsShowPlayer: ; 91e5a
|
|
|
|
|
call .CheckPlayerLocation
|
2015-11-16 18:07:26 -08:00
|
|
|
|
ret c
|
|
|
|
|
|
|
|
|
|
ld a, [wd002]
|
|
|
|
|
ld e, a
|
|
|
|
|
callba GetLandmarkCoords
|
|
|
|
|
ld c, e
|
|
|
|
|
ld b, d
|
2015-12-09 08:38:40 -08:00
|
|
|
|
ld de, .PlayerOAM
|
2015-11-16 18:07:26 -08:00
|
|
|
|
ld hl, Sprites
|
2015-12-09 08:38:40 -08:00
|
|
|
|
.ShowPlayerLoop
|
2015-11-16 18:07:26 -08:00
|
|
|
|
ld a, [de]
|
|
|
|
|
cp $80
|
2015-12-09 08:38:40 -08:00
|
|
|
|
jr z, .copy
|
2015-11-16 18:07:26 -08:00
|
|
|
|
|
|
|
|
|
add b
|
|
|
|
|
ld [hli], a
|
|
|
|
|
inc de
|
|
|
|
|
|
|
|
|
|
ld a, [de]
|
|
|
|
|
add c
|
|
|
|
|
ld [hli], a
|
|
|
|
|
inc de
|
|
|
|
|
|
|
|
|
|
ld a, [de]
|
2015-12-09 08:38:40 -08:00
|
|
|
|
add $78 ; where the player's sprite is loaded
|
2015-11-16 18:07:26 -08:00
|
|
|
|
ld [hli], a
|
|
|
|
|
inc de
|
|
|
|
|
|
|
|
|
|
push bc
|
2015-12-09 08:38:40 -08:00
|
|
|
|
ld c, 0 ; RED
|
2015-11-16 18:07:26 -08:00
|
|
|
|
ld a, [PlayerGender]
|
|
|
|
|
bit 0, a
|
2015-12-09 08:38:40 -08:00
|
|
|
|
jr z, .got_gender
|
|
|
|
|
inc c ; BLUE
|
|
|
|
|
.got_gender
|
2015-11-16 18:07:26 -08:00
|
|
|
|
ld a, c
|
|
|
|
|
ld [hli], a
|
|
|
|
|
pop bc
|
|
|
|
|
|
2015-12-09 08:38:40 -08:00
|
|
|
|
jr .ShowPlayerLoop
|
2015-11-16 18:07:26 -08:00
|
|
|
|
|
2015-12-09 08:38:40 -08:00
|
|
|
|
.copy
|
2015-11-16 18:07:26 -08:00
|
|
|
|
ld hl, Sprites + $10
|
|
|
|
|
ld bc, SpritesEnd - (Sprites + $10)
|
|
|
|
|
xor a
|
|
|
|
|
call ByteFill
|
|
|
|
|
ret
|
|
|
|
|
; 91e9c
|
|
|
|
|
|
2015-12-09 08:38:40 -08:00
|
|
|
|
.PlayerOAM: ; 91e9c
|
|
|
|
|
db -1 * 8, -1 * 8, 0 ; top left
|
|
|
|
|
db -1 * 8, 0 * 8, 1 ; top right
|
|
|
|
|
db 0 * 8, -1 * 8, 2 ; bottom left
|
|
|
|
|
db 0 * 8, 0 * 8, 3 ; bottom right
|
2015-11-16 18:07:26 -08:00
|
|
|
|
db $80 ; terminator
|
|
|
|
|
; 91ea9
|
|
|
|
|
|
2015-12-09 08:38:40 -08:00
|
|
|
|
.CheckPlayerLocation: ; 91ea9
|
|
|
|
|
; Don't show the player's sprite if you're
|
|
|
|
|
; not in the same region as what's currently
|
|
|
|
|
; on the screen.
|
2015-11-16 18:07:26 -08:00
|
|
|
|
ld a, [wd002]
|
|
|
|
|
cp FAST_SHIP
|
|
|
|
|
jr z, .johto
|
|
|
|
|
cp KANTO_LANDMARK
|
|
|
|
|
jr c, .johto
|
|
|
|
|
|
|
|
|
|
.kanto
|
|
|
|
|
ld a, [wd003]
|
|
|
|
|
and a
|
|
|
|
|
jr z, .clear
|
|
|
|
|
jr .ok
|
|
|
|
|
|
|
|
|
|
.johto
|
|
|
|
|
ld a, [wd003]
|
|
|
|
|
and a
|
|
|
|
|
jr nz, .clear
|
|
|
|
|
|
|
|
|
|
.ok
|
|
|
|
|
and a
|
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
.clear
|
|
|
|
|
ld hl, Sprites
|
|
|
|
|
ld bc, SpritesEnd - Sprites
|
|
|
|
|
xor a
|
|
|
|
|
call ByteFill
|
|
|
|
|
scf
|
|
|
|
|
ret
|
|
|
|
|
; 91ed0
|
|
|
|
|
|
2015-12-09 08:38:40 -08:00
|
|
|
|
.GetPlayerOrFastShipIcon: ; 91ed0
|
2015-11-16 18:07:26 -08:00
|
|
|
|
ld a, [wd002]
|
|
|
|
|
cp FAST_SHIP
|
2015-12-09 08:38:40 -08:00
|
|
|
|
jr z, .FastShip
|
2015-11-16 18:07:26 -08:00
|
|
|
|
callba GetPlayerIcon
|
|
|
|
|
ret
|
|
|
|
|
|
2015-12-09 08:38:40 -08:00
|
|
|
|
.FastShip
|
2015-11-16 18:07:26 -08:00
|
|
|
|
ld de, FastShipGFX
|
|
|
|
|
ld b, BANK(FastShipGFX)
|
|
|
|
|
ret
|
|
|
|
|
; 91ee4
|
|
|
|
|
|
|
|
|
|
TownMapBGUpdate: ; 91ee4
|
|
|
|
|
; Update BG Map tiles and attributes
|
|
|
|
|
|
|
|
|
|
; BG Map address
|
|
|
|
|
ld a, l
|
|
|
|
|
ld [hBGMapAddress], a
|
|
|
|
|
ld a, h
|
|
|
|
|
ld [hBGMapAddress + 1], a
|
|
|
|
|
|
|
|
|
|
; Only update palettes on CGB
|
|
|
|
|
ld a, [hCGB]
|
|
|
|
|
and a
|
|
|
|
|
jr z, .tiles
|
|
|
|
|
|
|
|
|
|
; BG Map mode 2 (palettes)
|
|
|
|
|
ld a, 2
|
|
|
|
|
ld [hBGMapMode], a
|
|
|
|
|
|
|
|
|
|
; The BG Map is updated in thirds, so we wait
|
|
|
|
|
; 3 frames to update the whole screen's palettes.
|
|
|
|
|
ld c, 3
|
|
|
|
|
call DelayFrames
|
|
|
|
|
|
|
|
|
|
.tiles
|
|
|
|
|
; Update BG Map tiles
|
|
|
|
|
call WaitBGMap
|
|
|
|
|
|
|
|
|
|
; Turn off BG Map update
|
|
|
|
|
xor a
|
|
|
|
|
ld [hBGMapMode], a
|
|
|
|
|
ret
|
|
|
|
|
; 91eff
|
|
|
|
|
|
|
|
|
|
FillJohtoMap: ; 91eff
|
|
|
|
|
ld de, JohtoMap
|
|
|
|
|
jr FillTownMap
|
|
|
|
|
|
|
|
|
|
FillKantoMap: ; 91f04
|
|
|
|
|
ld de, KantoMap
|
|
|
|
|
|
|
|
|
|
FillTownMap: ; 91f07
|
|
|
|
|
hlcoord 0, 0
|
|
|
|
|
.loop
|
|
|
|
|
ld a, [de]
|
2015-12-09 08:38:40 -08:00
|
|
|
|
cp -1
|
2015-11-16 18:07:26 -08:00
|
|
|
|
ret z
|
|
|
|
|
ld a, [de]
|
|
|
|
|
ld [hli], a
|
|
|
|
|
inc de
|
|
|
|
|
jr .loop
|
|
|
|
|
; 91f13
|
|
|
|
|
|
|
|
|
|
TownMapPals: ; 91f13
|
|
|
|
|
; Assign palettes based on tile ids
|
|
|
|
|
|
|
|
|
|
hlcoord 0, 0
|
|
|
|
|
decoord 0, 0, AttrMap
|
2015-12-09 08:38:40 -08:00
|
|
|
|
ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
|
2015-11-16 18:07:26 -08:00
|
|
|
|
.loop
|
|
|
|
|
; Current tile
|
|
|
|
|
ld a, [hli]
|
|
|
|
|
push hl
|
|
|
|
|
|
|
|
|
|
; HP/borders use palette 0
|
|
|
|
|
cp $60
|
|
|
|
|
jr nc, .pal0
|
|
|
|
|
|
|
|
|
|
; The palette data is condensed to nybbles,
|
|
|
|
|
; least-significant first.
|
|
|
|
|
ld hl, TownMapPalMap
|
|
|
|
|
srl a
|
|
|
|
|
jr c, .odd
|
|
|
|
|
|
|
|
|
|
; Even-numbered tile ids take the bottom nybble...
|
|
|
|
|
add l
|
|
|
|
|
ld l, a
|
|
|
|
|
ld a, h
|
|
|
|
|
adc 0
|
|
|
|
|
ld h, a
|
|
|
|
|
ld a, [hl]
|
|
|
|
|
and %111
|
|
|
|
|
jr .update
|
|
|
|
|
|
|
|
|
|
.odd
|
|
|
|
|
; ...and odd ids take the top.
|
|
|
|
|
add l
|
|
|
|
|
ld l, a
|
|
|
|
|
ld a, h
|
|
|
|
|
adc 0
|
|
|
|
|
ld h, a
|
|
|
|
|
ld a, [hl]
|
|
|
|
|
swap a
|
|
|
|
|
and %111
|
|
|
|
|
jr .update
|
|
|
|
|
|
|
|
|
|
.pal0
|
|
|
|
|
xor a
|
|
|
|
|
|
|
|
|
|
.update
|
|
|
|
|
pop hl
|
|
|
|
|
ld [de], a
|
|
|
|
|
inc de
|
|
|
|
|
dec bc
|
|
|
|
|
ld a, b
|
|
|
|
|
or c
|
|
|
|
|
jr nz, .loop
|
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
TownMapPalMap:
|
2015-12-09 08:38:40 -08:00
|
|
|
|
dn 1, 1, 2, 1, 2, 2, 0, 0, 1, 1, 1, 3, 5, 4, 5, 4
|
|
|
|
|
dn 1, 1, 2, 1, 2, 2, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0
|
|
|
|
|
dn 1, 1, 2, 1, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
|
|
|
|
dn 0, 0, 0, 0, 4, 4, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0
|
|
|
|
|
dn 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 3
|
|
|
|
|
dn 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0
|
2015-11-16 18:07:26 -08:00
|
|
|
|
; 91f7b
|
|
|
|
|
|
|
|
|
|
TownMapMon: ; 91f7b
|
|
|
|
|
; Draw the FlyMon icon at town map location in
|
|
|
|
|
|
|
|
|
|
; Get FlyMon species
|
|
|
|
|
ld a, [CurPartyMon]
|
|
|
|
|
ld hl, PartySpecies
|
|
|
|
|
ld e, a
|
|
|
|
|
ld d, $0
|
|
|
|
|
add hl, de
|
|
|
|
|
ld a, [hl]
|
|
|
|
|
ld [wd265], a
|
|
|
|
|
|
|
|
|
|
; Get FlyMon icon
|
|
|
|
|
ld e, 8 ; starting tile in VRAM
|
|
|
|
|
callba GetSpeciesIcon
|
|
|
|
|
|
|
|
|
|
; Animation/palette
|
2015-12-09 08:38:40 -08:00
|
|
|
|
depixel 0, 0
|
|
|
|
|
ld a, SPRITE_ANIM_INDEX_00
|
2015-11-16 18:07:26 -08:00
|
|
|
|
call _InitSpriteAnimStruct
|
|
|
|
|
|
2015-12-09 08:38:40 -08:00
|
|
|
|
ld hl, SPRITEANIMSTRUCT_TILE_ID
|
2015-11-16 18:07:26 -08:00
|
|
|
|
add hl, bc
|
2015-12-09 08:38:40 -08:00
|
|
|
|
ld [hl], $8
|
|
|
|
|
ld hl, SPRITEANIMSTRUCT_ANIM_SEQ_ID
|
2015-11-16 18:07:26 -08:00
|
|
|
|
add hl, bc
|
2015-12-18 17:07:09 -08:00
|
|
|
|
ld [hl], SPRITE_ANIM_SEQ_NULL
|
2015-11-16 18:07:26 -08:00
|
|
|
|
ret
|
|
|
|
|
; 91fa6
|
|
|
|
|
|
|
|
|
|
TownMapPlayerIcon: ; 91fa6
|
|
|
|
|
; Draw the player icon at town map location in a
|
|
|
|
|
push af
|
|
|
|
|
|
|
|
|
|
callba GetPlayerIcon
|
|
|
|
|
|
|
|
|
|
; Standing icon
|
|
|
|
|
ld hl, VTiles0 tile $10
|
|
|
|
|
ld c, 4 ; # tiles
|
|
|
|
|
call Request2bpp
|
|
|
|
|
|
|
|
|
|
; Walking icon
|
|
|
|
|
ld hl, $c0
|
|
|
|
|
add hl, de
|
|
|
|
|
ld d, h
|
|
|
|
|
ld e, l
|
|
|
|
|
ld hl, VTiles0 tile $14
|
|
|
|
|
ld c, 4 ; # tiles
|
|
|
|
|
ld a, BANK(ChrisSpriteGFX) ; does nothing
|
|
|
|
|
call Request2bpp
|
|
|
|
|
|
|
|
|
|
; Animation/palette
|
2015-12-09 08:38:40 -08:00
|
|
|
|
depixel 0, 0
|
2015-12-18 17:07:09 -08:00
|
|
|
|
ld b, SPRITE_ANIM_INDEX_WALK_CYCLE ; Male
|
2015-11-16 18:07:26 -08:00
|
|
|
|
ld a, [PlayerGender]
|
|
|
|
|
bit 0, a
|
2015-12-09 08:38:40 -08:00
|
|
|
|
jr z, .got_gender
|
|
|
|
|
ld b, SPRITE_ANIM_INDEX_1E ; Female
|
|
|
|
|
.got_gender
|
2015-11-16 18:07:26 -08:00
|
|
|
|
ld a, b
|
|
|
|
|
call _InitSpriteAnimStruct
|
|
|
|
|
|
2015-12-09 08:38:40 -08:00
|
|
|
|
ld hl, SPRITEANIMSTRUCT_TILE_ID
|
2015-11-16 18:07:26 -08:00
|
|
|
|
add hl, bc
|
|
|
|
|
ld [hl], $10
|
|
|
|
|
|
|
|
|
|
pop af
|
|
|
|
|
ld e, a
|
|
|
|
|
push bc
|
|
|
|
|
callba GetLandmarkCoords
|
|
|
|
|
pop bc
|
|
|
|
|
|
2015-12-09 08:38:40 -08:00
|
|
|
|
ld hl, SPRITEANIMSTRUCT_XCOORD
|
2015-11-16 18:07:26 -08:00
|
|
|
|
add hl, bc
|
|
|
|
|
ld [hl], e
|
2015-12-09 08:38:40 -08:00
|
|
|
|
ld hl, SPRITEANIMSTRUCT_YCOORD
|
2015-11-16 18:07:26 -08:00
|
|
|
|
add hl, bc
|
|
|
|
|
ld [hl], d
|
|
|
|
|
ret
|
|
|
|
|
; 0x91ff2
|
|
|
|
|
|
2015-12-09 08:38:40 -08:00
|
|
|
|
LoadTownMapGFX: ; 91ff2
|
2015-11-16 18:07:26 -08:00
|
|
|
|
ld hl, TownMapGFX
|
|
|
|
|
ld de, VTiles2
|
|
|
|
|
lb bc, BANK(TownMapGFX), $30
|
|
|
|
|
call DecompressRequest2bpp
|
|
|
|
|
ret
|
|
|
|
|
; 91fff
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
JohtoMap: ; 91fff
|
|
|
|
|
INCBIN "gfx/misc/johto.bin"
|
|
|
|
|
; 92168
|
|
|
|
|
|
|
|
|
|
KantoMap: ; 92168
|
|
|
|
|
INCBIN "gfx/misc/kanto.bin"
|
|
|
|
|
; 922d1
|
|
|
|
|
|
2015-12-09 08:38:40 -08:00
|
|
|
|
PokedexNestIconGFX: ; 922d1
|
|
|
|
|
INCBIN "gfx/pokegear/dexmap_nest_icon.2bpp"
|
|
|
|
|
|
|
|
|
|
FlyMapLabelBorderGFX: ; 922e1
|
|
|
|
|
INCBIN "gfx/pokegear/flymap_label_border.2bpp"
|
2015-11-16 18:07:26 -08:00
|
|
|
|
|
2015-12-09 08:38:40 -08:00
|
|
|
|
Function92311: ; 92311
|
|
|
|
|
; unreferenced
|
2015-11-16 18:07:26 -08:00
|
|
|
|
xor a
|
|
|
|
|
ld [wd002], a
|
|
|
|
|
call ClearBGPalettes
|
|
|
|
|
call ClearTileMap
|
|
|
|
|
call ClearSprites
|
|
|
|
|
ld hl, hInMenu
|
|
|
|
|
ld a, [hl]
|
|
|
|
|
push af
|
|
|
|
|
ld [hl], $1
|
|
|
|
|
xor a
|
|
|
|
|
ld [hBGMapMode], a
|
2015-12-01 18:54:11 -08:00
|
|
|
|
callba ClearSpriteAnims
|
2015-12-09 08:38:40 -08:00
|
|
|
|
call LoadTownMapGFX
|
|
|
|
|
ld de, FlyMapLabelBorderGFX
|
2015-11-16 18:07:26 -08:00
|
|
|
|
ld hl, VTiles2 tile $30
|
2015-12-09 08:38:40 -08:00
|
|
|
|
lb bc, BANK(FlyMapLabelBorderGFX), 6
|
2015-11-16 18:07:26 -08:00
|
|
|
|
call Request1bpp
|
|
|
|
|
call FillKantoMap
|
|
|
|
|
call TownMapBubble
|
|
|
|
|
call TownMapPals
|
2015-11-20 08:47:52 -08:00
|
|
|
|
hlbgcoord 0, 0, VBGMap1
|
2015-11-16 18:07:26 -08:00
|
|
|
|
call TownMapBGUpdate
|
|
|
|
|
call FillJohtoMap
|
|
|
|
|
call TownMapBubble
|
|
|
|
|
call TownMapPals
|
2015-11-20 08:47:52 -08:00
|
|
|
|
hlbgcoord 0, 0
|
2015-11-16 18:07:26 -08:00
|
|
|
|
call TownMapBGUpdate
|
|
|
|
|
call TownMapMon
|
|
|
|
|
ld a, c
|
|
|
|
|
ld [wd003], a
|
|
|
|
|
ld a, b
|
|
|
|
|
ld [wd004], a
|
|
|
|
|
ld b, SCGB_02
|
|
|
|
|
call GetSGBLayout
|
|
|
|
|
call SetPalettes
|
|
|
|
|
.loop
|
|
|
|
|
call JoyTextDelay
|
|
|
|
|
ld hl, hJoyPressed
|
|
|
|
|
ld a, [hl]
|
|
|
|
|
and B_BUTTON
|
|
|
|
|
jr nz, .pressedB
|
|
|
|
|
ld a, [hl]
|
|
|
|
|
and A_BUTTON
|
|
|
|
|
jr nz, .pressedA
|
2015-12-09 08:38:40 -08:00
|
|
|
|
call .HandleDPad
|
2015-11-16 18:07:26 -08:00
|
|
|
|
call GetMapCursorCoordinates
|
2015-11-28 12:13:40 -08:00
|
|
|
|
callba PlaySpriteAnimations
|
2015-11-16 18:07:26 -08:00
|
|
|
|
call DelayFrame
|
|
|
|
|
jr .loop
|
|
|
|
|
|
|
|
|
|
.pressedB
|
|
|
|
|
ld a, -1
|
|
|
|
|
jr .asm_9239f
|
|
|
|
|
|
|
|
|
|
.pressedA
|
|
|
|
|
ld a, [wd002]
|
|
|
|
|
ld l, a
|
|
|
|
|
ld h, 0
|
|
|
|
|
add hl, hl
|
|
|
|
|
ld de, Flypoints + 1
|
|
|
|
|
add hl, de
|
|
|
|
|
ld a, [hl]
|
|
|
|
|
|
|
|
|
|
.asm_9239f
|
|
|
|
|
ld [wd002], a
|
|
|
|
|
pop af
|
|
|
|
|
ld [hInMenu], a
|
|
|
|
|
call ClearBGPalettes
|
|
|
|
|
ld a, $90
|
|
|
|
|
ld [hWY], a
|
|
|
|
|
xor a
|
|
|
|
|
ld [hBGMapAddress], a
|
|
|
|
|
ld a, VBGMap0 / $100
|
|
|
|
|
ld [hBGMapAddress + 1], a
|
|
|
|
|
ld a, [wd002]
|
|
|
|
|
ld e, a
|
|
|
|
|
ret
|
|
|
|
|
; 923b8
|
|
|
|
|
|
2015-12-09 08:38:40 -08:00
|
|
|
|
.HandleDPad: ; 923b8
|
2015-11-16 18:07:26 -08:00
|
|
|
|
ld hl, hJoyLast
|
|
|
|
|
ld a, [hl]
|
|
|
|
|
and D_DOWN | D_RIGHT
|
2015-12-09 08:38:40 -08:00
|
|
|
|
jr nz, .down_right
|
2015-11-16 18:07:26 -08:00
|
|
|
|
ld a, [hl]
|
|
|
|
|
and D_UP | D_LEFT
|
2015-12-09 08:38:40 -08:00
|
|
|
|
jr nz, .up_left
|
2015-11-16 18:07:26 -08:00
|
|
|
|
ret
|
|
|
|
|
|
2015-12-09 08:38:40 -08:00
|
|
|
|
.down_right
|
2015-11-16 18:07:26 -08:00
|
|
|
|
ld hl, wd002
|
|
|
|
|
ld a, [hl]
|
|
|
|
|
cp FLY_INDIGO
|
2015-12-09 08:38:40 -08:00
|
|
|
|
jr c, .okay_dr
|
2015-11-16 18:07:26 -08:00
|
|
|
|
ld [hl], -1
|
2015-12-09 08:38:40 -08:00
|
|
|
|
.okay_dr
|
2015-11-16 18:07:26 -08:00
|
|
|
|
inc [hl]
|
2015-12-09 08:38:40 -08:00
|
|
|
|
jr .continue
|
2015-11-16 18:07:26 -08:00
|
|
|
|
|
2015-12-09 08:38:40 -08:00
|
|
|
|
.up_left
|
2015-11-16 18:07:26 -08:00
|
|
|
|
ld hl, wd002
|
|
|
|
|
ld a, [hl]
|
|
|
|
|
and a
|
2015-12-09 08:38:40 -08:00
|
|
|
|
jr nz, .okay_ul
|
2015-11-16 18:07:26 -08:00
|
|
|
|
ld [hl], FLY_INDIGO + 1
|
2015-12-09 08:38:40 -08:00
|
|
|
|
.okay_ul
|
2015-11-16 18:07:26 -08:00
|
|
|
|
dec [hl]
|
|
|
|
|
|
2015-12-09 08:38:40 -08:00
|
|
|
|
.continue
|
2015-11-16 18:07:26 -08:00
|
|
|
|
ld a, [wd002]
|
|
|
|
|
cp KANTO_FLYPOINT
|
|
|
|
|
jr c, .johto
|
|
|
|
|
|
|
|
|
|
call FillKantoMap
|
|
|
|
|
xor a
|
|
|
|
|
ld b, $9c
|
2015-12-09 08:38:40 -08:00
|
|
|
|
jr .finish
|
2015-11-16 18:07:26 -08:00
|
|
|
|
|
|
|
|
|
.johto
|
|
|
|
|
call FillJohtoMap
|
|
|
|
|
ld a, $90
|
|
|
|
|
ld b, $98
|
|
|
|
|
|
2015-12-09 08:38:40 -08:00
|
|
|
|
.finish
|
2015-11-16 18:07:26 -08:00
|
|
|
|
ld [hWY], a
|
|
|
|
|
ld a, b
|
|
|
|
|
ld [hBGMapAddress + 1], a
|
|
|
|
|
call TownMapBubble
|
|
|
|
|
call WaitBGMap
|
|
|
|
|
xor a
|
|
|
|
|
ld [hBGMapMode], a
|
|
|
|
|
ret
|
|
|
|
|
; 92402
|