mirror of https://github.com/pret/pokecrystal.git
405 lines
6.6 KiB
NASM
405 lines
6.6 KiB
NASM
|
_UpdateRadioStation: ; 9163e (24:563e)
|
|||
|
jr UpdateRadioStation
|
|||
|
|
|||
|
Function91640: ; 91640 (24:5640)
|
|||
|
push bc
|
|||
|
call .TuningKnob
|
|||
|
pop bc
|
|||
|
ld a, [wRadioTuningKnob]
|
|||
|
ld hl, $6
|
|||
|
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 ; $ff00+$d4
|
|||
|
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 ; $ff00+$d4
|
|||
|
hlcoord 1, 8
|
|||
|
ld bc, $312
|
|||
|
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
|