-
Notifications
You must be signed in to change notification settings - Fork 831
Add a new radio channel
MCboy edited this page Jun 14, 2018
·
11 revisions
This tutorial teaches you how to add a new radio channel in pokecrytsal.(radio channels with text coming soon!)
for this tutorial were going to add national park as a channel that plays its music.
- Define a radio constant
- Define a pointer to the radio station
- Define the music for the channel
- Set the name of the channel and add a pointer for loading it
- Set the channel to a frequency you like
Edit constants/radio_constants.asm:
; radio channel ids
; indexes for:
; - RadioChannelSongs (see data/radio/channel_music.asm)
; - PlayRadioShow/RadioJumptable (see engine/pokegear/radio.asm)
; - RadioChannels (see engine/pokegear/radio.asm)
const_def
const OAKS_POKEMON_TALK ; 00
const POKEDEX_SHOW ; 01
const POKEMON_MUSIC ; 02
const LUCKY_CHANNEL ; 03
const BUENAS_PASSWORD ; 04
const PLACES_AND_PEOPLE ; 05
const LETS_ALL_SING ; 06
const ROCKET_RADIO ; 07
const POKE_FLUTE_RADIO ; 08
const UNOWN_RADIO ; 09
const EVOLUTION_RADIO ; 0a
+ const NATIONAL_PARK_RADIO
Edit engine/pokegear/radio.asm:
RadioJumptable:
; entries correspond to constants/radio_constants.asm
dw OaksPKMNTalk1 ; $00
dw PokedexShow1 ; $01
dw BenMonMusic1 ; $02
dw LuckyNumberShow1 ; $03
dw BuenasPassword1 ; $04
dw PeoplePlaces1 ; $05
dw FernMonMusic1 ; $06
dw RocketRadio1 ; $07
dw PokeFluteRadio ; $08
dw UnownRadio ; $09
dw EvolutionRadio ; $0a
+ dw NationalParkRadio
UnownRadio:
call StartRadioStation
ld a, 1
ld [wNumRadioLinesPrinted], a
ret
EvolutionRadio:
call StartRadioStation
ld a, 1
ld [wNumRadioLinesPrinted], a
ret
+
+NationalParkRadio:
+ call StartRadioStation
+ ld a, 1
+ ld [wNumRadioLinesPrinted], a
+ ret
Edit data/radio/channel_music.asm:
RadioChannelSongs:
; entries correspond to radio channel ids
dw MUSIC_POKEMON_TALK
dw MUSIC_POKEMON_CENTER
dw MUSIC_TITLE
dw MUSIC_GAME_CORNER
dw MUSIC_BUENAS_PASSWORD
dw MUSIC_VIRIDIAN_CITY
dw MUSIC_BICYCLE
dw MUSIC_ROCKET_OVERTURE
dw MUSIC_POKE_FLUTE_CHANNEL
dw MUSIC_RUINS_OF_ALPH_RADIO
dw MUSIC_LAKE_OF_RAGE_ROCKET_RADIO
+ dw MUSIC_NATIONAL_PARK
; 917c3 (24:57c3)
BuenasPasswordName: db "BUENA'S PASSWORD@"
NotBuenasPasswordName: db "@"
+NationalParkName: db "Narional Park@"
+
+LoadStation_NationalPark:
+ ld a, TESTSTATION_RADIO
+ ld [wCurrentRadioLine], a
+ xor a
+ ld [wNumRadioLinesPrinted], a
+ ld a, BANK(PlayRadioShow)
+ ld hl, PlayRadioShow
+ call Radio_BackUpFarCallParams
+ ld de, NationalParkName
+ ret
i set mine to 15
RadioChannels:
; entries correspond to constants/radio_constants.asm
; frequency value given here = 4 × ingame_frequency − 2
dbw 16, .PKMNTalkAndPokedexShow
dbw 28, .PokemonMusic
dbw 32, .LuckyChannel
dbw 40, .BuenasPassword
dbw 52, .RuinsOfAlphRadio
+ dbw 58, .NationalPark
dbw 64, .PlacesAndPeople
dbw 72, .LetsAllSing
dbw 78, .PokeFluteRadio
dbw 80, .EvolutionRadio
db -1
johto exclusive channel
+.NationalPark:
+ call .InJohto
+ jr nc, .NoSignal
+ jp LoadStation_NationalPark
kanto exclusive channel
+.NationalPark:
+ call .InJohto
+ jr c, .NoSignal
+ ld a, [wPokegearFlags]
+ bit POKEGEAR_EXPN_CARD_F, a
+ jr z, .NoSignal
and were done! this was my first tutorial so forgive me and blame that if you dont find this tutorial to be straight forward