diff options
Diffstat (limited to 'engine')
| -rw-r--r-- | engine/radio.asm | 766 | ||||
| -rw-r--r-- | engine/radio2.asm | 404 | 
2 files changed, 790 insertions, 380 deletions
| diff --git a/engine/radio.asm b/engine/radio.asm index 3503ecc13..8e96239de 100644 --- a/engine/radio.asm +++ b/engine/radio.asm @@ -38,8 +38,8 @@ RadioJumptable: ; b863a (2e:463a)  	dw FernMonMusic1 ; $06  	dw RocketRadio1 ; $07  	dw PokeFluteRadio ; $08 -	dw EvolutionRadio ; $09 -	dw UnownRadio ; $0a +	dw UnownRadio ; $09 +	dw EvolutionRadio ; $0a  ; OaksPkmnTalk  	dw OaksPkmnTalk2  ; $0b  	dw OaksPkmnTalk3  ; $0c @@ -49,10 +49,10 @@ RadioJumptable: ; b863a (2e:463a)  	dw OaksPkmnTalk7  ; $10  	dw OaksPkmnTalk8  ; $11  	dw OaksPkmnTalk9  ; $12 -	dw OaksPkmnTalk10 ; $13 -	dw OaksPkmnTalk11 ; $14 -	dw OaksPkmnTalk12 ; $15 -	dw OaksPkmnTalk13 ; $16 +	dw PokedexShow2 ; $13 +	dw PokedexShow3 ; $14 +	dw PokedexShow4 ; $15 +	dw PokedexShow5 ; $16  ; Ben Music  	dw BenMonMusic2  ; $17  	dw BenMonMusic3  ; $18 @@ -76,12 +76,13 @@ RadioJumptable: ; b863a (2e:463a)  	dw LuckyNumberShow13 ; $29  	dw LuckyNumberShow14 ; $2a  	dw LuckyNumberShow15 ; $2b -	dw LuckyNumberShow16 ; $2c -	dw LuckyNumberShow17 ; $2d -	dw LuckyNumberShow18 ; $2e -	dw LuckyNumberShow19 ; $2f -	dw LuckyNumberShow20 ; $30 -	dw LuckyNumberShow21 ; $31 +; People & Places +	dw PeoplePlaces2 ; $2c +	dw PeoplePlaces3 ; $2d +	dw PeoplePlaces4 ; $2e +	dw PeoplePlaces5 ; $2f +	dw PeoplePlaces6 ; $30 +	dw PeoplePlaces7 ; $31  ; Rocket Radio  	dw RocketRadio2 ; $32  	dw RocketRadio3 ; $33 @@ -93,11 +94,11 @@ RadioJumptable: ; b863a (2e:463a)  	dw RocketRadio9 ; $39  	dw RocketRadio10 ; $3a  ; More Pokemon Channel stuff -	dw OaksPkmnTalk14 ; $3b -	dw OaksPkmnTalk15 ; $3c -	dw OaksPkmnTalk16 ; $3d -	dw OaksPkmnTalk17 ; $3e -	dw OaksPkmnTalk18 ; $3f +	dw OaksPkmnTalk10 ; $3b +	dw OaksPkmnTalk11 ; $3c +	dw OaksPkmnTalk12 ; $3d +	dw OaksPkmnTalk13 ; $3e +	dw OaksPkmnTalk14 ; $3f  ; Buenas Password  	dw BuenasPassword2 ; $40  	dw BuenasPassword3 ; $41 @@ -121,9 +122,9 @@ RadioJumptable: ; b863a (2e:463a)  	dw BuenasPassword21 ; $53  	dw RadioScroll ; $54  ; More Pokemon Channel stuff -	dw OaksPkmnTalk19 ; $55 -	dw OaksPkmnTalk20 ; $56 -	dw OaksPkmnTalk21 ; $57 +	dw PokedexShow6 ; $55 +	dw PokedexShow7 ; $56 +	dw PokedexShow8 ; $57  PrintRadioLine: ; b86ea (2e:46ea) @@ -144,7 +145,7 @@ PrintRadioLine: ; b86ea (2e:46ea)  .print  	call PrintTextBoxText  .skip -	ld a, $54 +	ld a, RADIO_SCROLL  	ld [wd002], a  	ld a, $64  	ld [wd004], a @@ -154,7 +155,7 @@ PrintRadioLine: ; b86ea (2e:46ea)  Functionb8718: ; b8718  	push hl  	ld b, SCREEN_WIDTH * 2 -.greater_than_10 +.loop  	ld a, [hl]  	cp "."  	jr nz, .next @@ -163,7 +164,7 @@ Functionb8718: ; b8718  .next  	inc hl  	dec b -	jr nz, .greater_than_10 +	jr nz, .loop  	pop hl  	ret  ; b8728 @@ -188,26 +189,27 @@ OaksPkmnTalk1: ; b8742 (2e:4742)  	ld [wd006], a  	call StartRadioStation  	ld hl, UnknownText_0xb8820 -	ld a, $b +	ld a, OAKS_POKEMON_TALK_2  	jp NextRadioLine  OaksPkmnTalk2: ; b8752 (2e:4752)  	ld hl, UnknownText_0xb8825 -	ld a, $c +	ld a, OAKS_POKEMON_TALK_3  	jp NextRadioLine  OaksPkmnTalk3: ; b875a (2e:475a)  	ld hl, UnknownText_0xb882a -	ld a, $d +	ld a, OAKS_POKEMON_TALK_4  	jp NextRadioLine  OaksPkmnTalk4: ; b8762 (2e:4762) -; Choose a random root, and a random Pokemon from that route. +; Choose a random route, and a random Pokemon from that route.  	call Random  	and $1f  	cp $f  	jr nc, OaksPkmnTalk4 -	ld hl, Unknown_b87f2 +	; We now have a number between 0 and 14. +	ld hl, .routes  	ld c, a  	ld b, 0  rept 2 @@ -216,14 +218,16 @@ endr  	ld b, [hl]  	inc hl  	ld c, [hl] +	; bc now contains the chosen map's group and number indices.  	push bc +	; Search the JohtoGrassWildMons array for the chosen map.  	ld hl, JohtoGrassWildMons -.greater_than_10 +.loop  	ld a, BANK(JohtoGrassWildMons)  	call GetFarByte  	cp -1 -	jr z, .done2 +	jr z, .overflow  	inc hl  	cp b  	jr nz, .next @@ -233,62 +237,64 @@ endr  	jr z, .done  .next  	dec hl -	ld de, $2f +	ld de, WILDMON_GRASS_STRUCTURE_LENGTH  	add hl, de -	jr .greater_than_10 +	jr .loop  .done  rept 4  	inc hl  endr - -.both_bits_set +	; Generate a number, either 0, 1, or 2, to choose a time of day. +.loop2  	call Random  	and 3  	cp 3 -	jr z, .both_bits_set +	jr z, .loop2 -	ld bc, $e +	ld bc, 2 * NUM_WILDMONS_PER_AREA_TIME_OF_DAY  	call AddNTimes -.greater_than_102 +.loop3 +	; Choose one of the middle three Pokemon.  	call Random -	and 7 +	and NUM_WILDMONS_PER_AREA_TIME_OF_DAY  	cp 2 -	jr c, .greater_than_102 +	jr c, .loop3  	cp 5 -	jr nc, .greater_than_102 +	jr nc, .loop3  	ld e, a  	ld d, 0  rept 2  	add hl, de  endr -	inc hl +	inc hl ; skip level  	ld a, BANK(JohtoGrassWildMons)  	call GetFarByte -	ld [wd265], a +	ld [wNamedObjectIndexBuffer], a  	ld [CurPartySpecies], a  	call GetPokemonName  	ld hl, StringBuffer1  	ld de, wd050 -	ld bc, $b +	ld bc, PKMN_NAME_LENGTH  	call CopyBytes - +	; Now that we've chosen our wild Pokemon, +	; let's recover the map index info and get its name.  	pop bc  	call GetWorldMapLocation  	ld e, a  	callba GetLandmarkName  	ld hl, UnknownText_0xb882f  	call CopyRadioTextToRAM -	ld a, $e +	ld a, OAKS_POKEMON_TALK_5  	jp PrintRadioLine -.done2 +.overflow  	pop bc  	ld a, $0  	jp PrintRadioLine  ; b87f2 (2e:47f2) -Unknown_b87f2: ; b87f2 +.routes: ; b87f2  	map ROUTE_29  	map ROUTE_46  	map ROUTE_30 @@ -308,12 +314,12 @@ Unknown_b87f2: ; b87f2  OaksPkmnTalk5: ; b8810 (2e:4810)  	ld hl, UnknownText_0xb8834 -	ld a, $f +	ld a, OAKS_POKEMON_TALK_6  	jp NextRadioLine  OaksPkmnTalk6: ; b8818 (2e:4818)  	ld hl, UnknownText_0xb8839 -	ld a, $10 +	ld a, OAKS_POKEMON_TALK_7  	jp NextRadioLine  ; b8820 (2e:4820) @@ -358,7 +364,7 @@ OaksPkmnTalk7: ; b883e (2e:483e)  	ld [wd265], a  	call GetPokemonName  	ld hl, UnknownText_0xb884f -	ld a, $11 +	ld a, OAKS_POKEMON_TALK_8  	jp NextRadioLine  ; b884f (2e:484f) @@ -373,127 +379,127 @@ OaksPkmnTalk8: ; b8854 (2e:4854)  	and $f  	ld e, a  	ld d, 0 -	ld hl, Unknown_b8869 +	ld hl, .descriptors  rept 2  	add hl, de  endr  	ld a, [hli]  	ld h, [hl]  	ld l, a -	ld a, $12 +	ld a, OAKS_POKEMON_TALK_9  	jp NextRadioLine  ; b8869 (2e:4869) -Unknown_b8869: ; b8869 -	dw UnknownText_0xb8889 -	dw UnknownText_0xb888e -	dw UnknownText_0xb8893 -	dw UnknownText_0xb8898 -	dw UnknownText_0xb889d -	dw UnknownText_0xb88a2 -	dw UnknownText_0xb88a7 -	dw UnknownText_0xb88ac -	dw UnknownText_0xb88b1 -	dw UnknownText_0xb88b6 -	dw UnknownText_0xb88bb -	dw UnknownText_0xb88c0 -	dw UnknownText_0xb88c5 -	dw UnknownText_0xb88ca -	dw UnknownText_0xb88cf -	dw UnknownText_0xb88d4 +.descriptors: ; b8869 +	dw .sweetadorably +	dw .wigglyslickly +	dw .aptlynamed +	dw .undeniablykindof +	dw .unbearably +	dw .wowimpressively +	dw .almostpoisonously +	dw .sensually +	dw .mischievously +	dw .topically +	dw .addictively +	dw .looksinwater +	dw .evolutionmustbe +	dw .provocatively +	dw .flippedout +	dw .heartmeltingly  ; b8889 -UnknownText_0xb8889: ; 0xb8889 +.sweetadorably: ; 0xb8889  	; sweet and adorably  	text_jump UnknownText_0x1bc885  	db "@"  ; 0xb888e -UnknownText_0xb888e: ; 0xb888e +.wigglyslickly: ; 0xb888e  	; wiggly and slickly  	text_jump UnknownText_0x1bc89a  	db "@"  ; 0xb8893 -UnknownText_0xb8893: ; 0xb8893 +.aptlynamed: ; 0xb8893  	; aptly named and  	text_jump UnknownText_0x1bc8af  	db "@"  ; 0xb8898 -UnknownText_0xb8898: ; 0xb8898 +.undeniablykindof: ; 0xb8898  	; undeniably kind of  	text_jump UnknownText_0x1bc8c1  	db "@"  ; 0xb889d -UnknownText_0xb889d: ; 0xb889d +.unbearably: ; 0xb889d  	; so, so unbearably  	text_jump UnknownText_0x1bc8d6  	db "@"  ; 0xb88a2 -UnknownText_0xb88a2: ; 0xb88a2 +.wowimpressively: ; 0xb88a2  	; wow, impressively  	text_jump UnknownText_0x1bc8ea  	db "@"  ; 0xb88a7 -UnknownText_0xb88a7: ; 0xb88a7 +.almostpoisonously: ; 0xb88a7  	; almost poisonously  	text_jump UnknownText_0x1bc8fe  	db "@"  ; 0xb88ac -UnknownText_0xb88ac: ; 0xb88ac +.sensually: ; 0xb88ac  	; ooh, so sensually  	text_jump UnknownText_0x1bc913  	db "@"  ; 0xb88b1 -UnknownText_0xb88b1: ; 0xb88b1 +.mischievously: ; 0xb88b1  	; so mischievously  	text_jump UnknownText_0x1bc927  	db "@"  ; 0xb88b6 -UnknownText_0xb88b6: ; 0xb88b6 +.topically: ; 0xb88b6  	; so very topically  	text_jump UnknownText_0x1bc93a  	db "@"  ; 0xb88bb -UnknownText_0xb88bb: ; 0xb88bb +.addictively: ; 0xb88bb  	; sure addictively  	text_jump UnknownText_0x1bc94e  	db "@"  ; 0xb88c0 -UnknownText_0xb88c0: ; 0xb88c0 +.looksinwater: ; 0xb88c0  	; looks in water is  	text_jump UnknownText_0x1bc961  	db "@"  ; 0xb88c5 -UnknownText_0xb88c5: ; 0xb88c5 +.evolutionmustbe: ; 0xb88c5  	; evolution must be  	text_jump UnknownText_0x1bc975  	db "@"  ; 0xb88ca -UnknownText_0xb88ca: ; 0xb88ca +.provocatively: ; 0xb88ca  	; provocatively  	text_jump UnknownText_0x1bc989  	db "@"  ; 0xb88cf -UnknownText_0xb88cf: ; 0xb88cf +.flippedout: ; 0xb88cf  	; so flipped out and  	text_jump UnknownText_0x1bc999  	db "@"  ; 0xb88d4 -UnknownText_0xb88d4: ; 0xb88d4 +.heartmeltingly: ; 0xb88d4  	; heart-meltingly  	text_jump UnknownText_0x1bc9ae  	db "@" @@ -504,7 +510,7 @@ OaksPkmnTalk9: ; b88d9 (2e:48d9)  	and $f  	ld e, a  	ld d, 0 -	ld hl, Unknown_b88fe +	ld hl, .descriptors  rept 2  	add hl, de  endr @@ -514,138 +520,138 @@ endr  	ld a, [wd006]  	dec a  	ld [wd006], a -	ld a, $d -	jr nz, .nope +	ld a, OAKS_POKEMON_TALK_4 +	jr nz, .ok  	ld a, $5  	ld [wd006], a -	ld a, $3b -.nope +	ld a, OAKS_POKEMON_TALK_10 +.ok  	jp NextRadioLine  ; b88fe (2e:48fe) -Unknown_b88fe: ; b88fe -	dw UnknownText_0xb891e -	dw UnknownText_0xb8923 -	dw UnknownText_0xb8928 -	dw UnknownText_0xb892d -	dw UnknownText_0xb8932 -	dw UnknownText_0xb8937 -	dw UnknownText_0xb893c -	dw UnknownText_0xb8941 -	dw UnknownText_0xb8946 -	dw UnknownText_0xb894b -	dw UnknownText_0xb8950 -	dw UnknownText_0xb8955 -	dw UnknownText_0xb895a -	dw UnknownText_0xb895f -	dw UnknownText_0xb8964 -	dw UnknownText_0xb8969 +.descriptors: ; b88fe +	dw .cute +	dw .weird +	dw .pleasant +	dw .boldsortof +	dw .frightening +	dw .suavedebonair +	dw .powerful +	dw .exciting +	dw .groovy +	dw .inspiring +	dw .friendly +	dw .hothothot +	dw .stimulating +	dw .guarded +	dw .lovely +	dw .speedy  ; b891e -UnknownText_0xb891e: ; 0xb891e +.cute: ; 0xb891e  	; cute.  	text_jump UnknownText_0x1bc9c0  	db "@"  ; 0xb8923 -UnknownText_0xb8923: ; 0xb8923 +.weird: ; 0xb8923  	; weird.  	text_jump UnknownText_0x1bc9c8  	db "@"  ; 0xb8928 -UnknownText_0xb8928: ; 0xb8928 +.pleasant: ; 0xb8928  	; pleasant.  	text_jump UnknownText_0x1bc9d1  	db "@"  ; 0xb892d -UnknownText_0xb892d: ; 0xb892d +.boldsortof: ; 0xb892d  	; bold, sort of.  	text_jump UnknownText_0x1bc9dd  	db "@"  ; 0xb8932 -UnknownText_0xb8932: ; 0xb8932 +.frightening: ; 0xb8932  	; frightening.  	text_jump UnknownText_0x1bc9ee  	db "@"  ; 0xb8937 -UnknownText_0xb8937: ; 0xb8937 +.suavedebonair: ; 0xb8937  	; suave & debonair!  	text_jump UnknownText_0x1bc9fd  	db "@"  ; 0xb893c -UnknownText_0xb893c: ; 0xb893c +.powerful: ; 0xb893c  	; powerful.  	text_jump UnknownText_0x1bca11  	db "@"  ; 0xb8941 -UnknownText_0xb8941: ; 0xb8941 +.exciting: ; 0xb8941  	; exciting.  	text_jump UnknownText_0x1bca1d  	db "@"  ; 0xb8946 -UnknownText_0xb8946: ; 0xb8946 +.groovy: ; 0xb8946  	; groovy!  	text_jump UnknownText_0x1bca29  	db "@"  ; 0xb894b -UnknownText_0xb894b: ; 0xb894b +.inspiring: ; 0xb894b  	; inspiring.  	text_jump UnknownText_0x1bca33  	db "@"  ; 0xb8950 -UnknownText_0xb8950: ; 0xb8950 +.friendly: ; 0xb8950  	; friendly.  	text_jump UnknownText_0x1bca40  	db "@"  ; 0xb8955 -UnknownText_0xb8955: ; 0xb8955 +.hothothot: ; 0xb8955  	; hot, hot, hot!  	text_jump UnknownText_0x1bca4c  	db "@"  ; 0xb895a -UnknownText_0xb895a: ; 0xb895a +.stimulating: ; 0xb895a  	; stimulating.  	text_jump UnknownText_0x1bca5d  	db "@"  ; 0xb895f -UnknownText_0xb895f: ; 0xb895f +.guarded: ; 0xb895f  	; guarded.  	text_jump UnknownText_0x1bca6c  	db "@"  ; 0xb8964 -UnknownText_0xb8964: ; 0xb8964 +.lovely: ; 0xb8964  	; lovely.  	text_jump UnknownText_0x1bca77  	db "@"  ; 0xb8969 -UnknownText_0xb8969: ; 0xb8969 +.speedy: ; 0xb8969  	; speedy.  	text_jump UnknownText_0x1bca81  	db "@"  ; 0xb896e -OaksPkmnTalk14: ; b896e (2e:496e) -	callba Function91868 +OaksPkmnTalk10: ; b896e (2e:496e) +	callba RadioMusicRestartPokemonChannel  	ld hl, UnknownText_0xb8993  	call PrintText  	call WaitBGMap  	ld hl, UnknownText_0xb898e  	call PrintText -	ld a, $3c +	ld a, OAKS_POKEMON_TALK_11  	ld [wd002], a  	ld a, $64  	ld [wd004], a @@ -662,74 +668,74 @@ UnknownText_0xb8993: ; 0xb8993  	db "@"  ; 0xb8994 -OaksPkmnTalk15: ; b8994 (2e:4994) +OaksPkmnTalk11: ; b8994 (2e:4994)  	ld hl, wd004  	dec [hl]  	ret nz  	hlcoord 9, 14 -	ld de, String_b89a4 -	ld a, $3d -	jp Functionb8a00 +	ld de, .pokemon_string +	ld a, OAKS_POKEMON_TALK_12 +	jp PlaceRadioString  ; b89a4 (2e:49a4) -String_b89a4: +.pokemon_string:  	db "#MON@"  ; b89a9 -OaksPkmnTalk16: ; b89a9 (2e:49a9) +OaksPkmnTalk12: ; b89a9 (2e:49a9)  	ld hl, wd004  	dec [hl]  	ret nz  	hlcoord 1, 16 -	ld de, String_b89b9 -	ld a, $3e -	jp Functionb8a00 +	ld de, .pokemon_channel_string +	ld a, OAKS_POKEMON_TALK_13 +	jp PlaceRadioString  ; b89b9 (2e:49b9) -String_b89b9: +.pokemon_channel_string:  	db "#MON Channel@"  ; b89c6 -OaksPkmnTalk17: ; b89c6 (2e:49c6) +OaksPkmnTalk13: ; b89c6 (2e:49c6)  	ld hl, wd004  	dec [hl]  	ret nz  	hlcoord 12, 16 -	ld de, String_b89d6 -	ld a, $3f -	jp Functionb8a00 +	ld de, .terminator +	ld a, OAKS_POKEMON_TALK_14 +	jp PlaceRadioString  ; b89d6 (2e:49d6) -String_b89d6: +.terminator:  	db "@"  ; b89d7 -OaksPkmnTalk18: ; b89d7 (2e:49d7) +OaksPkmnTalk14: ; b89d7 (2e:49d7)  	ld hl, wd004  	dec [hl]  	ret nz  	ld de, $1d -	callab RadioMusicNone -	ld hl, UnknownText_0xb89ff +	callab RadioMusicRestartDE +	ld hl, .terminator  	call PrintText -	ld a, $d +	ld a, OAKS_POKEMON_TALK_4  	ld [wd003], a  	xor a  	ld [wd005], a -	ld a, $54 +	ld a, RADIO_SCROLL  	ld [wd002], a -	ld a, $a +	ld a, 10  	ld [wd004], a  	ret  ; b89ff (2e:49ff) -UnknownText_0xb89ff: ; 0xb89ff +.terminator: ; 0xb89ff  	db "@"  ; 0xb8a00 -Functionb8a00: ; b8a00 (2e:4a00) +PlaceRadioString: ; b8a00 (2e:4a00)  	ld [wd002], a -	ld a, $64 +	ld a, 100  	ld [wd004], a  	jp PlaceString @@ -749,7 +755,7 @@ ClearBottomLine: ; b8a17 (2e:4a17)  	ld a, " "  	jp ByteFill -Functionb8a2d: ; b8a2d (2e:4a2d) +PokedexShow_GetDexEntryBank: ; b8a2d (2e:4a2d)  	push hl  	push de  	ld a, [CurPartySpecies] @@ -776,26 +782,26 @@ Functionb8a2d: ; b8a2d (2e:4a2d)  PokedexShow1: ; b8a46 (2e:4a46)  	call StartRadioStation -.asm_b8a49 +.loop  	call Random  	cp CELEBI -	jr nc, .asm_b8a49 +	jr nc, .loop  	ld c, a  	push bc  	ld a, c  	call CheckCaughtMon  	pop bc -	jr z, .asm_b8a49 +	jr z, .loop  	inc c  	ld a, c  	ld [CurPartySpecies], a  	ld [wd265], a  	call GetPokemonName  	ld hl, UnknownText_0xb8b30 -	ld a, $13 +	ld a, POKEDEX_SHOW_2  	jp NextRadioLine -OaksPkmnTalk10: ; b8a6c (2e:4a6c) +PokedexShow2: ; b8a6c (2e:4a6c)  	ld a, [CurPartySpecies]  	dec a  	ld hl, PokedexDataPointerTable @@ -806,17 +812,17 @@ rept 2  endr  	ld a, BANK(PokedexDataPointerTable)  	call GetFarHalfword -	call Functionb8a2d +	call PokedexShow_GetDexEntryBank  	push af  	push hl -	call Functionb8af3 +	call CopyDexEntryPart1  	dec hl  	ld [hl], $57  	ld hl, wd26b  	call CopyRadioTextToRAM  	pop hl  	pop af -	call Functionb8b11 +	call CopyDexEntryPart2  rept 4  	inc hl  endr @@ -824,40 +830,40 @@ endr  	ld [wd26b], a  	ld a, h  	ld [wd26c], a -	ld a, $14 +	ld a, POKEDEX_SHOW_3  	jp PrintRadioLine -OaksPkmnTalk11: ; b8aa4 (2e:4aa4) -	call Functionb8ad4 -	ld a, $15 +PokedexShow3: ; b8aa4 (2e:4aa4) +	call CopyDexEntry +	ld a, POKEDEX_SHOW_4  	jp PrintRadioLine -OaksPkmnTalk12: ; b8aac (2e:4aac) -	call Functionb8ad4 -	ld a, $16 +PokedexShow4: ; b8aac (2e:4aac) +	call CopyDexEntry +	ld a, POKEDEX_SHOW_5  	jp PrintRadioLine -OaksPkmnTalk13: ; b8ab4 (2e:4ab4) -	call Functionb8ad4 -	ld a, $55 +PokedexShow5: ; b8ab4 (2e:4ab4) +	call CopyDexEntry +	ld a, POKEDEX_SHOW_6  	jp PrintRadioLine -OaksPkmnTalk19: ; b8abc (2e:4abc) -	call Functionb8ad4 -	ld a, $56 +PokedexShow6: ; b8abc (2e:4abc) +	call CopyDexEntry +	ld a, POKEDEX_SHOW_7  	jp PrintRadioLine -OaksPkmnTalk20: ; b8ac4 (2e:4ac4) -	call Functionb8ad4 -	ld a, $57 +PokedexShow7: ; b8ac4 (2e:4ac4) +	call CopyDexEntry +	ld a, POKEDEX_SHOW_8  	jp PrintRadioLine -OaksPkmnTalk21: ; b8acc (2e:4acc) -	call Functionb8ad4 -	ld a, $1 +PokedexShow8: ; b8acc (2e:4acc) +	call CopyDexEntry +	ld a, POKEDEX_SHOW  	jp PrintRadioLine -Functionb8ad4: ; b8ad4 (2e:4ad4) +CopyDexEntry: ; b8ad4 (2e:4ad4)  	ld a, [wd26b]  	ld l, a  	ld a, [wd26c] @@ -865,48 +871,48 @@ Functionb8ad4: ; b8ad4 (2e:4ad4)  	ld a, [wd26d]  	push af  	push hl -	call Functionb8af3 +	call CopyDexEntryPart1  	dec hl -	ld [hl], $57 +	ld [hl], "<DONE>"  	ld hl, wd26b  	call CopyRadioTextToRAM  	pop hl  	pop af -	call Functionb8b11 +	call CopyDexEntryPart2  	ret -Functionb8af3: ; b8af3 (2e:4af3) +CopyDexEntryPart1: ; b8af3 (2e:4af3)  	ld de, wd26d -	ld bc, $13 +	ld bc, SCREEN_WIDTH - 1  	call FarCopyBytes  	ld hl, wd26b -	ld [hl], $0 +	ld [hl], "<START>"  	inc hl -	ld [hl], $4f +	ld [hl], "<LINE>"  	inc hl -.asm_b8b05 +.loop  	ld a, [hli] -	cp $50 +	cp "@"  	ret z -	cp $4e +	cp "<NEXT>"  	ret z -	cp $5f +	cp "<DEXEND>"  	ret z -	jr .asm_b8b05 +	jr .loop -Functionb8b11: ; b8b11 (2e:4b11) +CopyDexEntryPart2: ; b8b11 (2e:4b11)  	ld d, a -.asm_b8b12 +.loop  	ld a, d  	call GetFarByte  	inc hl -	cp $50 -	jr z, .asm_b8b23 -	cp $4e -	jr z, .asm_b8b23 -	cp $5f -	jr nz, .asm_b8b12 -.asm_b8b23 +	cp "@" +	jr z, .okay +	cp "<NEXT>" +	jr z, .okay +	cp "<DEXEND>" +	jr nz, .loop +.okay  	ld a, l  	ld [wd26b], a  	ld a, h @@ -923,70 +929,70 @@ UnknownText_0xb8b30: ; 0xb8b30  ; 0xb8b35  BenMonMusic1: ; b8b35 (2e:4b35) -	call Functionb8b90 +	call StartPokemonMusicChannel  	ld hl, UnknownText_0xb8baa -	ld a, $17 +	ld a, POKEMON_MUSIC_2  	jp NextRadioLine  BenMonMusic2: ; b8b40 (2e:4b40)  	ld hl, UnknownText_0xb8baf -	ld a, $18 +	ld a, POKEMON_MUSIC_3  	jp NextRadioLine  BenMonMusic3: ; b8b48 (2e:4b48)  	ld hl, UnknownText_0xb8bb4 -	ld a, $19 +	ld a, POKEMON_MUSIC_4  	jp NextRadioLine  FernMonMusic1: ; b8b50 (2e:4b50) -	call Functionb8b90 +	call StartPokemonMusicChannel  	ld hl, UnknownText_0xb8bb9 -	ld a, $1d +	ld a, LETS_ALL_SING_2  	jp NextRadioLine  FernMonMusic2: ; b8b5b (2e:4b5b)  	ld hl, UnknownText_0xb8bbe -	ld a, $19 +	ld a, POKEMON_MUSIC_4  	jp NextRadioLine  BenFernMusic4: ; b8b63 (2e:4b63)  	ld hl, UnknownText_0xb8bc3 -	ld a, $1a +	ld a, POKEMON_MUSIC_5  	jp NextRadioLine  BenFernMusic5: ; b8b6b (2e:4b6b)  	call GetWeekday  	and 1  	ld hl, UnknownText_0xb8bc8 -	jr z, .asm_b8b78 +	jr z, .SunTueThurSun  	ld hl, UnknownText_0xb8bcd -.asm_b8b78 -	ld a, $1b +.SunTueThurSun +	ld a, POKEMON_MUSIC_6  	jp NextRadioLine  BenFernMusic6: ; b8b7d (2e:4b7d)  	call GetWeekday  	and 1  	ld hl, UnknownText_0xb8bd2 -	jr z, .asm_b8b8a +	jr z, .SunTueThurSun  	ld hl, UnknownText_0xb8bd7 -.asm_b8b8a -	ld a, $1c +.SunTueThurSun +	ld a, POKEMON_MUSIC_7  	jp NextRadioLine  BenFernMusic7: ; b8b8f (2e:4b8f)  	ret -Functionb8b90: ; b8b90 (2e:4b90) +StartPokemonMusicChannel: ; b8b90 (2e:4b90)  	call RadioTerminator  	call PrintText  	ld de, MUSIC_POKEMON_MARCH  	call GetWeekday  	and 1 -	jr z, .done +	jr z, .SunTueThurSun  	ld de, MUSIC_POKEMON_LULLABY -.done -	callab RadioMusicNone +.SunTueThurSun +	callab RadioMusicRestartDE  	ret  ; b8baa (2e:4baa) @@ -1057,37 +1063,37 @@ LuckyNumberShow1: ; b8bdc (2e:4bdc)  	callab Functionc422  .asm_b8bed  	ld hl, UnknownText_0xb8c7e -	ld a, $1e +	ld a, LUCKY_NUMBER_SHOW_2  	jp NextRadioLine  LuckyNumberShow2: ; b8bf5 (2e:4bf5)  	ld hl, UnknownText_0xb8c83 -	ld a, $1f +	ld a, LUCKY_NUMBER_SHOW_3  	jp NextRadioLine  LuckyNumberShow3: ; b8bfd (2e:4bfd)  	ld hl, UnknownText_0xb8c88 -	ld a, $20 +	ld a, LUCKY_NUMBER_SHOW_4  	jp NextRadioLine  LuckyNumberShow4: ; b8c05 (2e:4c05)  	ld hl, UnknownText_0xb8c8d -	ld a, $21 +	ld a, LUCKY_NUMBER_SHOW_5  	jp NextRadioLine  LuckyNumberShow5: ; b8c0d (2e:4c0d)  	ld hl, UnknownText_0xb8c92 -	ld a, $22 +	ld a, LUCKY_NUMBER_SHOW_6  	jp NextRadioLine  LuckyNumberShow6: ; b8c15 (2e:4c15)  	ld hl, UnknownText_0xb8c97 -	ld a, $23 +	ld a, LUCKY_NUMBER_SHOW_7  	jp NextRadioLine  LuckyNumberShow7: ; b8c1d (2e:4c1d)  	ld hl, UnknownText_0xb8c9c -	ld a, $24 +	ld a, LUCKY_NUMBER_SHOW_8  	jp NextRadioLine  LuckyNumberShow8: ; b8c25 (2e:4c25) @@ -1095,50 +1101,50 @@ LuckyNumberShow8: ; b8c25 (2e:4c25)  	ld de, wdc9f  	ld bc, $8205  	call PrintNum -	ld a, $50 +	ld a, "@"  	ld [StringBuffer1 + 5], a  	ld hl, UnknownText_0xb8ca1 -	ld a, $25 +	ld a, LUCKY_NUMBER_SHOW_9  	jp NextRadioLine  LuckyNumberShow9: ; b8c3e (2e:4c3e)  	ld hl, UnknownText_0xb8ca6 -	ld a, $26 +	ld a, LUCKY_NUMBER_SHOW_10  	jp NextRadioLine  LuckyNumberShow10: ; b8c46 (2e:4c46)  	ld hl, UnknownText_0xb8c9c -	ld a, $27 +	ld a, LUCKY_NUMBER_SHOW_11  	jp NextRadioLine  LuckyNumberShow11: ; b8c4e (2e:4c4e)  	ld hl, UnknownText_0xb8ca1 -	ld a, $28 +	ld a, LUCKY_NUMBER_SHOW_12  	jp NextRadioLine  LuckyNumberShow12: ; b8c56 (2e:4c56)  	ld hl, UnknownText_0xb8cab -	ld a, $29 +	ld a, LUCKY_NUMBER_SHOW_13  	jp NextRadioLine  LuckyNumberShow13: ; b8c5e (2e:4c5e)  	ld hl, UnknownText_0xb8cb0  	call Random  	and a -	ld a, $3 -	jr nz, .asm_b8c6b -	ld a, $2a -.asm_b8c6b +	ld a, LUCKY_CHANNEL +	jr nz, .okay +	ld a, LUCKY_NUMBER_SHOW_14 +.okay  	jp NextRadioLine  LuckyNumberShow14: ; b8c6e (2e:4c6e)  	ld hl, UnknownText_0xb8cb5 -	ld a, $2b +	ld a, LUCKY_NUMBER_SHOW_15  	jp NextRadioLine  LuckyNumberShow15: ; b8c76 (2e:4c76)  	ld hl, UnknownText_0xb8cba -	ld a, $3 +	ld a, LUCKY_CHANNEL  	jp NextRadioLine  ; b8c7e (2e:4c7e) @@ -1223,22 +1229,22 @@ UnknownText_0xb8cba: ; 0xb8cba  PeoplePlaces1: ; b8cbf (2e:4cbf)  	call StartRadioStation  	ld hl, UnknownText_0xb8ce3 -	ld a, $2c +	ld a, PLACES_AND_PEOPLE_2  	jp NextRadioLine -LuckyNumberShow16: ; b8cca (2e:4cca) +PeoplePlaces2: ; b8cca (2e:4cca)  	ld hl, UnknownText_0xb8ce8 -	ld a, $2d +	ld a, PLACES_AND_PEOPLE_3  	jp NextRadioLine -LuckyNumberShow17: ; b8cd2 (2e:4cd2) +PeoplePlaces3: ; b8cd2 (2e:4cd2)  	ld hl, UnknownText_0xb8ced  	call Random -	cp $7b -	ld a, $2e -	jr c, .asm_b8ce0 -	ld a, $30 -.asm_b8ce0 +	cp $7b ; 48 percent +	ld a, PLACES_AND_PEOPLE_4 ; People +	jr c, .ok +	ld a, PLACES_AND_PEOPLE_6 ; Places +.ok  	jp NextRadioLine  ; b8ce3 (2e:4ce3) @@ -1260,46 +1266,46 @@ UnknownText_0xb8ced: ; 0xb8ced  	db "@"  ; 0xb8cf2 -LuckyNumberShow18: ; b8cf2 (2e:4cf2) +PeoplePlaces4: ; People  	call Random -	and " " +	and $7f  	inc a -	cp $43 -	jr nc, LuckyNumberShow18 +	cp NUM_TRAINER_CLASSES - 1 +	jr nc, PeoplePlaces4  	push af -	ld hl, Unknown_b8d3e +	ld hl, .E4Names  	ld a, [StatusFlags]  	bit 6, a -	jr z, .NotMet -	ld hl, Unknown_b8d43 +	jr z, .ok +	ld hl, .KantoLeaderNames  	ld a, [KantoBadges]  	cp %11111111 -	jr nz, .NotMet -	ld hl, Unknown_b8d4b -.NotMet +	jr nz, .ok +	ld hl, .MiscNames +.ok  	pop af  	ld c, a -	ld de, $1 +	ld de, 1  	push bc  	call IsInArray  	pop bc -	jr c, LuckyNumberShow18 +	jr c, PeoplePlaces4  	push bc  	callab GetTrainerClassName  	ld de, StringBuffer1  	call CopyName1  	pop bc -	ld b, $1 +	ld b, 1  	callab GetTrainerName  	ld hl, UnknownText_0xb8d51 -	ld a, $2f +	ld a, PLACES_AND_PEOPLE_5  	jp NextRadioLine  ; b8d3e (2e:4d3e) -Unknown_b8d3e: db $0b, $0d, $0e, $0f, $10 -Unknown_b8d43: db $11, $12, $13, $15, $1a, $23, $2e, $40 -Unknown_b8d4b: db $09, $0a, $0c, $2a, $3f -               db $ff +.E4Names:          db WILL, BRUNO, KAREN, KOGA, CHAMPION ; $0b, $0d, $0e, $0f, $10 +.KantoLeaderNames: db BROCK, MISTY, LT_SURGE, ERIKA, JANINE, SABRINA, BLAINE, BLUE ; $11, $12, $13, $15, $1a, $23, $2e, $40 +.MiscNames:        db RIVAL1, POKEMON_PROF, CAL, RIVAL2, RED ; $09, $0a, $0c, $2a, $3f +                   db -1  ; b8d51  UnknownText_0xb8d51: ; 0xb8d51 @@ -1308,12 +1314,12 @@ UnknownText_0xb8d51: ; 0xb8d51  	db "@"  ; 0xb8d56 -LuckyNumberShow19: ; b8d56 (2e:4d56) +PeoplePlaces5: ; b8d56 (2e:4d56)  	call Random  	and $f  	ld e, a  	ld d, 0 -	ld hl, Unknown_b8d7d +	ld hl, .Descriptors  rept 2  	add hl, de  endr @@ -1321,138 +1327,138 @@ endr  	ld h, [hl]  	ld l, a  	call Random -	cp $a -	ld a, $5 -	jr c, .asm_b8d7a +	cp $a ; 6.25 percent +	ld a, PLACES_AND_PEOPLE +	jr c, .ok  	call Random -	cp $7b -	ld a, $2e -	jr c, .asm_b8d7a -	ld a, $30 -.asm_b8d7a +	cp $7b ; 48 percent +	ld a, PLACES_AND_PEOPLE_4 ; People +	jr c, .ok +	ld a, PLACES_AND_PEOPLE_6 ; Places +.ok  	jp NextRadioLine  ; b8d7d (2e:4d7d) -Unknown_b8d7d: ; b8d7d -	dw UnknownText_0xb8d9d -	dw UnknownText_0xb8da2 -	dw UnknownText_0xb8da7 -	dw UnknownText_0xb8dac -	dw UnknownText_0xb8db1 -	dw UnknownText_0xb8db6 -	dw UnknownText_0xb8dbb -	dw UnknownText_0xb8dc0 -	dw UnknownText_0xb8dc5 -	dw UnknownText_0xb8dca -	dw UnknownText_0xb8dcf -	dw UnknownText_0xb8dd4 -	dw UnknownText_0xb8dd9 -	dw UnknownText_0xb8dde -	dw UnknownText_0xb8de3 -	dw UnknownText_0xb8de8 +.Descriptors: ; b8d7d +	dw PnP_cute +	dw PnP_lazy +	dw PnP_happy +	dw PnP_noisy +	dw PnP_precocious +	dw PnP_bold +	dw PnP_picky +	dw PnP_sortofok +	dw PnP_justsoso +	dw PnP_actuallygreat +	dw PnP_justmytype +	dw PnP_socool +	dw PnP_inspiring +	dw PnP_weird +	dw PnP_rightforme +	dw PnP_odd  ; b8d9d -UnknownText_0xb8d9d: ; 0xb8d9d +PnP_cute: ; 0xb8d9d  	; is cute.  	text_jump UnknownText_0x1bcc80  	db "@"  ; 0xb8da2 -UnknownText_0xb8da2: ; 0xb8da2 +PnP_lazy: ; 0xb8da2  	; is sort of lazy.  	text_jump UnknownText_0x1bcc8b  	db "@"  ; 0xb8da7 -UnknownText_0xb8da7: ; 0xb8da7 +PnP_happy: ; 0xb8da7  	; is always happy.  	text_jump UnknownText_0x1bcc9e  	db "@"  ; 0xb8dac -UnknownText_0xb8dac: ; 0xb8dac +PnP_noisy: ; 0xb8dac  	; is quite noisy.  	text_jump UnknownText_0x1bccb1  	db "@"  ; 0xb8db1 -UnknownText_0xb8db1: ; 0xb8db1 +PnP_precocious: ; 0xb8db1  	; is precocious.  	text_jump UnknownText_0x1bccc3  	db "@"  ; 0xb8db6 -UnknownText_0xb8db6: ; 0xb8db6 +PnP_bold: ; 0xb8db6  	; is somewhat bold.  	text_jump UnknownText_0x1bccd4  	db "@"  ; 0xb8dbb -UnknownText_0xb8dbb: ; 0xb8dbb +PnP_picky: ; 0xb8dbb  	; is too picky!  	text_jump UnknownText_0x1bcce8  	db "@"  ; 0xb8dc0 -UnknownText_0xb8dc0: ; 0xb8dc0 +PnP_sortofok: ; 0xb8dc0  	; is sort of OK.  	text_jump UnknownText_0x1bccf8  	db "@"  ; 0xb8dc5 -UnknownText_0xb8dc5: ; 0xb8dc5 +PnP_justsoso: ; 0xb8dc5  	; is just so-so.  	text_jump UnknownText_0x1bcd09  	db "@"  ; 0xb8dca -UnknownText_0xb8dca: ; 0xb8dca +PnP_actuallygreat: ; 0xb8dca  	; is actually great.  	text_jump UnknownText_0x1bcd1a  	db "@"  ; 0xb8dcf -UnknownText_0xb8dcf: ; 0xb8dcf +PnP_justmytype: ; 0xb8dcf  	; is just my type.  	text_jump UnknownText_0x1bcd2f  	db "@"  ; 0xb8dd4 -UnknownText_0xb8dd4: ; 0xb8dd4 +PnP_socool: ; 0xb8dd4  	; is so cool, no?  	text_jump UnknownText_0x1bcd42  	db "@"  ; 0xb8dd9 -UnknownText_0xb8dd9: ; 0xb8dd9 +PnP_inspiring: ; 0xb8dd9  	; is inspiring!  	text_jump UnknownText_0x1bcd54  	db "@"  ; 0xb8dde -UnknownText_0xb8dde: ; 0xb8dde +PnP_weird: ; 0xb8dde  	; is kind of weird.  	text_jump UnknownText_0x1bcd64  	db "@"  ; 0xb8de3 -UnknownText_0xb8de3: ; 0xb8de3 +PnP_rightforme: ; 0xb8de3  	; is right for me?  	text_jump UnknownText_0x1bcd78  	db "@"  ; 0xb8de8 -UnknownText_0xb8de8: ; 0xb8de8 +PnP_odd: ; 0xb8de8  	; is definitely odd!  	text_jump UnknownText_0x1bcd8b  	db "@"  ; 0xb8ded -LuckyNumberShow20: ; b8ded (2e:4ded) +PeoplePlaces6: ; Places  	call Random -	cp $9 -	jr nc, LuckyNumberShow20 -	ld hl, Unknown_b8e11 +	cp 9 +	jr nc, PeoplePlaces6 +	ld hl, .Maps  	ld c, a  	ld b, 0  rept 2 @@ -1465,11 +1471,11 @@ endr  	ld e, a  	callba GetLandmarkName  	ld hl, UnknownText_0xb8e23 -	ld a, $31 +	ld a, PLACES_AND_PEOPLE_7  	jp NextRadioLine  ; b8e11 (2e:4e11) -Unknown_b8e11: ; b8e11 +.Maps: ; b8e11  	map PALLET_TOWN  	map ROUTE_22  	map PEWTER_CITY @@ -1487,12 +1493,12 @@ UnknownText_0xb8e23: ; 0xb8e23  	db "@"  ; 0xb8e28 -LuckyNumberShow21: ; b8e28 (2e:4e28) +PeoplePlaces7: ; b8e28 (2e:4e28)  	call Random  	and $f  	ld e, a  	ld d, 0 -	ld hl, Unknown_b8e52 +	ld hl, .descriptors  rept 2  	add hl, de  endr @@ -1501,86 +1507,86 @@ endr  	ld l, a  	call CopyRadioTextToRAM  	call Random -	cp $a -	ld a, $5 -	jr c, .asm_b8e4f +	cp $a ; 6.25 percent +	ld a, PLACES_AND_PEOPLE +	jr c, .ok  	call Random -	cp $7b -	ld a, $2e -	jr c, .asm_b8e4f -	ld a, $30 -.asm_b8e4f +	cp $7b ; 48 percent +	ld a, PLACES_AND_PEOPLE_4 ; People +	jr c, .ok +	ld a, PLACES_AND_PEOPLE_6 ; Places +.ok  	jp PrintRadioLine  ; b8e52 (2e:4e52) -Unknown_b8e52: ; b8e52 -	dw UnknownText_0xb8d9d -	dw UnknownText_0xb8da2 -	dw UnknownText_0xb8da7 -	dw UnknownText_0xb8dac -	dw UnknownText_0xb8db1 -	dw UnknownText_0xb8db6 -	dw UnknownText_0xb8dbb -	dw UnknownText_0xb8dc0 -	dw UnknownText_0xb8dc5 -	dw UnknownText_0xb8dca -	dw UnknownText_0xb8dcf -	dw UnknownText_0xb8dd4 -	dw UnknownText_0xb8dd9 -	dw UnknownText_0xb8dde -	dw UnknownText_0xb8de3 -	dw UnknownText_0xb8de8 +.descriptors: ; b8e52 +	dw PnP_cute +	dw PnP_lazy +	dw PnP_happy +	dw PnP_noisy +	dw PnP_precocious +	dw PnP_bold +	dw PnP_picky +	dw PnP_sortofok +	dw PnP_justsoso +	dw PnP_actuallygreat +	dw PnP_justmytype +	dw PnP_socool +	dw PnP_inspiring +	dw PnP_weird +	dw PnP_rightforme +	dw PnP_odd  ; b8e72  RocketRadio1: ; b8e72 (2e:4e72)  	call StartRadioStation  	ld hl, UnknownText_0xb8ec5 -	ld a, $32 +	ld a, ROCKET_RADIO_2  	jp NextRadioLine  RocketRadio2: ; b8e7d (2e:4e7d)  	ld hl, UnknownText_0xb8eca -	ld a, $33 +	ld a, ROCKET_RADIO_3  	jp NextRadioLine  RocketRadio3: ; b8e85 (2e:4e85)  	ld hl, UnknownText_0xb8ecf -	ld a, $34 +	ld a, ROCKET_RADIO_4  	jp NextRadioLine  RocketRadio4: ; b8e8d (2e:4e8d)  	ld hl, UnknownText_0xb8ed4 -	ld a, $35 +	ld a, ROCKET_RADIO_5  	jp NextRadioLine  RocketRadio5: ; b8e95 (2e:4e95)  	ld hl, UnknownText_0xb8ed9 -	ld a, $36 +	ld a, ROCKET_RADIO_6  	jp NextRadioLine  RocketRadio6: ; b8e9d (2e:4e9d)  	ld hl, UnknownText_0xb8ede -	ld a, $37 +	ld a, ROCKET_RADIO_7  	jp NextRadioLine  RocketRadio7: ; b8ea5 (2e:4ea5)  	ld hl, UnknownText_0xb8ee3 -	ld a, $38 +	ld a, ROCKET_RADIO_8  	jp NextRadioLine  RocketRadio8: ; b8ead (2e:4ead)  	ld hl, UnknownText_0xb8ee8 -	ld a, $39 +	ld a, ROCKET_RADIO_9  	jp NextRadioLine  RocketRadio9: ; b8eb5 (2e:4eb5)  	ld hl, UnknownText_0xb8eed -	ld a, $3a +	ld a, ROCKET_RADIO_10  	jp NextRadioLine  RocketRadio10: ; b8ebd (2e:4ebd)  	ld hl, UnknownText_0xb8ef2 -	ld a, $7 +	ld a, ROCKET_RADIO  	jp NextRadioLine  ; b8ec5 (2e:4ec5) @@ -1646,32 +1652,32 @@ UnknownText_0xb8ef2: ; 0xb8ef2  PokeFluteRadio: ; b8ef7 (2e:4ef7)  	call StartRadioStation -	ld a, $1 +	ld a, 1  	ld [wd005], a  	ret -EvolutionRadio: ; b8f00 (2e:4f00) +UnownRadio: ; b8f00 (2e:4f00)  	call StartRadioStation -	ld a, $1 +	ld a, 1  	ld [wd005], a  	ret -UnownRadio: ; b8f09 (2e:4f09) +EvolutionRadio: ; b8f09 (2e:4f09)  	call StartRadioStation -	ld a, $1 +	ld a, 1  	ld [wd005], a  	ret  BuenasPassword1: ; b8f12 (2e:4f12)  ; Determine if we need to be here  	call BuenasPasswordCheckMidnight -	jp nc, Functionb8f22 +	jp nc, .PlayPassword  	ld a, [wd005]  	and a  	jp z, BuenasPassword20  	jp BuenasPassword8 -Functionb8f22: ; b8f22 (2e:4f22) +.PlayPassword: ; b8f22 (2e:4f22)  	call StartRadioStation  	ld a, [hBGMapMode] ; $ff00+$d4  	push af @@ -1683,19 +1689,19 @@ Functionb8f22: ; b8f22 (2e:4f22)  	pop af  	ld [hBGMapMode], a ; $ff00+$d4  	ld hl, UnknownText_0xb9182 -	ld a, $40 +	ld a, BUENAS_PASSWORD_2  	jp NextRadioLine  BuenasPassword2: ; b8f3f (2e:4f3f)  	ld hl, UnknownText_0xb9187 -	ld a, $41 +	ld a, BUENAS_PASSWORD_3  	jp NextRadioLine  BuenasPassword3: ; b8f47 (2e:4f47)  	call BuenasPasswordCheckMidnight  	ld hl, UnknownText_0xb918c  	jp c, BuenasPasswordAfterMidnight -	ld a, $42 +	ld a, BUENAS_PASSWORD_4  	jp NextRadioLine  BuenasPassword4: ; b8f55 (2e:4f55) @@ -1731,7 +1737,7 @@ BuenasPassword4: ; b8f55 (2e:4f55)  	ld c, a  	call GetBuenasPassword  	ld hl, UnknownText_0xb9191 -	ld a, $43 +	ld a, BUENAS_PASSWORD_5  	jp NextRadioLine  GetBuenasPassword: ; b8f8f @@ -1859,19 +1865,19 @@ PasswordTable: ; b8ff9  BuenasPassword5: ; b909c (2e:509c)  	ld hl, UnknownText_0xb9196 -	ld a, $44 +	ld a, BUENAS_PASSWORD_6  	jp NextRadioLine  BuenasPassword6: ; b90a4 (2e:50a4)  	ld hl, UnknownText_0xb919b -	ld a, $45 +	ld a, BUENAS_PASSWORD_7  	jp NextRadioLine  BuenasPassword7: ; b90ac (2e:50ac)  	call BuenasPasswordCheckMidnight  	ld hl, UnknownText_0xb91a0  	jr c, BuenasPasswordAfterMidnight -	ld a, $4 +	ld a, BUENAS_PASSWORD  	jp NextRadioLine  BuenasPasswordAfterMidnight: ; b90b9 (2e:50b9) @@ -1879,69 +1885,69 @@ BuenasPasswordAfterMidnight: ; b90b9 (2e:50b9)  	ld hl, WeeklyFlags  	res 7, [hl]  	pop hl -	ld a, $46 +	ld a, BUENAS_PASSWORD_8  	jp NextRadioLine  BuenasPassword8: ; b90c5 (2e:50c5)  	ld hl, WeeklyFlags  	res 7, [hl]  	ld hl, UnknownText_0xb91d2 -	ld a, $47 +	ld a, BUENAS_PASSWORD_9  	jp NextRadioLine  BuenasPassword9: ; b90d2 (2e:50d2)  	ld hl, UnknownText_0xb91a5 -	ld a, $48 +	ld a, BUENAS_PASSWORD_10  	jp NextRadioLine  BuenasPassword10: ; b90da (2e:50da)  	ld hl, UnknownText_0xb91aa -	ld a, $49 +	ld a, BUENAS_PASSWORD_11  	jp NextRadioLine  BuenasPassword11: ; b90e2 (2e:50e2)  	ld hl, UnknownText_0xb91af -	ld a, $4a +	ld a, BUENAS_PASSWORD_12  	jp NextRadioLine  BuenasPassword12: ; b90ea (2e:50ea)  	ld hl, UnknownText_0xb91b4 -	ld a, $4b +	ld a, BUENAS_PASSWORD_13  	jp NextRadioLine  BuenasPassword13: ; b90f2 (2e:50f2)  	ld hl, UnknownText_0xb91b9 -	ld a, $4c +	ld a, BUENAS_PASSWORD_14  	jp NextRadioLine  BuenasPassword14: ; b90fa (2e:50fa)  	ld hl, UnknownText_0xb91be -	ld a, $4d +	ld a, BUENAS_PASSWORD_15  	jp NextRadioLine  BuenasPassword15: ; b9102 (2e:5102)  	ld hl, UnknownText_0xb91c3 -	ld a, $4e +	ld a, BUENAS_PASSWORD_16  	jp NextRadioLine  BuenasPassword16: ; b910a (2e:510a)  	ld hl, UnknownText_0xb91c8 -	ld a, $4f +	ld a, BUENAS_PASSWORD_17  	jp NextRadioLine  BuenasPassword17: ; b9112 (2e:5112)  	ld hl, UnknownText_0xb91cd -	ld a, $50 +	ld a, BUENAS_PASSWORD_18  	jp NextRadioLine  BuenasPassword18: ; b911a (2e:511a)  	ld hl, UnknownText_0xb91d2 -	ld a, $51 +	ld a, BUENAS_PASSWORD_19  	jp NextRadioLine  BuenasPassword19: ; b9122 (2e:5122)  	ld hl, UnknownText_0xb91d2 -	ld a, $52 +	ld a, BUENAS_PASSWORD_20  	jp NextRadioLine  BuenasPassword20: ; b912a (2e:512a) @@ -1958,7 +1964,7 @@ BuenasPassword20: ; b912a (2e:512a)  	xor a  	ld [wd005], a  	ld hl, UnknownText_0xb91d7 -	ld a, $53 +	ld a, BUENAS_PASSWORD_21  	jp NextRadioLine  BuenasPassword21: ; b9152 (2e:5152) @@ -1969,7 +1975,7 @@ BuenasPassword21: ; b9152 (2e:5152)  	call BuenasPasswordCheckMidnight  	jp nc, BuenasPassword1  	ld hl, UnknownText_0xb91d7 -	ld a, $53 +	ld a, BUENAS_PASSWORD_21  	jp NextRadioLine  BuenasPasswordCheckMidnight: ; b9169 (2e:5169) @@ -2115,7 +2121,7 @@ endr  	ld e, [hl]  	inc hl  	ld d, [hl] -	callab RadioMusicNone +	callab RadioMusicRestartDE  	ret  ; b920b (2e:520b) diff --git a/engine/radio2.asm b/engine/radio2.asm new file mode 100644 index 000000000..b843315d4 --- /dev/null +++ b/engine/radio2.asm @@ -0,0 +1,404 @@ +_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 | 
