pokecrystal-board/engine/radio.asm
PikalaxALT 6c3000efd2 Macro update, roam mon annotations
Updated map and mapgroup macros to get around an rgbds bug.

Legendary beast locale handling annotated and relabeled.

Added a new constant NUM_ENGINE_FLAGS for use in the EngineFlagAction function.  This will make it easier for modders to add or remove engine flags.
2015-07-25 19:02:36 -04:00

2142 lines
36 KiB
NASM

PlayRadioShow: ; b8612
; If we're already in the radio program proper, we don't need to be here.
ld a, [wd002]
cp 8
jr nc, .ok
; If Team Rocket is not occupying the radio tower, we don't need to be here.
ld a, [StatusFlags2]
bit 0, a ; checkflag ENGINE_ROCKETS_IN_RADIO_TOWER
jr z, .ok
; If we're in Kanto, we don't need to be here.
call IsInJohto
and a
jr nz, .ok
; Team Rocket broadcasts on all stations.
ld a, 7
ld [wd002], a
.ok
; Jump to the currently loaded station. The index to which we need to jump is in wd002.
ld a, [wd002]
ld e, a
ld d, 0
ld hl, RadioJumptable
rept 2
add hl, de
endr
ld a, [hli]
ld h, [hl]
ld l, a
jp [hl]
RadioJumptable: ; b863a (2e:463a)
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 EvolutionRadio ; $09
dw UnownRadio ; $0a
; OaksPkmnTalk
dw OaksPkmnTalk2 ; $0b
dw OaksPkmnTalk3 ; $0c
dw OaksPkmnTalk4 ; $0d
dw OaksPkmnTalk5 ; $0e
dw OaksPkmnTalk6 ; $0f
dw OaksPkmnTalk7 ; $10
dw OaksPkmnTalk8 ; $11
dw OaksPkmnTalk9 ; $12
dw OaksPkmnTalk10 ; $13
dw OaksPkmnTalk11 ; $14
dw OaksPkmnTalk12 ; $15
dw OaksPkmnTalk13 ; $16
; Ben Music
dw BenMonMusic2 ; $17
dw BenMonMusic3 ; $18
dw BenFernMusic4 ; $19
dw BenFernMusic5 ; $1a
dw BenFernMusic6 ; $1b
dw BenFernMusic7 ; $1c
dw FernMonMusic2 ; $1d
; Lucky Number Show
dw LuckyNumberShow2 ; $1e
dw LuckyNumberShow3 ; $1f
dw LuckyNumberShow4 ; $20
dw LuckyNumberShow5 ; $21
dw LuckyNumberShow6 ; $22
dw LuckyNumberShow7 ; $23
dw LuckyNumberShow8 ; $24
dw LuckyNumberShow9 ; $25
dw LuckyNumberShow10 ; $26
dw LuckyNumberShow11 ; $27
dw LuckyNumberShow12 ; $28
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
; Rocket Radio
dw RocketRadio2 ; $32
dw RocketRadio3 ; $33
dw RocketRadio4 ; $34
dw RocketRadio5 ; $35
dw RocketRadio6 ; $36
dw RocketRadio7 ; $37
dw RocketRadio8 ; $38
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
; Buenas Password
dw BuenasPassword2 ; $40
dw BuenasPassword3 ; $41
dw BuenasPassword4 ; $42
dw BuenasPassword5 ; $43
dw BuenasPassword6 ; $44
dw BuenasPassword7 ; $45
dw BuenasPassword8 ; $46
dw BuenasPassword9 ; $47
dw BuenasPassword10 ; $48
dw BuenasPassword11 ; $49
dw BuenasPassword12 ; $4a
dw BuenasPassword13 ; $4b
dw BuenasPassword14 ; $4c
dw BuenasPassword15 ; $4d
dw BuenasPassword16 ; $4e
dw BuenasPassword17 ; $4f
dw BuenasPassword18 ; $50
dw BuenasPassword19 ; $51
dw BuenasPassword20 ; $52
dw BuenasPassword21 ; $53
dw RadioScroll ; $54
; More Pokemon Channel stuff
dw OaksPkmnTalk19 ; $55
dw OaksPkmnTalk20 ; $56
dw OaksPkmnTalk21 ; $57
PrintRadioLine: ; b86ea (2e:46ea)
ld [wd003], a
ld hl, wd00c
ld a, [wd005]
cp $2
jr nc, .print
inc hl
ld [hl], $0
inc a
ld [wd005], a
cp $2
jr nz, .print
bccoord 1, 16
call PlaceWholeStringInBoxAtOnce
jr .skip
.print
call PrintTextBoxText
.skip
ld a, $54
ld [wd002], a
ld a, $64
ld [wd004], a
ret
; b8718 (2e:4718)
Functionb8718: ; b8718
push hl
ld b, SCREEN_WIDTH * 2
.greater_than_10
ld a, [hl]
cp "."
jr nz, .next
ld [hl], " "
.next
inc hl
dec b
jr nz, .greater_than_10
pop hl
ret
; b8728
RadioScroll: ; b8728 (2e:4728)
ld hl, wd004
ld a, [hl]
and a
jr z, .proceed
dec [hl]
ret
.proceed
ld a, [wd003]
ld [wd002], a
ld a, [wd005]
cp 1
call nz, CopyBottomLineToTopLine
jp ClearBottomLine
OaksPkmnTalk1: ; b8742 (2e:4742)
ld a, $5
ld [wd006], a
call StartRadioStation
ld hl, UnknownText_0xb8820
ld a, $b
jp NextRadioLine
OaksPkmnTalk2: ; b8752 (2e:4752)
ld hl, UnknownText_0xb8825
ld a, $c
jp NextRadioLine
OaksPkmnTalk3: ; b875a (2e:475a)
ld hl, UnknownText_0xb882a
ld a, $d
jp NextRadioLine
OaksPkmnTalk4: ; b8762 (2e:4762)
; Choose a random root, and a random Pokemon from that route.
call Random
and $1f
cp $f
jr nc, OaksPkmnTalk4
ld hl, Unknown_b87f2
ld c, a
ld b, 0
rept 2
add hl, bc
endr
ld b, [hl]
inc hl
ld c, [hl]
push bc
ld hl, JohtoGrassWildMons
.greater_than_10
ld a, BANK(JohtoGrassWildMons)
call GetFarByte
cp -1
jr z, .done2
inc hl
cp b
jr nz, .next
ld a, BANK(JohtoGrassWildMons)
call GetFarByte
cp c
jr z, .done
.next
dec hl
ld de, $2f
add hl, de
jr .greater_than_10
.done
rept 4
inc hl
endr
.both_bits_set
call Random
and 3
cp 3
jr z, .both_bits_set
ld bc, $e
call AddNTimes
.greater_than_102
call Random
and 7
cp 2
jr c, .greater_than_102
cp 5
jr nc, .greater_than_102
ld e, a
ld d, 0
rept 2
add hl, de
endr
inc hl
ld a, BANK(JohtoGrassWildMons)
call GetFarByte
ld [wd265], a
ld [CurPartySpecies], a
call GetPokemonName
ld hl, StringBuffer1
ld de, wd050
ld bc, $b
call CopyBytes
pop bc
call GetWorldMapLocation
ld e, a
callba GetLandmarkName
ld hl, UnknownText_0xb882f
call CopyRadioTextToRAM
ld a, $e
jp PrintRadioLine
.done2
pop bc
ld a, $0
jp PrintRadioLine
; b87f2 (2e:47f2)
Unknown_b87f2: ; b87f2
map ROUTE_29
map ROUTE_46
map ROUTE_30
map ROUTE_32
map ROUTE_34
map ROUTE_35
map ROUTE_37
map ROUTE_38
map ROUTE_39
map ROUTE_42
map ROUTE_43
map ROUTE_44
map ROUTE_45
map ROUTE_36
map ROUTE_31
; b8810
OaksPkmnTalk5: ; b8810 (2e:4810)
ld hl, UnknownText_0xb8834
ld a, $f
jp NextRadioLine
OaksPkmnTalk6: ; b8818 (2e:4818)
ld hl, UnknownText_0xb8839
ld a, $10
jp NextRadioLine
; b8820 (2e:4820)
UnknownText_0xb8820: ; 0xb8820
; MARY: PROF.OAK'S
text_jump UnknownText_0x1bc81a
db "@"
; 0xb8825
UnknownText_0xb8825: ; 0xb8825
; #MON TALK!
text_jump UnknownText_0x1bc82d
db "@"
; 0xb882a
UnknownText_0xb882a: ; 0xb882a
; With me, MARY!
text_jump UnknownText_0x1bc83a
db "@"
; 0xb882f
UnknownText_0xb882f: ; 0xb882f
; OAK: @ @
text_jump UnknownText_0x1bc84b
db "@"
; 0xb8834
UnknownText_0xb8834: ; 0xb8834
; may be seen around
text_jump UnknownText_0x1bc858
db "@"
; 0xb8839
UnknownText_0xb8839: ; 0xb8839
; @ .
text_jump UnknownText_0x1bc86d
db "@"
; 0xb883e
OaksPkmnTalk7: ; b883e (2e:483e)
ld a, [CurPartySpecies]
ld [wd265], a
call GetPokemonName
ld hl, UnknownText_0xb884f
ld a, $11
jp NextRadioLine
; b884f (2e:484f)
UnknownText_0xb884f: ; 0xb884f
; MARY: @ 's
text_jump UnknownText_0x1bc876
db "@"
; 0xb8854
OaksPkmnTalk8: ; b8854 (2e:4854)
call Random
and $f
ld e, a
ld d, 0
ld hl, Unknown_b8869
rept 2
add hl, de
endr
ld a, [hli]
ld h, [hl]
ld l, a
ld a, $12
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
; b8889
UnknownText_0xb8889: ; 0xb8889
; sweet and adorably
text_jump UnknownText_0x1bc885
db "@"
; 0xb888e
UnknownText_0xb888e: ; 0xb888e
; wiggly and slickly
text_jump UnknownText_0x1bc89a
db "@"
; 0xb8893
UnknownText_0xb8893: ; 0xb8893
; aptly named and
text_jump UnknownText_0x1bc8af
db "@"
; 0xb8898
UnknownText_0xb8898: ; 0xb8898
; undeniably kind of
text_jump UnknownText_0x1bc8c1
db "@"
; 0xb889d
UnknownText_0xb889d: ; 0xb889d
; so, so unbearably
text_jump UnknownText_0x1bc8d6
db "@"
; 0xb88a2
UnknownText_0xb88a2: ; 0xb88a2
; wow, impressively
text_jump UnknownText_0x1bc8ea
db "@"
; 0xb88a7
UnknownText_0xb88a7: ; 0xb88a7
; almost poisonously
text_jump UnknownText_0x1bc8fe
db "@"
; 0xb88ac
UnknownText_0xb88ac: ; 0xb88ac
; ooh, so sensually
text_jump UnknownText_0x1bc913
db "@"
; 0xb88b1
UnknownText_0xb88b1: ; 0xb88b1
; so mischievously
text_jump UnknownText_0x1bc927
db "@"
; 0xb88b6
UnknownText_0xb88b6: ; 0xb88b6
; so very topically
text_jump UnknownText_0x1bc93a
db "@"
; 0xb88bb
UnknownText_0xb88bb: ; 0xb88bb
; sure addictively
text_jump UnknownText_0x1bc94e
db "@"
; 0xb88c0
UnknownText_0xb88c0: ; 0xb88c0
; looks in water is
text_jump UnknownText_0x1bc961
db "@"
; 0xb88c5
UnknownText_0xb88c5: ; 0xb88c5
; evolution must be
text_jump UnknownText_0x1bc975
db "@"
; 0xb88ca
UnknownText_0xb88ca: ; 0xb88ca
; provocatively
text_jump UnknownText_0x1bc989
db "@"
; 0xb88cf
UnknownText_0xb88cf: ; 0xb88cf
; so flipped out and
text_jump UnknownText_0x1bc999
db "@"
; 0xb88d4
UnknownText_0xb88d4: ; 0xb88d4
; heart-meltingly
text_jump UnknownText_0x1bc9ae
db "@"
; 0xb88d9
OaksPkmnTalk9: ; b88d9 (2e:48d9)
call Random
and $f
ld e, a
ld d, 0
ld hl, Unknown_b88fe
rept 2
add hl, de
endr
ld a, [hli]
ld h, [hl]
ld l, a
ld a, [wd006]
dec a
ld [wd006], a
ld a, $d
jr nz, .nope
ld a, $5
ld [wd006], a
ld a, $3b
.nope
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
; b891e
UnknownText_0xb891e: ; 0xb891e
; cute.
text_jump UnknownText_0x1bc9c0
db "@"
; 0xb8923
UnknownText_0xb8923: ; 0xb8923
; weird.
text_jump UnknownText_0x1bc9c8
db "@"
; 0xb8928
UnknownText_0xb8928: ; 0xb8928
; pleasant.
text_jump UnknownText_0x1bc9d1
db "@"
; 0xb892d
UnknownText_0xb892d: ; 0xb892d
; bold, sort of.
text_jump UnknownText_0x1bc9dd
db "@"
; 0xb8932
UnknownText_0xb8932: ; 0xb8932
; frightening.
text_jump UnknownText_0x1bc9ee
db "@"
; 0xb8937
UnknownText_0xb8937: ; 0xb8937
; suave & debonair!
text_jump UnknownText_0x1bc9fd
db "@"
; 0xb893c
UnknownText_0xb893c: ; 0xb893c
; powerful.
text_jump UnknownText_0x1bca11
db "@"
; 0xb8941
UnknownText_0xb8941: ; 0xb8941
; exciting.
text_jump UnknownText_0x1bca1d
db "@"
; 0xb8946
UnknownText_0xb8946: ; 0xb8946
; groovy!
text_jump UnknownText_0x1bca29
db "@"
; 0xb894b
UnknownText_0xb894b: ; 0xb894b
; inspiring.
text_jump UnknownText_0x1bca33
db "@"
; 0xb8950
UnknownText_0xb8950: ; 0xb8950
; friendly.
text_jump UnknownText_0x1bca40
db "@"
; 0xb8955
UnknownText_0xb8955: ; 0xb8955
; hot, hot, hot!
text_jump UnknownText_0x1bca4c
db "@"
; 0xb895a
UnknownText_0xb895a: ; 0xb895a
; stimulating.
text_jump UnknownText_0x1bca5d
db "@"
; 0xb895f
UnknownText_0xb895f: ; 0xb895f
; guarded.
text_jump UnknownText_0x1bca6c
db "@"
; 0xb8964
UnknownText_0xb8964: ; 0xb8964
; lovely.
text_jump UnknownText_0x1bca77
db "@"
; 0xb8969
UnknownText_0xb8969: ; 0xb8969
; speedy.
text_jump UnknownText_0x1bca81
db "@"
; 0xb896e
OaksPkmnTalk14: ; b896e (2e:496e)
callba Function91868
ld hl, UnknownText_0xb8993
call PrintText
call WaitBGMap
ld hl, UnknownText_0xb898e
call PrintText
ld a, $3c
ld [wd002], a
ld a, $64
ld [wd004], a
ret
; b898e (2e:498e)
UnknownText_0xb898e: ; 0xb898e
; #MON
text_jump UnknownText_0x1bca8b
db "@"
; 0xb8993
UnknownText_0xb8993: ; 0xb8993
db "@"
; 0xb8994
OaksPkmnTalk15: ; b8994 (2e:4994)
ld hl, wd004
dec [hl]
ret nz
hlcoord 9, 14
ld de, String_b89a4
ld a, $3d
jp Functionb8a00
; b89a4 (2e:49a4)
String_b89a4:
db "#MON@"
; b89a9
OaksPkmnTalk16: ; b89a9 (2e:49a9)
ld hl, wd004
dec [hl]
ret nz
hlcoord 1, 16
ld de, String_b89b9
ld a, $3e
jp Functionb8a00
; b89b9 (2e:49b9)
String_b89b9:
db "#MON Channel@"
; b89c6
OaksPkmnTalk17: ; b89c6 (2e:49c6)
ld hl, wd004
dec [hl]
ret nz
hlcoord 12, 16
ld de, String_b89d6
ld a, $3f
jp Functionb8a00
; b89d6 (2e:49d6)
String_b89d6:
db "@"
; b89d7
OaksPkmnTalk18: ; b89d7 (2e:49d7)
ld hl, wd004
dec [hl]
ret nz
ld de, $1d
callab RadioMusicNone
ld hl, UnknownText_0xb89ff
call PrintText
ld a, $d
ld [wd003], a
xor a
ld [wd005], a
ld a, $54
ld [wd002], a
ld a, $a
ld [wd004], a
ret
; b89ff (2e:49ff)
UnknownText_0xb89ff: ; 0xb89ff
db "@"
; 0xb8a00
Functionb8a00: ; b8a00 (2e:4a00)
ld [wd002], a
ld a, $64
ld [wd004], a
jp PlaceString
CopyBottomLineToTopLine: ; b8a0b (2e:4a0b)
hlcoord 0, 15
decoord 0, 13
ld bc, SCREEN_WIDTH * 2
jp CopyBytes
ClearBottomLine: ; b8a17 (2e:4a17)
hlcoord 1, 15
ld bc, $12
ld a, " "
call ByteFill
hlcoord 1, 16
ld bc, $12
ld a, " "
jp ByteFill
Functionb8a2d: ; b8a2d (2e:4a2d)
push hl
push de
ld a, [CurPartySpecies]
dec a
rlca
rlca
and 3
ld hl, .pokedexbanks
ld d, 0
ld e, a
add hl, de
ld a, [hl]
pop de
pop hl
ret
; b8a42 (2e:4a42)
.pokedexbanks
db BANK(PokedexEntries1)
db BANK(PokedexEntries2)
db BANK(PokedexEntries3)
db BANK(PokedexEntries4)
; b8a46
PokedexShow1: ; b8a46 (2e:4a46)
call StartRadioStation
.asm_b8a49
call Random
cp CELEBI
jr nc, .asm_b8a49
ld c, a
push bc
ld a, c
call CheckCaughtMon
pop bc
jr z, .asm_b8a49
inc c
ld a, c
ld [CurPartySpecies], a
ld [wd265], a
call GetPokemonName
ld hl, UnknownText_0xb8b30
ld a, $13
jp NextRadioLine
OaksPkmnTalk10: ; b8a6c (2e:4a6c)
ld a, [CurPartySpecies]
dec a
ld hl, PokedexDataPointerTable
ld c, a
ld b, 0
rept 2
add hl, bc
endr
ld a, BANK(PokedexDataPointerTable)
call GetFarHalfword
call Functionb8a2d
push af
push hl
call Functionb8af3
dec hl
ld [hl], $57
ld hl, wd26b
call CopyRadioTextToRAM
pop hl
pop af
call Functionb8b11
rept 4
inc hl
endr
ld a, l
ld [wd26b], a
ld a, h
ld [wd26c], a
ld a, $14
jp PrintRadioLine
OaksPkmnTalk11: ; b8aa4 (2e:4aa4)
call Functionb8ad4
ld a, $15
jp PrintRadioLine
OaksPkmnTalk12: ; b8aac (2e:4aac)
call Functionb8ad4
ld a, $16
jp PrintRadioLine
OaksPkmnTalk13: ; b8ab4 (2e:4ab4)
call Functionb8ad4
ld a, $55
jp PrintRadioLine
OaksPkmnTalk19: ; b8abc (2e:4abc)
call Functionb8ad4
ld a, $56
jp PrintRadioLine
OaksPkmnTalk20: ; b8ac4 (2e:4ac4)
call Functionb8ad4
ld a, $57
jp PrintRadioLine
OaksPkmnTalk21: ; b8acc (2e:4acc)
call Functionb8ad4
ld a, $1
jp PrintRadioLine
Functionb8ad4: ; b8ad4 (2e:4ad4)
ld a, [wd26b]
ld l, a
ld a, [wd26c]
ld h, a
ld a, [wd26d]
push af
push hl
call Functionb8af3
dec hl
ld [hl], $57
ld hl, wd26b
call CopyRadioTextToRAM
pop hl
pop af
call Functionb8b11
ret
Functionb8af3: ; b8af3 (2e:4af3)
ld de, wd26d
ld bc, $13
call FarCopyBytes
ld hl, wd26b
ld [hl], $0
inc hl
ld [hl], $4f
inc hl
.asm_b8b05
ld a, [hli]
cp $50
ret z
cp $4e
ret z
cp $5f
ret z
jr .asm_b8b05
Functionb8b11: ; b8b11 (2e:4b11)
ld d, a
.asm_b8b12
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
ld a, l
ld [wd26b], a
ld a, h
ld [wd26c], a
ld a, d
ld [wd26d], a
ret
; b8b30 (2e:4b30)
UnknownText_0xb8b30: ; 0xb8b30
; @ @
text_jump UnknownText_0x1bca91
db "@"
; 0xb8b35
BenMonMusic1: ; b8b35 (2e:4b35)
call Functionb8b90
ld hl, UnknownText_0xb8baa
ld a, $17
jp NextRadioLine
BenMonMusic2: ; b8b40 (2e:4b40)
ld hl, UnknownText_0xb8baf
ld a, $18
jp NextRadioLine
BenMonMusic3: ; b8b48 (2e:4b48)
ld hl, UnknownText_0xb8bb4
ld a, $19
jp NextRadioLine
FernMonMusic1: ; b8b50 (2e:4b50)
call Functionb8b90
ld hl, UnknownText_0xb8bb9
ld a, $1d
jp NextRadioLine
FernMonMusic2: ; b8b5b (2e:4b5b)
ld hl, UnknownText_0xb8bbe
ld a, $19
jp NextRadioLine
BenFernMusic4: ; b8b63 (2e:4b63)
ld hl, UnknownText_0xb8bc3
ld a, $1a
jp NextRadioLine
BenFernMusic5: ; b8b6b (2e:4b6b)
call GetWeekday
and 1
ld hl, UnknownText_0xb8bc8
jr z, .asm_b8b78
ld hl, UnknownText_0xb8bcd
.asm_b8b78
ld a, $1b
jp NextRadioLine
BenFernMusic6: ; b8b7d (2e:4b7d)
call GetWeekday
and 1
ld hl, UnknownText_0xb8bd2
jr z, .asm_b8b8a
ld hl, UnknownText_0xb8bd7
.asm_b8b8a
ld a, $1c
jp NextRadioLine
BenFernMusic7: ; b8b8f (2e:4b8f)
ret
Functionb8b90: ; b8b90 (2e:4b90)
call RadioTerminator
call PrintText
ld de, MUSIC_POKEMON_MARCH
call GetWeekday
and 1
jr z, .done
ld de, MUSIC_POKEMON_LULLABY
.done
callab RadioMusicNone
ret
; b8baa (2e:4baa)
UnknownText_0xb8baa: ; 0xb8baa
; BEN: #MON MUSIC
text_jump UnknownText_0x1bca99
db "@"
; 0xb8baf
UnknownText_0xb8baf: ; 0xb8baf
; CHANNEL!
text_jump UnknownText_0x1bcaab
db "@"
; 0xb8bb4
UnknownText_0xb8bb4: ; 0xb8bb4
; It's me, DJ BEN!
text_jump UnknownText_0x1bcab6
db "@"
; 0xb8bb9
UnknownText_0xb8bb9: ; 0xb8bb9
; FERN: #MUSIC!
text_jump UnknownText_0x1bcac8
db "@"
; 0xb8bbe
UnknownText_0xb8bbe: ; 0xb8bbe
; With DJ FERN!
text_jump UnknownText_0x1bcad8
db "@"
; 0xb8bc3
UnknownText_0xb8bc3: ; 0xb8bc3
; Today's @ ,
text_jump UnknownText_0x1bcae8
db "@"
; 0xb8bc8
UnknownText_0xb8bc8: ; 0xb8bc8
; so let us jam to
text_jump UnknownText_0x1bcaf6
db "@"
; 0xb8bcd
UnknownText_0xb8bcd: ; 0xb8bcd
; so chill out to
text_jump UnknownText_0x1bcb09
db "@"
; 0xb8bd2
UnknownText_0xb8bd2: ; 0xb8bd2
; #MON March!
text_jump UnknownText_0x1bcb1b
db "@"
; 0xb8bd7
UnknownText_0xb8bd7: ; 0xb8bd7
; #MON Lullaby!
text_jump UnknownText_0x1bcb29
db "@"
; 0xb8bdc
LuckyNumberShow1: ; b8bdc (2e:4bdc)
call StartRadioStation
callab Functionc434
jr nc, .asm_b8bed
callab Functionc422
.asm_b8bed
ld hl, UnknownText_0xb8c7e
ld a, $1e
jp NextRadioLine
LuckyNumberShow2: ; b8bf5 (2e:4bf5)
ld hl, UnknownText_0xb8c83
ld a, $1f
jp NextRadioLine
LuckyNumberShow3: ; b8bfd (2e:4bfd)
ld hl, UnknownText_0xb8c88
ld a, $20
jp NextRadioLine
LuckyNumberShow4: ; b8c05 (2e:4c05)
ld hl, UnknownText_0xb8c8d
ld a, $21
jp NextRadioLine
LuckyNumberShow5: ; b8c0d (2e:4c0d)
ld hl, UnknownText_0xb8c92
ld a, $22
jp NextRadioLine
LuckyNumberShow6: ; b8c15 (2e:4c15)
ld hl, UnknownText_0xb8c97
ld a, $23
jp NextRadioLine
LuckyNumberShow7: ; b8c1d (2e:4c1d)
ld hl, UnknownText_0xb8c9c
ld a, $24
jp NextRadioLine
LuckyNumberShow8: ; b8c25 (2e:4c25)
ld hl, StringBuffer1
ld de, wdc9f
ld bc, $8205
call PrintNum
ld a, $50
ld [StringBuffer1 + 5], a
ld hl, UnknownText_0xb8ca1
ld a, $25
jp NextRadioLine
LuckyNumberShow9: ; b8c3e (2e:4c3e)
ld hl, UnknownText_0xb8ca6
ld a, $26
jp NextRadioLine
LuckyNumberShow10: ; b8c46 (2e:4c46)
ld hl, UnknownText_0xb8c9c
ld a, $27
jp NextRadioLine
LuckyNumberShow11: ; b8c4e (2e:4c4e)
ld hl, UnknownText_0xb8ca1
ld a, $28
jp NextRadioLine
LuckyNumberShow12: ; b8c56 (2e:4c56)
ld hl, UnknownText_0xb8cab
ld a, $29
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
jp NextRadioLine
LuckyNumberShow14: ; b8c6e (2e:4c6e)
ld hl, UnknownText_0xb8cb5
ld a, $2b
jp NextRadioLine
LuckyNumberShow15: ; b8c76 (2e:4c76)
ld hl, UnknownText_0xb8cba
ld a, $3
jp NextRadioLine
; b8c7e (2e:4c7e)
UnknownText_0xb8c7e: ; 0xb8c7e
; REED: Yeehaw! How
text_jump UnknownText_0x1bcb39
db "@"
; 0xb8c83
UnknownText_0xb8c83: ; 0xb8c83
; y'all doin' now?
text_jump UnknownText_0x1bcb4d
db "@"
; 0xb8c88
UnknownText_0xb8c88: ; 0xb8c88
; Whether you're up
text_jump UnknownText_0x1bcb60
db "@"
; 0xb8c8d
UnknownText_0xb8c8d: ; 0xb8c8d
; or way down low,
text_jump UnknownText_0x1bcb73
db "@"
; 0xb8c92
UnknownText_0xb8c92: ; 0xb8c92
; don't you miss the
text_jump UnknownText_0x1bcb86
db "@"
; 0xb8c97
UnknownText_0xb8c97: ; 0xb8c97
; LUCKY NUMBER SHOW!
text_jump UnknownText_0x1bcb9a
db "@"
; 0xb8c9c
UnknownText_0xb8c9c: ; 0xb8c9c
; This week's Lucky
text_jump UnknownText_0x1bcbaf
db "@"
; 0xb8ca1
UnknownText_0xb8ca1: ; 0xb8ca1
; Number is @ !
text_jump UnknownText_0x1bcbc2
db "@"
; 0xb8ca6
UnknownText_0xb8ca6: ; 0xb8ca6
; I'll repeat that!
text_jump UnknownText_0x1bcbd6
db "@"
; 0xb8cab
UnknownText_0xb8cab: ; 0xb8cab
; Match it and go to
text_jump UnknownText_0x1bcbe9
db "@"
; 0xb8cb0
UnknownText_0xb8cb0: ; 0xb8cb0
; the RADIO TOWER!
text_jump UnknownText_0x1bcbfe
db "@"
; 0xb8cb5
UnknownText_0xb8cb5: ; 0xb8cb5
; …Repeating myself
text_jump UnknownText_0x1bcc11
db "@"
; 0xb8cba
UnknownText_0xb8cba: ; 0xb8cba
; gets to be a drag…
text_jump UnknownText_0x1bcc25
db "@"
; 0xb8cbf
PeoplePlaces1: ; b8cbf (2e:4cbf)
call StartRadioStation
ld hl, UnknownText_0xb8ce3
ld a, $2c
jp NextRadioLine
LuckyNumberShow16: ; b8cca (2e:4cca)
ld hl, UnknownText_0xb8ce8
ld a, $2d
jp NextRadioLine
LuckyNumberShow17: ; b8cd2 (2e:4cd2)
ld hl, UnknownText_0xb8ced
call Random
cp $7b
ld a, $2e
jr c, .asm_b8ce0
ld a, $30
.asm_b8ce0
jp NextRadioLine
; b8ce3 (2e:4ce3)
UnknownText_0xb8ce3: ; 0xb8ce3
; PLACES AND PEOPLE!
text_jump UnknownText_0x1bcc3a
db "@"
; 0xb8ce8
UnknownText_0xb8ce8: ; 0xb8ce8
; Brought to you by
text_jump UnknownText_0x1bcc4f
db "@"
; 0xb8ced
UnknownText_0xb8ced: ; 0xb8ced
; me, DJ LILY!
text_jump UnknownText_0x1bcc63
db "@"
; 0xb8cf2
LuckyNumberShow18: ; b8cf2 (2e:4cf2)
call Random
and " "
inc a
cp $43
jr nc, LuckyNumberShow18
push af
ld hl, Unknown_b8d3e
ld a, [StatusFlags]
bit 6, a
jr z, .NotMet
ld hl, Unknown_b8d43
ld a, [KantoBadges]
cp %11111111
jr nz, .NotMet
ld hl, Unknown_b8d4b
.NotMet
pop af
ld c, a
ld de, $1
push bc
call IsInArray
pop bc
jr c, LuckyNumberShow18
push bc
callab GetTrainerClassName
ld de, StringBuffer1
call CopyName1
pop bc
ld b, $1
callab GetTrainerName
ld hl, UnknownText_0xb8d51
ld a, $2f
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
; b8d51
UnknownText_0xb8d51: ; 0xb8d51
; @ @ @
text_jump UnknownText_0x1bcc72
db "@"
; 0xb8d56
LuckyNumberShow19: ; b8d56 (2e:4d56)
call Random
and $f
ld e, a
ld d, 0
ld hl, Unknown_b8d7d
rept 2
add hl, de
endr
ld a, [hli]
ld h, [hl]
ld l, a
call Random
cp $a
ld a, $5
jr c, .asm_b8d7a
call Random
cp $7b
ld a, $2e
jr c, .asm_b8d7a
ld a, $30
.asm_b8d7a
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
; b8d9d
UnknownText_0xb8d9d: ; 0xb8d9d
; is cute.
text_jump UnknownText_0x1bcc80
db "@"
; 0xb8da2
UnknownText_0xb8da2: ; 0xb8da2
; is sort of lazy.
text_jump UnknownText_0x1bcc8b
db "@"
; 0xb8da7
UnknownText_0xb8da7: ; 0xb8da7
; is always happy.
text_jump UnknownText_0x1bcc9e
db "@"
; 0xb8dac
UnknownText_0xb8dac: ; 0xb8dac
; is quite noisy.
text_jump UnknownText_0x1bccb1
db "@"
; 0xb8db1
UnknownText_0xb8db1: ; 0xb8db1
; is precocious.
text_jump UnknownText_0x1bccc3
db "@"
; 0xb8db6
UnknownText_0xb8db6: ; 0xb8db6
; is somewhat bold.
text_jump UnknownText_0x1bccd4
db "@"
; 0xb8dbb
UnknownText_0xb8dbb: ; 0xb8dbb
; is too picky!
text_jump UnknownText_0x1bcce8
db "@"
; 0xb8dc0
UnknownText_0xb8dc0: ; 0xb8dc0
; is sort of OK.
text_jump UnknownText_0x1bccf8
db "@"
; 0xb8dc5
UnknownText_0xb8dc5: ; 0xb8dc5
; is just so-so.
text_jump UnknownText_0x1bcd09
db "@"
; 0xb8dca
UnknownText_0xb8dca: ; 0xb8dca
; is actually great.
text_jump UnknownText_0x1bcd1a
db "@"
; 0xb8dcf
UnknownText_0xb8dcf: ; 0xb8dcf
; is just my type.
text_jump UnknownText_0x1bcd2f
db "@"
; 0xb8dd4
UnknownText_0xb8dd4: ; 0xb8dd4
; is so cool, no?
text_jump UnknownText_0x1bcd42
db "@"
; 0xb8dd9
UnknownText_0xb8dd9: ; 0xb8dd9
; is inspiring!
text_jump UnknownText_0x1bcd54
db "@"
; 0xb8dde
UnknownText_0xb8dde: ; 0xb8dde
; is kind of weird.
text_jump UnknownText_0x1bcd64
db "@"
; 0xb8de3
UnknownText_0xb8de3: ; 0xb8de3
; is right for me?
text_jump UnknownText_0x1bcd78
db "@"
; 0xb8de8
UnknownText_0xb8de8: ; 0xb8de8
; is definitely odd!
text_jump UnknownText_0x1bcd8b
db "@"
; 0xb8ded
LuckyNumberShow20: ; b8ded (2e:4ded)
call Random
cp $9
jr nc, LuckyNumberShow20
ld hl, Unknown_b8e11
ld c, a
ld b, 0
rept 2
add hl, bc
endr
ld b, [hl]
inc hl
ld c, [hl]
call GetWorldMapLocation
ld e, a
callba GetLandmarkName
ld hl, UnknownText_0xb8e23
ld a, $31
jp NextRadioLine
; b8e11 (2e:4e11)
Unknown_b8e11: ; b8e11
map PALLET_TOWN
map ROUTE_22
map PEWTER_CITY
map CERULEAN_POLICE_STATION
map ROUTE_12
map ROUTE_11
map ROUTE_16
map ROUTE_14
map CINNABAR_POKECENTER_2F_BETA
; b8e23
UnknownText_0xb8e23: ; 0xb8e23
; @ @
text_jump UnknownText_0x1bcda0
db "@"
; 0xb8e28
LuckyNumberShow21: ; b8e28 (2e:4e28)
call Random
and $f
ld e, a
ld d, 0
ld hl, Unknown_b8e52
rept 2
add hl, de
endr
ld a, [hli]
ld h, [hl]
ld l, a
call CopyRadioTextToRAM
call Random
cp $a
ld a, $5
jr c, .asm_b8e4f
call Random
cp $7b
ld a, $2e
jr c, .asm_b8e4f
ld a, $30
.asm_b8e4f
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
; b8e72
RocketRadio1: ; b8e72 (2e:4e72)
call StartRadioStation
ld hl, UnknownText_0xb8ec5
ld a, $32
jp NextRadioLine
RocketRadio2: ; b8e7d (2e:4e7d)
ld hl, UnknownText_0xb8eca
ld a, $33
jp NextRadioLine
RocketRadio3: ; b8e85 (2e:4e85)
ld hl, UnknownText_0xb8ecf
ld a, $34
jp NextRadioLine
RocketRadio4: ; b8e8d (2e:4e8d)
ld hl, UnknownText_0xb8ed4
ld a, $35
jp NextRadioLine
RocketRadio5: ; b8e95 (2e:4e95)
ld hl, UnknownText_0xb8ed9
ld a, $36
jp NextRadioLine
RocketRadio6: ; b8e9d (2e:4e9d)
ld hl, UnknownText_0xb8ede
ld a, $37
jp NextRadioLine
RocketRadio7: ; b8ea5 (2e:4ea5)
ld hl, UnknownText_0xb8ee3
ld a, $38
jp NextRadioLine
RocketRadio8: ; b8ead (2e:4ead)
ld hl, UnknownText_0xb8ee8
ld a, $39
jp NextRadioLine
RocketRadio9: ; b8eb5 (2e:4eb5)
ld hl, UnknownText_0xb8eed
ld a, $3a
jp NextRadioLine
RocketRadio10: ; b8ebd (2e:4ebd)
ld hl, UnknownText_0xb8ef2
ld a, $7
jp NextRadioLine
; b8ec5 (2e:4ec5)
UnknownText_0xb8ec5: ; 0xb8ec5
; … …Ahem, we are
text_jump UnknownText_0x1bcda8
db "@"
; 0xb8eca
UnknownText_0xb8eca: ; 0xb8eca
; TEAM ROCKET!
text_jump UnknownText_0x1bcdba
db "@"
; 0xb8ecf
UnknownText_0xb8ecf: ; 0xb8ecf
; After three years
text_jump UnknownText_0x1bcdc9
db "@"
; 0xb8ed4
UnknownText_0xb8ed4: ; 0xb8ed4
; of preparation, we
text_jump UnknownText_0x1bcddd
db "@"
; 0xb8ed9
UnknownText_0xb8ed9: ; 0xb8ed9
; have risen again
text_jump UnknownText_0x1bcdf2
db "@"
; 0xb8ede
UnknownText_0xb8ede: ; 0xb8ede
; from the ashes!
text_jump UnknownText_0x1bce05
db "@"
; 0xb8ee3
UnknownText_0xb8ee3: ; 0xb8ee3
; GIOVANNI! @ Can you
text_jump UnknownText_0x1bce17
db "@"
; 0xb8ee8
UnknownText_0xb8ee8: ; 0xb8ee8
; hear?@ We did it!
text_jump UnknownText_0x1bce2e
db "@"
; 0xb8eed
UnknownText_0xb8eed: ; 0xb8eed
; @ Where is our boss?
text_jump UnknownText_0x1bce44
db "@"
; 0xb8ef2
UnknownText_0xb8ef2: ; 0xb8ef2
; @ Is he listening?
text_jump UnknownText_0x1bce5c
db "@"
; 0xb8ef7
PokeFluteRadio: ; b8ef7 (2e:4ef7)
call StartRadioStation
ld a, $1
ld [wd005], a
ret
EvolutionRadio: ; b8f00 (2e:4f00)
call StartRadioStation
ld a, $1
ld [wd005], a
ret
UnownRadio: ; b8f09 (2e:4f09)
call StartRadioStation
ld a, $1
ld [wd005], a
ret
BuenasPassword1: ; b8f12 (2e:4f12)
; Determine if we need to be here
call BuenasPasswordCheckMidnight
jp nc, Functionb8f22
ld a, [wd005]
and a
jp z, BuenasPassword20
jp BuenasPassword8
Functionb8f22: ; b8f22 (2e:4f22)
call StartRadioStation
ld a, [hBGMapMode] ; $ff00+$d4
push af
xor a
ld [hBGMapMode], a ; $ff00+$d4
ld de, String_b9171
hlcoord 2, 9
call PlaceString
pop af
ld [hBGMapMode], a ; $ff00+$d4
ld hl, UnknownText_0xb9182
ld a, $40
jp NextRadioLine
BuenasPassword2: ; b8f3f (2e:4f3f)
ld hl, UnknownText_0xb9187
ld a, $41
jp NextRadioLine
BuenasPassword3: ; b8f47 (2e:4f47)
call BuenasPasswordCheckMidnight
ld hl, UnknownText_0xb918c
jp c, BuenasPasswordAfterMidnight
ld a, $42
jp NextRadioLine
BuenasPassword4: ; b8f55 (2e:4f55)
call BuenasPasswordCheckMidnight
jp c, BuenasPassword8
ld a, [wdc4a]
; If we already generated the password today, we don't need to generate a new one.
ld hl, WeeklyFlags
bit 7, [hl]
jr nz, .AlreadyGotIt
; There are only 11 groups to choose from.
.greater_than_11
call Random
and $f
cp $b
jr nc, .greater_than_11
; Store it in the high nybble of e.
swap a
ld e, a
; For each group, choose one of the three passwords.
.greater_than_three
call Random
and $3
cp $3
jr nc, .greater_than_three
; The high nybble of wdc4a will now contain the password group index, and the low nybble contains the actual password.
add e
ld [wdc4a], a
; Set the flag so that we don't generate a new password this week.
ld hl, WeeklyFlags
set 7, [hl]
.AlreadyGotIt
ld c, a
call GetBuenasPassword
ld hl, UnknownText_0xb9191
ld a, $43
jp NextRadioLine
GetBuenasPassword: ; b8f8f
; The password indices are held in c. High nybble contains the group index, low nybble contains the word index.
; Load the password group pointer in hl.
ld a, c
swap a
and $f
ld hl, PasswordTable
ld d, 0
ld e, a
rept 2
add hl, de
endr
ld a, [hli]
ld h, [hl]
ld l, a
; Get the password type and store it in b.
ld a, [hli]
ld b, a
push hl
inc hl
; Get the password index.
ld a, c
and $f
ld c, a
push hl
ld hl, .StringFunctionJumpTable
ld e, b
rept 2
add hl, de
endr
ld a, [hli]
ld h, [hl]
ld l, a
pop de ; de now contains the pointer to the value of this week's password, in Blue Card Points.
call _hl_
pop hl
ld c, [hl]
ret
; b8fb8
.StringFunctionJumpTable: ; b8fb8 (2e:4fb8)
dw .Mon
dw .Item
dw .Move
dw .RawString
.Mon: ; b8fc0 (2e:4fc0)
call .GetTheIndex
call GetPokemonName
ret
.Item: ; b8fc7 (2e:4fc7)
call .GetTheIndex
call GetItemName
ret
.Move: ; b8fce (2e:4fce)
call .GetTheIndex
call GetMoveName
ret
.GetTheIndex: ; b8fd5 (2e:4fd5)
ld h, 0
ld l, c
add hl, de
ld a, [hl]
ld [wd265], a
ret
.RawString: ; b8fde (2e:4fde)
; Get the string from the table...
ld a, c
and a
jr z, .skip
.read_loop
ld a, [de]
inc de
cp "@"
jr nz, .read_loop
dec c
jr nz, .read_loop
; ... and copy it into StringBuffer1.
.skip
ld hl, StringBuffer1
.copy_loop
ld a, [de]
inc de
ld [hli], a
cp "@"
jr nz, .copy_loop
ld de, StringBuffer1
ret
; b8ff9 (2e:4ff9)
PasswordTable: ; b8ff9
dw .JohtoStarters
dw .Beverages
dw .HealingItems
dw .Balls
dw .Pokemon1
dw .Pokemon2
dw .JohtoTowns
dw .Types
dw .Moves
dw .XItems
dw .RadioStations
; b900f
; string type, points, option 1, option 2, option 3
.JohtoStarters: db BUENA_MON, 10, CYNDAQUIL, TOTODILE, CHIKORITA
.Beverages: db BUENA_ITEM, 12, FRESH_WATER, SODA_POP, LEMONADE
.HealingItems: db BUENA_ITEM, 12, POTION, ANTIDOTE, PARLYZ_HEAL
.Balls: db BUENA_ITEM, 12, POKE_BALL, GREAT_BALL, ULTRA_BALL
.Pokemon1: db BUENA_MON, 10, PIKACHU, RATTATA, GEODUDE
.Pokemon2: db BUENA_MON, 10, HOOTHOOT, SPINARAK, DROWZEE
.JohtoTowns: db BUENA_STRING, 16, "NEW BARK TOWN@", "CHERRYGROVE CITY@", "AZALEA TOWN@"
.Types: db BUENA_STRING, 6, "FLYING@", "BUG@", "GRASS@"
.Moves: db BUENA_MOVE, 12, TACKLE, GROWL, MUD_SLAP
.XItems: db BUENA_ITEM, 12, X_ATTACK, X_DEFEND, X_SPEED
.RadioStations: db BUENA_STRING, 13, "#MON Talk@", "#MON Music@", "Lucky Channel@"
; b909c
BuenasPassword5: ; b909c (2e:509c)
ld hl, UnknownText_0xb9196
ld a, $44
jp NextRadioLine
BuenasPassword6: ; b90a4 (2e:50a4)
ld hl, UnknownText_0xb919b
ld a, $45
jp NextRadioLine
BuenasPassword7: ; b90ac (2e:50ac)
call BuenasPasswordCheckMidnight
ld hl, UnknownText_0xb91a0
jr c, BuenasPasswordAfterMidnight
ld a, $4
jp NextRadioLine
BuenasPasswordAfterMidnight: ; b90b9 (2e:50b9)
push hl
ld hl, WeeklyFlags
res 7, [hl]
pop hl
ld a, $46
jp NextRadioLine
BuenasPassword8: ; b90c5 (2e:50c5)
ld hl, WeeklyFlags
res 7, [hl]
ld hl, UnknownText_0xb91d2
ld a, $47
jp NextRadioLine
BuenasPassword9: ; b90d2 (2e:50d2)
ld hl, UnknownText_0xb91a5
ld a, $48
jp NextRadioLine
BuenasPassword10: ; b90da (2e:50da)
ld hl, UnknownText_0xb91aa
ld a, $49
jp NextRadioLine
BuenasPassword11: ; b90e2 (2e:50e2)
ld hl, UnknownText_0xb91af
ld a, $4a
jp NextRadioLine
BuenasPassword12: ; b90ea (2e:50ea)
ld hl, UnknownText_0xb91b4
ld a, $4b
jp NextRadioLine
BuenasPassword13: ; b90f2 (2e:50f2)
ld hl, UnknownText_0xb91b9
ld a, $4c
jp NextRadioLine
BuenasPassword14: ; b90fa (2e:50fa)
ld hl, UnknownText_0xb91be
ld a, $4d
jp NextRadioLine
BuenasPassword15: ; b9102 (2e:5102)
ld hl, UnknownText_0xb91c3
ld a, $4e
jp NextRadioLine
BuenasPassword16: ; b910a (2e:510a)
ld hl, UnknownText_0xb91c8
ld a, $4f
jp NextRadioLine
BuenasPassword17: ; b9112 (2e:5112)
ld hl, UnknownText_0xb91cd
ld a, $50
jp NextRadioLine
BuenasPassword18: ; b911a (2e:511a)
ld hl, UnknownText_0xb91d2
ld a, $51
jp NextRadioLine
BuenasPassword19: ; b9122 (2e:5122)
ld hl, UnknownText_0xb91d2
ld a, $52
jp NextRadioLine
BuenasPassword20: ; b912a (2e:512a)
ld a, [hBGMapMode] ; $ff00+$d4
push af
callba NoRadioMusic
callba NoRadioName
pop af
ld [hBGMapMode], a ; $ff00+$d4
ld hl, WeeklyFlags
res 7, [hl]
ld a, $4
ld [wd002], a
xor a
ld [wd005], a
ld hl, UnknownText_0xb91d7
ld a, $53
jp NextRadioLine
BuenasPassword21: ; b9152 (2e:5152)
ld a, $4
ld [wd002], a
xor a
ld [wd005], a
call BuenasPasswordCheckMidnight
jp nc, BuenasPassword1
ld hl, UnknownText_0xb91d7
ld a, $53
jp NextRadioLine
BuenasPasswordCheckMidnight: ; b9169 (2e:5169)
call UpdateTime
ld a, [hHours] ; $ff00+$94
cp $12
ret
; b9171 (2e:5171)
String_b9171:
db "BUENA'S PASSWORD@"
; b9182
UnknownText_0xb9182: ; 0xb9182
; BUENA: BUENA here!
text_jump UnknownText_0x1bce72
db "@"
; 0xb9187
UnknownText_0xb9187: ; 0xb9187
; Today's password!
text_jump UnknownText_0x1bce87
db "@"
; 0xb918c
UnknownText_0xb918c: ; 0xb918c
; Let me think… It's
text_jump UnknownText_0x1bce9a
db "@"
; 0xb9191
UnknownText_0xb9191: ; 0xb9191
; @ !
text_jump UnknownText_0x1bceae
db "@"
; 0xb9196
UnknownText_0xb9196: ; 0xb9196
; Don't forget it!
text_jump UnknownText_0x1bceb7
db "@"
; 0xb919b
UnknownText_0xb919b: ; 0xb919b
; I'm in GOLDENROD's
text_jump UnknownText_0x1bcec9
db "@"
; 0xb91a0
UnknownText_0xb91a0: ; 0xb91a0
; RADIO TOWER!
text_jump UnknownText_0x1bcedc
db "@"
; 0xb91a5
UnknownText_0xb91a5: ; 0xb91a5
; BUENA: Oh my…
text_jump UnknownText_0x1bceeb
db "@"
; 0xb91aa
UnknownText_0xb91aa: ; 0xb91aa
; It's midnight! I
text_jump UnknownText_0x1bcefb
db "@"
; 0xb91af
UnknownText_0xb91af: ; 0xb91af
; have to shut down!
text_jump UnknownText_0x1bcf0d
db "@"
; 0xb91b4
UnknownText_0xb91b4: ; 0xb91b4
; Thanks for tuning
text_jump UnknownText_0x1bcf22
db "@"
; 0xb91b9
UnknownText_0xb91b9: ; 0xb91b9
; in to the end! But
text_jump UnknownText_0x1bcf36
db "@"
; 0xb91be
UnknownText_0xb91be: ; 0xb91be
; don't stay up too
text_jump UnknownText_0x1bcf4b
db "@"
; 0xb91c3
UnknownText_0xb91c3: ; 0xb91c3
; late! Presented to
text_jump UnknownText_0x1bcf5e
db "@"
; 0xb91c8
UnknownText_0xb91c8: ; 0xb91c8
; you by DJ BUENA!
text_jump UnknownText_0x1bcf73
db "@"
; 0xb91cd
UnknownText_0xb91cd: ; 0xb91cd
; I'm outta here!
text_jump UnknownText_0x1bcf86
db "@"
; 0xb91d2
UnknownText_0xb91d2: ; 0xb91d2
; …
text_jump UnknownText_0x1bcf96
db "@"
; 0xb91d7
UnknownText_0xb91d7: ; 0xb91d7
;
text_jump UnknownText_0x1bcf99
db "@"
; 0xb91dc
CopyRadioTextToRAM: ; b91dc (2e:51dc)
ld a, [hl]
cp TX_FAR
jp z, FarJumpText
ld de, wd00c
ld bc, SCREEN_WIDTH * 2
jp CopyBytes
StartRadioStation: ; b91eb (2e:51eb)
ld a, [wd005]
and a
ret nz
call RadioTerminator
call PrintText
ld hl, RadioChannelSongs
ld a, [wd002]
ld c, a
ld b, 0
rept 2
add hl, bc
endr
ld e, [hl]
inc hl
ld d, [hl]
callab RadioMusicNone
ret
; b920b (2e:520b)
RadioChannelSongs: ; b920b
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
; b9221
NextRadioLine: ; b9221 (2e:5221)
push af
call CopyRadioTextToRAM
pop af
jp PrintRadioLine
; b9229