summaryrefslogtreecommitdiff
path: root/engine
diff options
context:
space:
mode:
authorPikalaxALT <PikalaxALT@gmail.com>2015-07-22 15:57:02 -0400
committerPikalaxALT <PikalaxALT@gmail.com>2015-07-22 15:57:02 -0400
commitc8960dd2c8043d9a10e961379996fa18fef34033 (patch)
tree7103b7349bc60badb883fb9385c213bcdfcad71b /engine
parentd5ddd9e54ec2422d6f1cd7c561c1750512d0a81d (diff)
Various annotations
Annotated the SGB functions in predef/sgb.asm, and some of the map scripts. Renamed several functions in home. Renamed six WRAM addresses corresponding to party icon animations, and renamed several others relative to these.
Diffstat (limited to 'engine')
-rw-r--r--engine/color.asm8
-rw-r--r--engine/credits.asm6
-rw-r--r--engine/diploma.asm12
-rw-r--r--engine/engine_flags.asm6
-rw-r--r--engine/pack.asm6
-rw-r--r--engine/pokedex.asm16
-rw-r--r--engine/predef.asm2
-rw-r--r--engine/radio.asm4256
-rw-r--r--engine/scripting.asm12
-rw-r--r--engine/specials.asm4
10 files changed, 2177 insertions, 2151 deletions
diff --git a/engine/color.asm b/engine/color.asm
index 1a28e1104..0e932f786 100644
--- a/engine/color.asm
+++ b/engine/color.asm
@@ -297,7 +297,7 @@ Function8bec: ; 8bec
ld a, [EnemyLightScreenCount]
ld c, a
ld a, [EnemyReflectCount]
- ld hl, AttrMap
+ hlcoord 0, 0, AttrMap
ld de, $0014
.asm_8c04
and a
@@ -661,8 +661,8 @@ endr
Function9699: ; 9699
- ld hl, AttrMap
- ld bc, $0168
+ hlcoord 0, 0, AttrMap
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
xor a
call ByteFill
ret
@@ -694,7 +694,7 @@ Function96b3: ; 96b3
ret
.asm_96d0
- ld hl, AttrMap
+ hlcoord 0, 0, AttrMap
ld de, VBGMap0
ld b, $12
ld a, $1
diff --git a/engine/credits.asm b/engine/credits.asm
index 2be947bf3..3454e00b5 100644
--- a/engine/credits.asm
+++ b/engine/credits.asm
@@ -527,7 +527,7 @@ Function109a95: ; 109a95 (42:5a95)
ld a, $c
ld [hBGMapAddress], a ; $ff00+$d6
ld a, $28
- ld hl, TileMap
+ hlcoord 0, 0
ld bc, $168
call ByteFill
ld a, $7f
@@ -540,7 +540,7 @@ Function109a95: ; 109a95 (42:5a95)
hlcoord 0, 17
ld a, $20
call Function109b1d
- ld hl, AttrMap
+ hlcoord 0, 0, AttrMap
ld bc, $50
xor a
call ByteFill
@@ -560,7 +560,7 @@ Function109a95: ; 109a95 (42:5a95)
xor a
ld [hBGMapMode], a ; $ff00+$d4
ld [hBGMapAddress], a ; $ff00+$d6
- ld hl, TileMap
+ hlcoord 0, 0
call Function109aff
call Function3200
ret
diff --git a/engine/diploma.asm b/engine/diploma.asm
index bf6e89fa8..420bff7f1 100644
--- a/engine/diploma.asm
+++ b/engine/diploma.asm
@@ -14,8 +14,8 @@ Function1dd709: ; 1dd709
ld de, VTiles2
call Decompress
ld hl, Tilemap_1ddc4b
- ld de, TileMap
- ld bc, $0168
+ decoord 0, 0
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
call CopyBytes
ld de, String_1dd760
hlcoord 2, 5
@@ -54,13 +54,13 @@ String_1dd768:
; 1dd7ae
Function1dd7ae: ; 1dd7ae
- ld hl, TileMap
- ld bc, $0168
+ hlcoord 0, 0
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
ld a, $7f
call ByteFill
ld hl, Tilemap_1dddb3
- ld de, TileMap
- ld bc, $0168
+ decoord 0, 0
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
call CopyBytes
ld de, String_1dd7fa
hlcoord 8, 0
diff --git a/engine/engine_flags.asm b/engine/engine_flags.asm
index 87fbd987d..87d802d30 100644
--- a/engine/engine_flags.asm
+++ b/engine/engine_flags.asm
@@ -29,9 +29,9 @@
dwb StatusFlags, %01000000 ; credits skip
dwb StatusFlags, %10000000 ; bug contest on ; $10
dwb StatusFlags2, %00000100 ; bug contest timer
- dwb StatusFlags2, %00000010 ; rockets in radio tower
- dwb StatusFlags2, %00000001 ; bike shop call enabled (1024 bike steps reqd)
- dwb StatusFlags2, %00010000
+ dwb StatusFlags2, %00000010
+ dwb StatusFlags2, %00000001 ; rockets in radio tower
+ dwb StatusFlags2, %00010000 ; bike shop call enabled (1024 bike steps reqd)
dwb StatusFlags2, %00100000 ; give pokerus; berry -> berry juice when trading?
dwb StatusFlags2, %01000000
dwb StatusFlags2, %10000000 ; rockets in mahogany
diff --git a/engine/pack.asm b/engine/pack.asm
index 62796ed3f..a50612bb8 100644
--- a/engine/pack.asm
+++ b/engine/pack.asm
@@ -1404,7 +1404,7 @@ Function10955: ; 10955
hlcoord 5, 1
lb bc, 11, 15
call ClearBox
- ld hl, TileMap
+ hlcoord 0, 0
ld a, $28
ld c, $14
.asm_1098a
@@ -1489,8 +1489,8 @@ Function10a1d: ; 10a1d
; 10a2a
Function10a2a: ; 10a2a
- ld hl, TileMap
- ld bc, $0168
+ hlcoord 0, 0
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
ld a, $7f
call ByteFill
ret
diff --git a/engine/pokedex.asm b/engine/pokedex.asm
index 25b291ffb..c48030501 100644
--- a/engine/pokedex.asm
+++ b/engine/pokedex.asm
@@ -212,7 +212,7 @@ Function4013c: ; 4013c (10:413c)
ld [hBGMapMode], a ; $ff00+$d4
call ClearSprites
xor a
- ld hl, AttrMap
+ hlcoord 0, 0, AttrMap
ld bc, $168
call ByteFill
callba Function1de171
@@ -725,7 +725,7 @@ Function4050a: ; 4050a (10:450a)
xor a
ld [hBGMapMode], a ; $ff00+$d4
xor a
- ld hl, AttrMap
+ hlcoord 0, 0, AttrMap
ld bc, $168
call ByteFill
call Function41ae1
@@ -1071,10 +1071,10 @@ Function4074c: ; 4074c (10:474c)
ld de, Unknown_407f2
call Function40acd
ld a, $32
- ld hl, TileMap
+ hlcoord 0, 0
ld bc, $168
call ByteFill
- ld hl, TileMap
+ hlcoord 0, 0
lb bc, 7, 7
call Function40ad5
hlcoord 0, 9
@@ -1135,7 +1135,7 @@ Unknown_407f2: ; 407f2
Function407fd: ; 407fd
call Function40aa6
- ld hl, TileMap
+ hlcoord 0, 0
ld bc, $0f12
call Function40ad5
hlcoord 19, 0
@@ -1259,7 +1259,7 @@ String_4094c: ; 4094c
Function40962: ; 40962 (10:4962)
call Function40aa6
- ld hl, TileMap
+ hlcoord 0, 0
lb bc, 7, 7
call Function40ad5
hlcoord 0, 11
@@ -1387,9 +1387,9 @@ Unknown_40a3e: ; 40a3e
; 40aa6
Function40aa6: ; 40aa6
- ld hl, TileMap
+ hlcoord 0, 0
ld a, $32
- ld bc, $0168
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
call ByteFill
ret
; 40ab2
diff --git a/engine/predef.asm b/engine/predef.asm
index c886e4a84..22e323246 100644
--- a/engine/predef.asm
+++ b/engine/predef.asm
@@ -79,7 +79,7 @@ PredefPointers:: ; 856b
add_predef Functioncbcdd
add_predef Predef2F
add_predef Function9853 ; $30
- add_predef Function864c
+ add_predef Predef_LoadSGBLayout
add_predef Function91d11
add_predef CheckContestMon
add_predef Function8c20f
diff --git a/engine/radio.asm b/engine/radio.asm
index 35117668f..74d0383e7 100644
--- a/engine/radio.asm
+++ b/engine/radio.asm
@@ -1,2115 +1,2141 @@
-PlayRadioShow: ; b8612
- ld a, [wd002]
- cp 8
- jr nc, .ok
- ld a, [StatusFlags2]
- bit 0, a
- jr z, .ok
- call IsInJohto
- and a
- jr nz, .ok
- ld a, 7
- ld [wd002], a
-.ok
- 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 MaryOakShow1
- dw MaryOakShow2
- dw BenMonMusic1
- dw DJReed1
- dw Functionb8f12
- dw Functionb8cbf
- dw Functionb8b50
- dw Functionb8e72
- dw Functionb8ef7
- dw Functionb8f00
- dw Functionb8f09
- dw Functionb8752
- dw Functionb875a
- dw Functionb8762
- dw Functionb8810
- dw Functionb8818
- dw Functionb883e
- dw Functionb8854
- dw Functionb88d9
- dw Functionb8a6c
- dw Functionb8aa4
- dw Functionb8aac
- dw Functionb8ab4
- dw Functionb8b40
- dw Functionb8b48
- dw Functionb8b63
- dw Functionb8b6b
- dw Functionb8b7d
- dw Functionb8b8f
- dw Functionb8b5b
- dw Functionb8bf5
- dw Functionb8bfd
- dw Functionb8c05
- dw Functionb8c0d
- dw Functionb8c15
- dw Functionb8c1d
- dw Functionb8c25
- dw Functionb8c3e
- dw Functionb8c46
- dw Functionb8c4e
- dw Functionb8c56
- dw Functionb8c5e
- dw Functionb8c6e
- dw Functionb8c76
- dw Functionb8cca
- dw Functionb8cd2
- dw Functionb8cf2
- dw Functionb8d56
- dw Functionb8ded
- dw Functionb8e28
- dw Functionb8e7d
- dw Functionb8e85
- dw Functionb8e8d
- dw Functionb8e95
- dw Functionb8e9d
- dw Functionb8ea5
- dw Functionb8ead
- dw Functionb8eb5
- dw Functionb8ebd
- dw Functionb896e
- dw Functionb8994
- dw Functionb89a9
- dw Functionb89c6
- dw Functionb89d7
- dw Functionb8f3f
- dw Functionb8f47
- dw Functionb8f55
- dw Functionb909c
- dw Functionb90a4
- dw Functionb90ac
- dw Functionb90c5
- dw Functionb90d2
- dw Functionb90da
- dw Functionb90e2
- dw Functionb90ea
- dw Functionb90f2
- dw Functionb90fa
- dw Functionb9102
- dw Functionb910a
- dw Functionb9112
- dw Functionb911a
- dw Functionb9122
- dw Functionb912a
- dw Functionb9152
- dw Functionb8728
- dw Functionb8abc
- dw Functionb8ac4
- dw Functionb8acc
-
-
-Functionb86ea: ; b86ea (2e:46ea)
- ld [wd003], a
- ld hl, wd00c
- ld a, [wd005]
- cp $2
- jr nc, .asm_b870a
- inc hl
- ld [hl], $0
- inc a
- ld [wd005], a
- cp $2
- jr nz, .asm_b870a
- bccoord 1, 16
- call Function13e5
- jr .asm_b870d
-.asm_b870a
- call PrintTextBoxText
-.asm_b870d
- ld a, $54
- ld [wd002], a
- ld a, $64
- ld [wd004], a
- ret
-; b8718 (2e:4718)
-
-Functionb8718: ; b8718
- push hl
- ld b, $28
-.asm_b871b
- ld a, [hl]
- cp $e8
- jr nz, .asm_b8722
- ld [hl], $7f
-
-.asm_b8722
- inc hl
- dec b
- jr nz, .asm_b871b
- pop hl
- ret
-; b8728
-
-Functionb8728: ; b8728 (2e:4728)
- ld hl, wd004
- ld a, [hl]
- and a
- jr z, .asm_b8731
- dec [hl]
- ret
-.asm_b8731
- ld a, [wd003]
- ld [wd002], a
- ld a, [wd005]
- cp $1
- call nz, Functionb8a0b
- jp Functionb8a17
-
-MaryOakShow1: ; b8742 (2e:4742)
- ld a, $5
- ld [wd006], a
- call Functionb91eb
- ld hl, UnknownText_0xb8820
- ld a, $b
- jp NextRadioLine
-
-Functionb8752: ; b8752 (2e:4752)
- ld hl, UnknownText_0xb8825
- ld a, $c
- jp NextRadioLine
-
-Functionb875a: ; b875a (2e:475a)
- ld hl, UnknownText_0xb882a
- ld a, $d
- jp NextRadioLine
-
-Functionb8762: ; b8762 (2e:4762)
- call Random
- and $1f
- cp $f
- jr nc, Functionb8762
- 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, WildMons1
-.loop
- ld a, BANK(WildMons1)
- call GetFarByte
- cp $ff
- jr z, .done2
- inc hl
- cp b
- jr nz, .next
- ld a, BANK(WildMons1)
- call GetFarByte
- cp c
- jr z, .done
-.next
- dec hl
- ld de, $2f
- add hl, de
- jr .loop
-
-.done
-rept 4
- inc hl
-endr
-
-.not3
- call Random
- and 3
- cp 3
- jr z, .not3
-
- ld bc, $e
- call AddNTimes
-.loop2
- call Random
- and 7
- cp 2
- jr c, .loop2
- cp 5
- jr nc, .loop2
- ld e, a
- ld d, 0
-rept 2
- add hl, de
-endr
- inc hl
- ld a, BANK(WildMons1)
- 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 Functionb91dc
- ld a, $e
- jp Functionb86ea
-
-.done2
- pop bc
- ld a, $0
- jp Functionb86ea
-; 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
-
-Functionb8810: ; b8810 (2e:4810)
- ld hl, UnknownText_0xb8834
- ld a, $f
- jp NextRadioLine
-
-Functionb8818: ; 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
-
-Functionb883e: ; 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
-
-Functionb8854: ; 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
-
-Functionb88d9: ; 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, .asm_b88fb
- ld a, $5
- ld [wd006], a
- ld a, $3b
-.asm_b88fb
- 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
-
-Functionb896e: ; 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
-
-Functionb8994: ; 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
-
-Functionb89a9: ; 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
-
-Functionb89c6: ; 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
-
-Functionb89d7: ; b89d7 (2e:49d7)
- ld hl, wd004
- dec [hl]
- ret nz
- ld de, $1d
- callab Function91854
- 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
-
-Functionb8a0b: ; b8a0b (2e:4a0b)
- hlcoord 0, 15
- decoord 0, 13
- ld bc, $28
- jp CopyBytes
-
-Functionb8a17: ; b8a17 (2e:4a17)
- hlcoord 1, 15
- ld bc, $12
- ld a, $7f
- call ByteFill
- hlcoord 1, 16
- ld bc, $12
- ld a, $7f
- 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
-
-MaryOakShow2: ; b8a46 (2e:4a46)
- call Functionb91eb
-.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
-
-Functionb8a6c: ; 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 Functionb91dc
- 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 Functionb86ea
-
-Functionb8aa4: ; b8aa4 (2e:4aa4)
- call Functionb8ad4
- ld a, $15
- jp Functionb86ea
-
-Functionb8aac: ; b8aac (2e:4aac)
- call Functionb8ad4
- ld a, $16
- jp Functionb86ea
-
-Functionb8ab4: ; b8ab4 (2e:4ab4)
- call Functionb8ad4
- ld a, $55
- jp Functionb86ea
-
-Functionb8abc: ; b8abc (2e:4abc)
- call Functionb8ad4
- ld a, $56
- jp Functionb86ea
-
-Functionb8ac4: ; b8ac4 (2e:4ac4)
- call Functionb8ad4
- ld a, $57
- jp Functionb86ea
-
-Functionb8acc: ; b8acc (2e:4acc)
- call Functionb8ad4
- ld a, $1
- jp Functionb86ea
-
-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 Functionb91dc
- 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
-
-Functionb8b40: ; b8b40 (2e:4b40)
- ld hl, UnknownText_0xb8baf
- ld a, $18
- jp NextRadioLine
-
-Functionb8b48: ; b8b48 (2e:4b48)
- ld hl, UnknownText_0xb8bb4
- ld a, $19
- jp NextRadioLine
-
-Functionb8b50: ; b8b50 (2e:4b50)
- call Functionb8b90
- ld hl, UnknownText_0xb8bb9
- ld a, $1d
- jp NextRadioLine
-
-Functionb8b5b: ; b8b5b (2e:4b5b)
- ld hl, UnknownText_0xb8bbe
- ld a, $19
- jp NextRadioLine
-
-Functionb8b63: ; b8b63 (2e:4b63)
- ld hl, UnknownText_0xb8bc3
- ld a, $1a
- jp NextRadioLine
-
-Functionb8b6b: ; 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
-
-Functionb8b7d: ; 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
-
-Functionb8b8f: ; b8b8f (2e:4b8f)
- ret
-
-Functionb8b90: ; b8b90 (2e:4b90)
- call Function1052
- call PrintText
- ld de, MUSIC_POKEMON_MARCH
- call GetWeekday
- and 1
- jr z, .done
- ld de, MUSIC_POKEMON_LULLABY
-.done
- callab Function91854
- 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
-
-DJReed1: ; b8bdc (2e:4bdc)
- call Functionb91eb
- callab Functionc434
- jr nc, .asm_b8bed
- callab Functionc422
-.asm_b8bed
- ld hl, UnknownText_0xb8c7e
- ld a, $1e
- jp NextRadioLine
-
-Functionb8bf5: ; b8bf5 (2e:4bf5)
- ld hl, UnknownText_0xb8c83
- ld a, $1f
- jp NextRadioLine
-
-Functionb8bfd: ; b8bfd (2e:4bfd)
- ld hl, UnknownText_0xb8c88
- ld a, $20
- jp NextRadioLine
-
-Functionb8c05: ; b8c05 (2e:4c05)
- ld hl, UnknownText_0xb8c8d
- ld a, $21
- jp NextRadioLine
-
-Functionb8c0d: ; b8c0d (2e:4c0d)
- ld hl, UnknownText_0xb8c92
- ld a, $22
- jp NextRadioLine
-
-Functionb8c15: ; b8c15 (2e:4c15)
- ld hl, UnknownText_0xb8c97
- ld a, $23
- jp NextRadioLine
-
-Functionb8c1d: ; b8c1d (2e:4c1d)
- ld hl, UnknownText_0xb8c9c
- ld a, $24
- jp NextRadioLine
-
-Functionb8c25: ; 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
-
-Functionb8c3e: ; b8c3e (2e:4c3e)
- ld hl, UnknownText_0xb8ca6
- ld a, $26
- jp NextRadioLine
-
-Functionb8c46: ; b8c46 (2e:4c46)
- ld hl, UnknownText_0xb8c9c
- ld a, $27
- jp NextRadioLine
-
-Functionb8c4e: ; b8c4e (2e:4c4e)
- ld hl, UnknownText_0xb8ca1
- ld a, $28
- jp NextRadioLine
-
-Functionb8c56: ; b8c56 (2e:4c56)
- ld hl, UnknownText_0xb8cab
- ld a, $29
- jp NextRadioLine
-
-Functionb8c5e: ; 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
-
-Functionb8c6e: ; b8c6e (2e:4c6e)
- ld hl, UnknownText_0xb8cb5
- ld a, $2b
- jp NextRadioLine
-
-Functionb8c76: ; 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
-
-Functionb8cbf: ; b8cbf (2e:4cbf)
- call Functionb91eb
- ld hl, UnknownText_0xb8ce3
- ld a, $2c
- jp NextRadioLine
-
-Functionb8cca: ; b8cca (2e:4cca)
- ld hl, UnknownText_0xb8ce8
- ld a, $2d
- jp NextRadioLine
-
-Functionb8cd2: ; 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
-
-Functionb8cf2: ; b8cf2 (2e:4cf2)
- call Random
- and $7f
- inc a
- cp $43
- jr nc, Functionb8cf2
- 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, Functionb8cf2
- push bc
- callab Function3952d
- 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
-
-Functionb8d56: ; 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
-
-Functionb8ded: ; b8ded (2e:4ded)
- call Random
- cp $9
- jr nc, Functionb8ded
- 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
-
-Functionb8e28: ; 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 Functionb91dc
- 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 Functionb86ea
-; 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
-
-Functionb8e72: ; b8e72 (2e:4e72)
- call Functionb91eb
- ld hl, UnknownText_0xb8ec5
- ld a, $32
- jp NextRadioLine
-
-Functionb8e7d: ; b8e7d (2e:4e7d)
- ld hl, UnknownText_0xb8eca
- ld a, $33
- jp NextRadioLine
-
-Functionb8e85: ; b8e85 (2e:4e85)
- ld hl, UnknownText_0xb8ecf
- ld a, $34
- jp NextRadioLine
-
-Functionb8e8d: ; b8e8d (2e:4e8d)
- ld hl, UnknownText_0xb8ed4
- ld a, $35
- jp NextRadioLine
-
-Functionb8e95: ; b8e95 (2e:4e95)
- ld hl, UnknownText_0xb8ed9
- ld a, $36
- jp NextRadioLine
-
-Functionb8e9d: ; b8e9d (2e:4e9d)
- ld hl, UnknownText_0xb8ede
- ld a, $37
- jp NextRadioLine
-
-Functionb8ea5: ; b8ea5 (2e:4ea5)
- ld hl, UnknownText_0xb8ee3
- ld a, $38
- jp NextRadioLine
-
-Functionb8ead: ; b8ead (2e:4ead)
- ld hl, UnknownText_0xb8ee8
- ld a, $39
- jp NextRadioLine
-
-Functionb8eb5: ; b8eb5 (2e:4eb5)
- ld hl, UnknownText_0xb8eed
- ld a, $3a
- jp NextRadioLine
-
-Functionb8ebd: ; 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
-
-Functionb8ef7: ; b8ef7 (2e:4ef7)
- call Functionb91eb
- ld a, $1
- ld [wd005], a
- ret
-
-Functionb8f00: ; b8f00 (2e:4f00)
- call Functionb91eb
- ld a, $1
- ld [wd005], a
- ret
-
-Functionb8f09: ; b8f09 (2e:4f09)
- call Functionb91eb
- ld a, $1
- ld [wd005], a
- ret
-
-Functionb8f12: ; b8f12 (2e:4f12)
- call Functionb9169
- jp nc, Functionb8f22
- ld a, [wd005]
- and a
- jp z, Functionb912a
- jp Functionb90c5
-
-Functionb8f22: ; b8f22 (2e:4f22)
- call Functionb91eb
- 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
-
-Functionb8f3f: ; b8f3f (2e:4f3f)
- ld hl, UnknownText_0xb9187
- ld a, $41
- jp NextRadioLine
-
-Functionb8f47: ; b8f47 (2e:4f47)
- call Functionb9169
- ld hl, UnknownText_0xb918c
- jp c, Functionb90b9
- ld a, $42
- jp NextRadioLine
-
-Functionb8f55: ; b8f55 (2e:4f55)
- call Functionb9169
- jp c, Functionb90c5
- ld a, [wdc4a]
- ld hl, WeeklyFlags
- bit 7, [hl]
- jr nz, .asm_b8f83
-.asm_b8f65
- call Random
- and $f
- cp $b
- jr nc, .asm_b8f65
- swap a
- ld e, a
-.asm_b8f71
- call Random
- and $3
- cp $3
- jr nc, .asm_b8f71
- add e
- ld [wdc4a], a
- ld hl, WeeklyFlags
- set 7, [hl]
-.asm_b8f83
- ld c, a
- call Functionb8f8f
- ld hl, UnknownText_0xb9191
- ld a, $43
- jp NextRadioLine
-
-Functionb8f8f: ; b8f8f
- ld a, c
- swap a
- and $f
- ld hl, Unknown_b8ff9
- ld d, 0
- ld e, a
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld a, [hli]
- ld b, a
- push hl
- inc hl
- ld a, c
- and $f
- ld c, a
- push hl
- ld hl, Jumptable_b8fb8
- ld e, b
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- pop de
- call _hl_
- pop hl
- ld c, [hl]
- ret
-; b8fb8
-
-
-Jumptable_b8fb8: ; b8fb8 (2e:4fb8)
- dw Functionb8fc0
- dw Functionb8fc7
- dw Functionb8fce
- dw Functionb8fde
-
-
-Functionb8fc0: ; b8fc0 (2e:4fc0)
- call Functionb8fd5
- call GetPokemonName
- ret
-
-Functionb8fc7: ; b8fc7 (2e:4fc7)
- call Functionb8fd5
- call GetItemName
- ret
-
-Functionb8fce: ; b8fce (2e:4fce)
- call Functionb8fd5
- call GetMoveName
- ret
-
-Functionb8fd5: ; b8fd5 (2e:4fd5)
- ld h, 0
- ld l, c
- add hl, de
- ld a, [hl]
- ld [wd265], a
- ret
-
-Functionb8fde: ; b8fde (2e:4fde)
- ld a, c
- and a
- jr z, .asm_b8feb
-.asm_b8fe2
- ld a, [de]
- inc de
- cp $50
- jr nz, .asm_b8fe2
- dec c
- jr nz, .asm_b8fe2
-.asm_b8feb
- ld hl, StringBuffer1
-.asm_b8fee
- ld a, [de]
- inc de
- ld [hli], a
- cp $50
- jr nz, .asm_b8fee
- ld de, StringBuffer1
- ret
-; b8ff9 (2e:4ff9)
-
-Unknown_b8ff9: ; b8ff9
- dw Unknown_b900f
- dw Unknown_b9014
- dw Unknown_b9019
- dw Unknown_b901e
- dw Unknown_b9023
- dw Unknown_b9028
- dw Unknown_b902d
- dw Unknown_b905a
- dw Unknown_b906d
- dw Unknown_b9072
- dw Unknown_b9077
-; b900f
-
-Unknown_b900f: db 0, 10, CYNDAQUIL, TOTODILE, CHIKORITA
-Unknown_b9014: db 1, 12, FRESH_WATER, SODA_POP, LEMONADE
-Unknown_b9019: db 1, 12, POTION, ANTIDOTE, PARLYZ_HEAL
-Unknown_b901e: db 1, 12, POKE_BALL, GREAT_BALL, ULTRA_BALL
-Unknown_b9023: db 0, 10, PIKACHU, RATTATA, GEODUDE
-Unknown_b9028: db 0, 10, HOOTHOOT, SPINARAK, DROWZEE
-Unknown_b902d: db 3, 16, "NEW BARK TOWN@", "CHERRYGROVE CITY@", "AZALEA TOWN@"
-Unknown_b905a: db 3, 6, "FLYING@", "BUG@", "GRASS@"
-Unknown_b906d: db 2, 12, TACKLE, GROWL, MUD_SLAP
-Unknown_b9072: db 1, 12, X_ATTACK, X_DEFEND, X_SPEED
-Unknown_b9077: db 3, 13, "#MON Talk@", "#MON Music@", "Lucky Channel@"
-; b909c
-
-Functionb909c: ; b909c (2e:509c)
- ld hl, UnknownText_0xb9196
- ld a, $44
- jp NextRadioLine
-
-Functionb90a4: ; b90a4 (2e:50a4)
- ld hl, UnknownText_0xb919b
- ld a, $45
- jp NextRadioLine
-
-Functionb90ac: ; b90ac (2e:50ac)
- call Functionb9169
- ld hl, UnknownText_0xb91a0
- jr c, Functionb90b9
- ld a, $4
- jp NextRadioLine
-
-Functionb90b9: ; b90b9 (2e:50b9)
- push hl
- ld hl, WeeklyFlags
- res 7, [hl]
- pop hl
- ld a, $46
- jp NextRadioLine
-
-Functionb90c5: ; b90c5 (2e:50c5)
- ld hl, WeeklyFlags
- res 7, [hl]
- ld hl, UnknownText_0xb91d2
- ld a, $47
- jp NextRadioLine
-
-Functionb90d2: ; b90d2 (2e:50d2)
- ld hl, UnknownText_0xb91a5
- ld a, $48
- jp NextRadioLine
-
-Functionb90da: ; b90da (2e:50da)
- ld hl, UnknownText_0xb91aa
- ld a, $49
- jp NextRadioLine
-
-Functionb90e2: ; b90e2 (2e:50e2)
- ld hl, UnknownText_0xb91af
- ld a, $4a
- jp NextRadioLine
-
-Functionb90ea: ; b90ea (2e:50ea)
- ld hl, UnknownText_0xb91b4
- ld a, $4b
- jp NextRadioLine
-
-Functionb90f2: ; b90f2 (2e:50f2)
- ld hl, UnknownText_0xb91b9
- ld a, $4c
- jp NextRadioLine
-
-Functionb90fa: ; b90fa (2e:50fa)
- ld hl, UnknownText_0xb91be
- ld a, $4d
- jp NextRadioLine
-
-Functionb9102: ; b9102 (2e:5102)
- ld hl, UnknownText_0xb91c3
- ld a, $4e
- jp NextRadioLine
-
-Functionb910a: ; b910a (2e:510a)
- ld hl, UnknownText_0xb91c8
- ld a, $4f
- jp NextRadioLine
-
-Functionb9112: ; b9112 (2e:5112)
- ld hl, UnknownText_0xb91cd
- ld a, $50
- jp NextRadioLine
-
-Functionb911a: ; b911a (2e:511a)
- ld hl, UnknownText_0xb91d2
- ld a, $51
- jp NextRadioLine
-
-Functionb9122: ; b9122 (2e:5122)
- ld hl, UnknownText_0xb91d2
- ld a, $52
- jp NextRadioLine
-
-Functionb912a: ; 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
-
-Functionb9152: ; b9152 (2e:5152)
- ld a, $4
- ld [wd002], a
- xor a
- ld [wd005], a
- call Functionb9169
- jp nc, Functionb8f12
- ld hl, UnknownText_0xb91d7
- ld a, $53
- jp NextRadioLine
-
-Functionb9169: ; 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
-
-Functionb91dc: ; b91dc (2e:51dc)
- ld a, [hl]
- cp $16 ; TX_FAR
- jp z, FarJumpText
- ld de, wd00c
- ld bc, $28
- jp CopyBytes
-
-Functionb91eb: ; b91eb (2e:51eb)
- ld a, [wd005]
- and a
- ret nz
- call Function1052
- 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 Function91854
- 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 Functionb91dc
- pop af
- jp Functionb86ea
-; b9229
+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, WildMons1
+.greater_than_10
+ ld a, BANK(WildMons1)
+ call GetFarByte
+ cp -1
+ jr z, .done2
+ inc hl
+ cp b
+ jr nz, .next
+ ld a, BANK(WildMons1)
+ 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(WildMons1)
+ 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 Function3952d
+ 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
diff --git a/engine/scripting.asm b/engine/scripting.asm
index 709a75c25..b01ac0c52 100644
--- a/engine/scripting.asm
+++ b/engine/scripting.asm
@@ -475,7 +475,7 @@ Script_loadmenudata: ; 0x96efa
ld de, LoadMenuDataHeader
ld a, [ScriptBank]
call Call_a_de
- call DrawOnMap
+ call UpdateSprites
ret
; 0x96f0f
@@ -483,7 +483,7 @@ Script_writebackup: ; 0x96f0f
; script command 0x50
call WriteBackup
- call DrawOnMap
+ call UpdateSprites
ret
; 0x96f16
@@ -1212,7 +1212,7 @@ ApplyPersonFacing: ; 0x9728b
jr nz, .asm_972b5 ; 0x972b0 $3
call Function972bc
.asm_972b5
- call DrawOnMap
+ call UpdateSprites
ret
.not_visible
pop de
@@ -1222,8 +1222,8 @@ ApplyPersonFacing: ; 0x9728b
Function972bc: ; 0x972bc
call Function217a
- ld hl, TileMap
- ld bc, $0168
+ hlcoord 0, 0
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
.asm_972c5
res 7, [hl]
inc hl
@@ -2970,7 +2970,7 @@ Script_reloadmappart:: ; 0x97ae3
call Function2173
call Function2914
callba Function104061
- call DrawOnMap
+ call UpdateSprites
ret
; 0x97af6
diff --git a/engine/specials.asm b/engine/specials.asm
index e4e2005a6..d91692786 100644
--- a/engine/specials.asm
+++ b/engine/specials.asm
@@ -75,7 +75,7 @@ SpecialsPointers:: ; c029
add_special WhiteBGMap
add_special UpdateTimePals
add_special ClearTileMap
- add_special DrawOnMap
+ add_special UpdateSprites
add_special Special_ReplaceKrisSprite
add_special Special_GameCornerPrizeMonCheckDex
add_special SpecialSeenMon
@@ -110,7 +110,7 @@ SpecialsPointers:: ; c029
add_special SpecialNameRater
add_special Functionc2da
add_special GetFirstPokemonHappiness
- add_special Function71ac
+ add_special CheckFirstMonIsEgg
add_special Function2a4ab
add_special Function2a51f
add_special RandomPhoneMon