summaryrefslogtreecommitdiff
path: root/engine
diff options
context:
space:
mode:
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 940d44ef8..449fc0ac0 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 967d68edf..84413e1cb 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