shithub: pokecrystal

Download patch

ref: 2acaa96cf16ce953a7149f300d54e5440abc27d8
parent: 676b585375522127d3d1e134c8761d55ede32739
author: Remy Oukaour <remy.oukaour@gmail.com>
date: Thu Jan 18 13:34:20 EST 2018

More charmap and home/text.asm documentation for JP chars

--- a/charmap.asm
+++ b/charmap.asm
@@ -1,20 +1,21 @@
-; Control characters
-	charmap "<START>",   $00
-	charmap "<PLAY_G>",  $14 ; gendered PlayerName; same as "<PLAYER>" in English
-	charmap "<DAY>",     $15
+; $00-$16 are TX_* constants (see macros/scripts/text.asm)
+
+; Control characters (see home/text.asm)
+
+	charmap "<PLAY_G>",  $14 ; "<PLAYER>くん" or "<PLAYER>ちゃん"; same as "<PLAYER>" in English
 	charmap "¯",         $1f ; soft linebreak
 	charmap "<LNBRK>",   $22
-	charmap "<KOUGEKI>", $23 ; "こうげき"
 	charmap "<POKE>",    $24 ; "<PO><KE>"
 	charmap "%",         $25
 	charmap "<RED>",     $38 ; RedsName
 	charmap "<GREEN>",   $39 ; GreensName
-	charmap "<ENEMY>",   $3f
 	charmap "<MOM>",     $49 ; MomsName
+	charmap "<ENEMY>",   $3f
 	charmap "<PKMN>",    $4a ; "<PK><MN>"
+	charmap "<CONT2>",   $4b ; implements "<CONT>"
+	charmap "<CONT3>",   $4c ; unused
 	charmap "<NEXT>",    $4e
 	charmap "<LINE>",    $4f
-
 	charmap "@",         $50 ; string terminator
 	charmap "<PARA>",    $51
 	charmap "<PLAYER>",  $52 ; PlayerName
@@ -207,17 +208,29 @@
 
 ; Japanese kana, for those bits of text that were not translated to English
 
-	charmap "ガ", $5
-	charmap "ギ", $6
-	charmap "グ", $7
-	charmap "ゲ", $8
-	charmap "ゴ", $9
-	charmap "ザ", $a
-	charmap "ジ", $b
-	charmap "ズ", $c
-	charmap "ゼ", $d
-	charmap "ゾ", $e
-	charmap "ダ", $f
+	charmap "<NI>",      $1d ; "に "
+	charmap "<TTE>",     $1e ; "って"
+	charmap "<O>",       $1e ; "を "
+	charmap "<TA!>",     $22 ; "た!"
+	charmap "<KOUGEKI>", $23 ; "こうげき"
+	charmap "<WA>",      $24 ; "は "
+	charmap "<NO>",      $25 ; "の "
+	charmap "<ROUTE>",   $35 ; "ばん どうろ"
+	charmap "<WATASHI>", $36 ; "わたし"
+	charmap "<KOKO_WA>", $37 ; "ここは"
+	charmap "<GA>",      $4a ; "が "
+
+	charmap "ガ", $05
+	charmap "ギ", $06
+	charmap "グ", $07
+	charmap "ゲ", $08
+	charmap "ゴ", $09
+	charmap "ザ", $0a
+	charmap "ジ", $0b
+	charmap "ズ", $0c
+	charmap "ゼ", $0d
+	charmap "ゾ", $0e
+	charmap "ダ", $0f
 	charmap "ヂ", $10
 	charmap "ヅ", $11
 	charmap "デ", $12
@@ -227,7 +240,6 @@
 	charmap "ビ", $1a
 	charmap "ブ", $1b
 	charmap "ボ", $1c
-;	charmap "ベ", $1d
 
 	charmap "が", $26
 	charmap "ぎ", $27
--- a/constants/map_data_constants.asm
+++ b/constants/map_data_constants.asm
@@ -132,10 +132,6 @@
 MAPOBJECT_SCREEN_HEIGHT EQU 11
 MAPOBJECT_SCREEN_WIDTH EQU 12
 
-; NPCs disappear if standing on tile $60-$7f or $e0-$ff,
-; since those IDs are for text characters and textbox frames.
-MAPOBJECT_VISIBLE_TILE_LIMIT EQU $60
-
 
 ; object_struct members (see macros/wram.asm)
 	const_def
--- a/constants/text_constants.asm
+++ b/constants/text_constants.asm
@@ -39,3 +39,7 @@
 PRINTNUM_MONEY          EQU 1 << PRINTNUM_MONEY_F
 PRINTNUM_RIGHTALIGN     EQU 1 << PRINTNUM_RIGHTALIGN_F
 PRINTNUM_LEADINGZEROS   EQU 1 << PRINTNUM_LEADINGZEROS_F
+
+; character sets (see charmap.asm)
+FIRST_REGULAR_TEXT_CHAR EQU $60
+FIRST_HIRAGANA_DAKUTEN_CHAR EQU $20
--- a/data/battle/battle_text.asm
+++ b/data/battle/battle_text.asm
@@ -11,7 +11,7 @@
 WildPokemonAppearedText: ; 0x80746
 	text "Wild @"
 	text_from_ram EnemyMonNick
-	text ""
+	text_start
 	line "appeared!"
 	prompt
 ; 0x8075c
@@ -20,7 +20,7 @@
 	text "The hooked"
 	line "@"
 	text_from_ram EnemyMonNick
-	text ""
+	text_start
 	cont "attacked!"
 	prompt
 ; 0x80778
@@ -35,7 +35,7 @@
 WildCelebiAppearedText: ; 0x80793
 	text "Wild @"
 	text_from_ram EnemyMonNick
-	text ""
+	text_start
 	line "appeared!"
 	prompt
 ; 0x807a9
@@ -49,7 +49,7 @@
 BattleText_WildFled: ; 0x807bd
 	text "Wild @"
 	text_from_ram EnemyMonNick
-	text ""
+	text_start
 	line "fled!"
 	prompt
 ; 0x807cf
@@ -57,7 +57,7 @@
 BattleText_EnemyFled: ; 0x807cf
 	text "Enemy @"
 	text_from_ram EnemyMonNick
-	text ""
+	text_start
 	line "fled!"
 	prompt
 ; 0x807e2
@@ -189,7 +189,7 @@
 BattleText_EnemyPkmnFainted: ; 0x809a8
 	text "Enemy @"
 	text_from_ram EnemyMonNick
-	text ""
+	text_start
 	line "fainted!"
 	prompt
 ; 0x809be
@@ -197,7 +197,7 @@
 GotMoneyForWinningText:
 	text "<PLAYER> got ¥@"
 	deciram wBattleReward, 3, 6
-	text ""
+	text_start
 	line "for winning!"
 	prompt
 
@@ -216,7 +216,7 @@
 SentSomeToMomText:
 	text "<PLAYER> got ¥@"
 	deciram wBattleReward, 3, 6
-	text ""
+	text_start
 	line "for winning!"
 	cont "Sent some to MOM!"
 	prompt
@@ -238,7 +238,7 @@
 
 BattleText_PkmnFainted: ; 0x80a75
 	text_from_ram BattleMonNick
-	text ""
+	text_start
 	line "fainted!"
 	prompt
 ; 0x80a83
@@ -342,7 +342,7 @@
 	text "<USER>'s"
 	line "@"
 	text_from_ram StringBuffer1
-	text ""
+	text_start
 	cont "activated!"
 	prompt
 ; 0x80bf3
@@ -355,7 +355,7 @@
 
 BattleText_PkmnIsAlreadyOut: ; 0x80c0d
 	text_from_ram BattleMonNick
-	text ""
+	text_start
 	line "is already out."
 	prompt
 ; 0x80c22
@@ -362,7 +362,7 @@
 
 BattleText_PkmnCantBeRecalled: ; 0x80c22
 	text_from_ram BattleMonNick
-	text ""
+	text_start
 	line "can't be recalled!"
 	prompt
 ; 0x80c39
@@ -381,7 +381,7 @@
 
 BattleText_PkmnHasNoMovesLeft: ; 0x80c72
 	text_from_ram BattleMonNick
-	text ""
+	text_start
 	line "has no moves left!"
 	done
 ; 0x80c8a
@@ -405,7 +405,7 @@
 BattleText_WildPkmnIsEating: ; 0x80cba
 	text "Wild @"
 	text_from_ram EnemyMonNick
-	text ""
+	text_start
 	line "is eating!"
 	prompt
 ; 0x80cd1
@@ -413,7 +413,7 @@
 BattleText_WildPkmnIsAngry: ; 0x80cd1
 	text "Wild @"
 	text_from_ram EnemyMonNick
-	text ""
+	text_start
 	line "is angry!"
 	prompt
 ; 0x80ce7
@@ -1103,7 +1103,7 @@
 	text "<USER>"
 	line "stole @"
 	text_from_ram StringBuffer1
-	text ""
+	text_start
 	cont "from its foe!"
 	prompt
 ; 0x815f7
--- a/data/common_text/common_text_1.asm
+++ b/data/common_text/common_text_1.asm
@@ -39,7 +39,7 @@
 
 UnknownText_0x1bc0a2::
 	text_from_ram StringBuffer1
-	text ""
+	text_start
 	line "recovered @"
 	deciram wd1f3, 2, 3
 	text "HP!"
@@ -65,13 +65,13 @@
 
 UnknownText_0x1bc101::
 	text_from_ram StringBuffer1
-	text ""
+	text_start
 	line "was defrosted."
 	done
 
 UnknownText_0x1bc115::
 	text_from_ram StringBuffer1
-	text ""
+	text_start
 	line "woke up."
 	done
 
@@ -83,7 +83,7 @@
 
 UnknownText_0x1bc13a::
 	text_from_ram StringBuffer1
-	text ""
+	text_start
 	line "is revitalized."
 	done
 
@@ -292,7 +292,7 @@
 	text "Put away the"
 	line "@"
 	text_from_ram StringBuffer3
-	text ""
+	text_start
 
 	para "and set up the"
 	line "@"
@@ -376,7 +376,7 @@
 	done
 
 UnknownText_0x1bc701::
-	text ""
+	text_start
 	done
 
 UnknownText_0x1bc703::
@@ -485,33 +485,33 @@
 ; Oak's Pokémon Talk
 
 _OPT_IntroText1::
-	text ""
+	text_start
 	line "MARY: PROF.OAK'S"
 	done
 
 _OPT_IntroText2::
-	text ""
+	text_start
 	line "#MON TALK!"
 	done
 
 _OPT_IntroText3::
-	text ""
+	text_start
 	line "With me, MARY!"
 	done
 
 _OPT_OakText1::
-	text ""
+	text_start
 	line "OAK: @"
 	text_from_ram wMonOrItemNameBuffer
 	db "@@"
 
 _OPT_OakText2::
-	text ""
+	text_start
 	line "may be seen around"
 	done
 
 _OPT_OakText3::
-	text ""
+	text_start
 	line "@"
 	text_from_ram StringBuffer1
 	text "."
@@ -518,7 +518,7 @@
 	done
 
 _OPT_MaryText1::
-	text ""
+	text_start
 	line "MARY: @"
 	text_from_ram StringBuffer1
 	text "'s"
@@ -525,162 +525,162 @@
 	done
 
 OPT_SweetAdorably::
-	text ""
+	text_start
 	line "sweet and adorably"
 	done
 
 OPT_WigglySlickly::
-	text ""
+	text_start
 	line "wiggly and slickly"
 	done
 
 OPT_AptlyNamed::
-	text ""
+	text_start
 	line "aptly named and"
 	done
 
 OPT_UndeniablyKindOf::
-	text ""
+	text_start
 	line "undeniably kind of"
 	done
 
 OPT_Unbearably::
-	text ""
+	text_start
 	line "so, so unbearably"
 	done
 
 OPT_WowImpressively::
-	text ""
+	text_start
 	line "wow, impressively"
 	done
 
 OPT_AlmostPoisonously::
-	text ""
+	text_start
 	line "almost poisonously"
 	done
 
 OPT_Sensually::
-	text ""
+	text_start
 	line "ooh, so sensually"
 	done
 
 OPT_Mischievously::
-	text ""
+	text_start
 	line "so mischievously"
 	done
 
 OPT_Topically::
-	text ""
+	text_start
 	line "so very topically"
 	done
 
 OPT_Addictively::
-	text ""
+	text_start
 	line "sure addictively"
 	done
 
 OPT_LooksInWater::
-	text ""
+	text_start
 	line "looks in water is"
 	done
 
 OPT_EvolutionMustBe::
-	text ""
+	text_start
 	line "evolution must be"
 	done
 
 OPT_Provocatively::
-	text ""
+	text_start
 	line "provocatively"
 	done
 
 OPT_FlippedOut::
-	text ""
+	text_start
 	line "so flipped out and"
 	done
 
 OPT_HeartMeltingly::
-	text ""
+	text_start
 	line "heart-meltingly"
 	done
 
 OPT_Cute::
-	text ""
+	text_start
 	line "cute."
 	done
 
 OPT_Weird::
-	text ""
+	text_start
 	line "weird."
 	done
 
 OPT_Pleasant::
-	text ""
+	text_start
 	line "pleasant."
 	done
 
 OPT_BoldSortOf::
-	text ""
+	text_start
 	line "bold, sort of."
 	done
 
 OPT_Frightening::
-	text ""
+	text_start
 	line "frightening."
 	done
 
 OPT_SuaveDebonair::
-	text ""
+	text_start
 	line "suave & debonair!"
 	done
 
 OPT_Powerful::
-	text ""
+	text_start
 	line "powerful."
 	done
 
 OPT_Exciting::
-	text ""
+	text_start
 	line "exciting."
 	done
 
 OPT_Groovy::
-	text ""
+	text_start
 	line "groovy!"
 	done
 
 OPT_Inspiring::
-	text ""
+	text_start
 	line "inspiring."
 	done
 
 OPT_Friendly::
-	text ""
+	text_start
 	line "friendly."
 	done
 
 OPT_HotHotHot::
-	text ""
+	text_start
 	line "hot, hot, hot!"
 	done
 
 OPT_Stimulating::
-	text ""
+	text_start
 	line "stimulating."
 	done
 
 OPT_Guarded::
-	text ""
+	text_start
 	line "guarded."
 	done
 
 OPT_Lovely::
-	text ""
+	text_start
 	line "lovely."
 	done
 
 OPT_Speedy::
-	text ""
+	text_start
 	line "speedy."
 	done
 
@@ -689,7 +689,7 @@
 	done
 
 _PokedexShowText::
-	text ""
+	text_start
 	line "@"
 	text_from_ram StringBuffer1
 	db "@@"
@@ -697,32 +697,32 @@
 ; Pokémon Music Channel / Pokémusic
 
 _BenIntroText1::
-	text ""
+	text_start
 	line "BEN: #MON MUSIC"
 	done
 
 _BenIntroText2::
-	text ""
+	text_start
 	line "CHANNEL!"
 	done
 
 _BenIntroText3::
-	text ""
+	text_start
 	line "It's me, DJ BEN!"
 	done
 
 _FernIntroText1::
-	text ""
+	text_start
 	line "FERN: #MUSIC!"
 	done
 
 _FernIntroText2::
-	text ""
+	text_start
 	line "With DJ FERN!"
 	done
 
 _BenFernText1::
-	text ""
+	text_start
 	line "Today's @"
 	current_day
 	text ","
@@ -729,22 +729,22 @@
 	done
 
 _BenFernText2A::
-	text ""
+	text_start
 	line "so let us jam to"
 	done
 
 _BenFernText2B::
-	text ""
+	text_start
 	line "so chill out to"
 	done
 
 _BenFernText3A::
-	text ""
+	text_start
 	line "#MON March!"
 	done
 
 _BenFernText3B::
-	text ""
+	text_start
 	line "#MON Lullaby!"
 	done
 
@@ -751,42 +751,42 @@
 ; Lucky Channel
 
 _LC_Text1::
-	text ""
+	text_start
 	line "REED: Yeehaw! How"
 	done
 
 _LC_Text2::
-	text ""
+	text_start
 	line "y'all doin' now?"
 	done
 
 _LC_Text3::
-	text ""
+	text_start
 	line "Whether you're up"
 	done
 
 _LC_Text4::
-	text ""
+	text_start
 	line "or way down low,"
 	done
 
 _LC_Text5::
-	text ""
+	text_start
 	line "don't you miss the"
 	done
 
 _LC_Text6::
-	text ""
+	text_start
 	line "LUCKY NUMBER SHOW!"
 	done
 
 _LC_Text7::
-	text ""
+	text_start
 	line "This week's Lucky"
 	done
 
 _LC_Text8::
-	text ""
+	text_start
 	line "Number is @"
 	interpret_data
 	text_from_ram StringBuffer1
@@ -794,27 +794,27 @@
 	done
 
 _LC_Text9::
-	text ""
+	text_start
 	line "I'll repeat that!"
 	done
 
 _LC_Text10::
-	text ""
+	text_start
 	line "Match it and go to"
 	done
 
 _LC_Text11::
-	text ""
+	text_start
 	line "the RADIO TOWER!"
 	done
 
 _LC_DragText1::
-	text ""
+	text_start
 	line "…Repeating myself"
 	done
 
 _LC_DragText2::
-	text ""
+	text_start
 	line "gets to be a drag…"
 	done
 
@@ -821,22 +821,22 @@
 ; Places and People
 
 _PnP_Text1::
-	text ""
+	text_start
 	line "PLACES AND PEOPLE!"
 	done
 
 _PnP_Text2::
-	text ""
+	text_start
 	line "Brought to you by"
 	done
 
 _PnP_Text3::
-	text ""
+	text_start
 	line "me, DJ LILY!"
 	done
 
 _PnP_Text4::
-	text ""
+	text_start
 	line "@"
 	text_from_ram StringBuffer2
 	text " @"
@@ -844,123 +844,123 @@
 	db "@@"
 
 _PnP_cute::
-	text ""
+	text_start
 	line "is cute."
 	done
 
 _PnP_lazy::
-	text ""
+	text_start
 	line "is sort of lazy."
 	done
 
 _PnP_happy::
-	text ""
+	text_start
 	line "is always happy."
 	done
 
 _PnP_noisy::
-	text ""
+	text_start
 	line "is quite noisy."
 	done
 
 _PnP_precocious::
-	text ""
+	text_start
 	line "is precocious."
 	done
 
 _PnP_bold::
-	text ""
+	text_start
 	line "is somewhat bold."
 	done
 
 _PnP_picky::
-	text ""
+	text_start
 	line "is too picky!"
 	done
 
 _PnP_sortofok::
-	text ""
+	text_start
 	line "is sort of OK."
 	done
 
 _PnP_soso::
-	text ""
+	text_start
 	line "is just so-so."
 	done
 
 _PnP_great::
-	text ""
+	text_start
 	line "is actually great."
 	done
 
 _PnP_mytype::
-	text ""
+	text_start
 	line "is just my type."
 	done
 
 _PnP_cool::
-	text ""
+	text_start
 	line "is so cool, no?"
 	done
 
 _PnP_inspiring::
-	text ""
+	text_start
 	line "is inspiring!"
 	done
 
 _PnP_weird::
-	text ""
+	text_start
 	line "is kind of weird."
 	done
 
 _PnP_rightforme::
-	text ""
+	text_start
 	line "is right for me?"
 	done
 
 _PnP_odd::
-	text ""
+	text_start
 	line "is definitely odd!"
 	done
 
 _PnP_Text5::
-	text ""
+	text_start
 	line "@"
 	text_from_ram StringBuffer1
 	db "@@"
 
 _RocketRadioText1::
-	text ""
+	text_start
 	line "… …Ahem, we are"
 	done
 
 _RocketRadioText2::
-	text ""
+	text_start
 	line "TEAM ROCKET!"
 	done
 
 _RocketRadioText3::
-	text ""
+	text_start
 	line "After three years"
 	done
 
 _RocketRadioText4::
-	text ""
+	text_start
 	line "of preparation, we"
 	done
 
 _RocketRadioText5::
-	text ""
+	text_start
 	line "have risen again"
 	done
 
 _RocketRadioText6::
-	text ""
+	text_start
 	line "from the ashes!"
 	done
 
 _RocketRadioText7::
-	text ""
+	text_start
 	line "GIOVANNI! @"
 	interpret_data
 	text "Can you"
@@ -967,7 +967,7 @@
 	done
 
 _RocketRadioText8::
-	text ""
+	text_start
 	line "hear?@"
 	interpret_data
 	text " We did it!"
@@ -974,7 +974,7 @@
 	done
 
 _RocketRadioText9::
-	text ""
+	text_start
 	line "@"
 	interpret_data
 	text "Where is our boss?"
@@ -981,7 +981,7 @@
 	done
 
 _RocketRadioText10::
-	text ""
+	text_start
 	line "@"
 	interpret_data
 	text "Is he listening?"
@@ -988,22 +988,22 @@
 	done
 
 _BuenaRadioText1::
-	text ""
+	text_start
 	line "BUENA: BUENA here!"
 	done
 
 _BuenaRadioText2::
-	text ""
+	text_start
 	line "Today's password!"
 	done
 
 _BuenaRadioText3::
-	text ""
+	text_start
 	line "Let me think… It's"
 	done
 
 _BuenaRadioText4::
-	text ""
+	text_start
 	line "@"
 	text_from_ram StringBuffer1
 	text "!"
@@ -1010,57 +1010,57 @@
 	done
 
 _BuenaRadioText5::
-	text ""
+	text_start
 	line "Don't forget it!"
 	done
 
 _BuenaRadioText6::
-	text ""
+	text_start
 	line "I'm in GOLDENROD's"
 	done
 
 _BuenaRadioText7::
-	text ""
+	text_start
 	line "RADIO TOWER!"
 	done
 
 _BuenaRadioMidnightText1::
-	text ""
+	text_start
 	line "BUENA: Oh my…"
 	done
 
 _BuenaRadioMidnightText2::
-	text ""
+	text_start
 	line "It's midnight! I"
 	done
 
 _BuenaRadioMidnightText3::
-	text ""
+	text_start
 	line "have to shut down!"
 	done
 
 _BuenaRadioMidnightText4::
-	text ""
+	text_start
 	line "Thanks for tuning"
 	done
 
 _BuenaRadioMidnightText5::
-	text ""
+	text_start
 	line "in to the end! But"
 	done
 
 _BuenaRadioMidnightText6::
-	text ""
+	text_start
 	line "don't stay up too"
 	done
 
 _BuenaRadioMidnightText7::
-	text ""
+	text_start
 	line "late! Presented to"
 	done
 
 _BuenaRadioMidnightText8::
-	text ""
+	text_start
 	line "you by DJ BUENA!"
 	done
 
@@ -1073,7 +1073,7 @@
 	done
 
 _BuenaOffTheAirText::
-	text ""
+	text_start
 	line ""
 	done
 
@@ -1089,7 +1089,7 @@
 	text "<ENEMY>"
 	line "used @"
 	text_from_ram wMonOrItemNameBuffer
-	text ""
+	text_start
 	cont "on @"
 	text_from_ram EnemyMonNick
 	text "!"
@@ -1108,7 +1108,7 @@
 Text_TheItemWasPutInThePack::
 	text "The @"
 	text_from_ram StringBuffer1
-	text ""
+	text_start
 	line "was put in the"
 	cont "PACK."
 	done
@@ -1248,7 +1248,7 @@
 UnknownText_0x1bd286::
 	text "Trading @"
 	text_from_ram StringBuffer2
-	text ""
+	text_start
 	line "for @"
 	text_from_ram StringBuffer1
 	text "…"
@@ -1432,7 +1432,7 @@
 UnknownText_0x1bd5f4::
 	text "Hi! The @"
 	text_from_ram wMonOrItemNameBuffer
-	text ""
+	text_start
 	line "you traded me is"
 	cont "doing great!"
 	done
@@ -1621,7 +1621,7 @@
 	done
 
 UnknownText_0x1bdaa7::
-	text ""
+	text_start
 	done
 
 UnknownText_0x1bdaa9::
@@ -1725,7 +1725,7 @@
 UnknownText_0x1bdd96::
 	text "Your @"
 	text_from_ram StringBuffer1
-	text ""
+	text_start
 	line "has grown a lot."
 
 	para "By level, it's"
@@ -1756,7 +1756,7 @@
 	text "Huh? Back already?"
 	line "Your @"
 	text_from_ram StringBuffer1
-	text ""
+	text_start
 	para "needs a little"
 	line "more time with us."
 
--- a/data/common_text/common_text_2.asm
+++ b/data/common_text/common_text_2.asm
@@ -67,7 +67,7 @@
 
 	para "Treat @"
 	text_from_ram StringBuffer1
-	text ""
+	text_start
 	line "with loving care."
 	done
 
@@ -99,7 +99,7 @@
 	text " gained@@"
 
 Text_ABoostedStringBuffer2ExpPoints::
-	text ""
+	text_start
 	line "a boosted"
 	cont "@"
 	deciram StringBuffer2, 2, 4
@@ -107,7 +107,7 @@
 	prompt
 
 Text_StringBuffer2ExpPoints::
-	text ""
+	text_start
 	line "@"
 	deciram StringBuffer2, 2, 4
 	text " EXP. Points!"
@@ -169,7 +169,7 @@
 
 	para "Teach @"
 	text_from_ram StringBuffer2
-	text ""
+	text_start
 	line "to a #MON?"
 	done
 
@@ -245,7 +245,7 @@
 	text " sent"
 	line "@"
 	text_from_ram StringBuffer1
-	text ""
+	text_start
 	cont "to @"
 	text_from_ram wMysteryGiftPlayerName
 	text "'s home."
@@ -546,7 +546,7 @@
 
 UnknownText_0x1c0acc::
 	text_from_ram StringBuffer3
-	text ""
+	text_start
 	line "fainted!"
 	prompt
 
@@ -599,7 +599,7 @@
 UnknownText_0x1c0bbb::
 	text "Throw away @"
 	deciram wItemQuantityChangeBuffer, 1, 2
-	text ""
+	text_start
 	line "@"
 	text_from_ram StringBuffer2
 	text "(S)?"
@@ -641,7 +641,7 @@
 	done
 
 UnknownText_0x1c0c83::
-	text ""
+	text_start
 	done
 
 Text_YouCantUseItInABattle::
@@ -688,32 +688,32 @@
 	text "<USER>@@"
 
 UnknownText_0x1c0d12::
-	text ""
+	text_start
 	line "made a whirlwind!"
 	prompt
 
 UnknownText_0x1c0d26::
-	text ""
+	text_start
 	line "took in sunlight!"
 	prompt
 
 UnknownText_0x1c0d3a::
-	text ""
+	text_start
 	line "lowered its head!"
 	prompt
 
 UnknownText_0x1c0d4e::
-	text ""
+	text_start
 	line "is glowing!"
 	prompt
 
 UnknownText_0x1c0d5c::
-	text ""
+	text_start
 	line "flew up high!"
 	prompt
 
 UnknownText_0x1c0d6c::
-	text ""
+	text_start
 	line "dug a hole!"
 	prompt
 
@@ -721,11 +721,11 @@
 	text "<USER>@@"
 
 _UsedMove1Text::
-	text ""
+	text_start
 	line "used @@"
 
 _UsedMove2Text::
-	text ""
+	text_start
 	line "used @@"
 
 _UsedInsteadText::
@@ -761,7 +761,7 @@
 	para "@@"
 
 UnknownText_0x1c0db8::
-	text ""
+	text_start
 	done
 
 UnknownText_0x1c0dba::
@@ -782,7 +782,7 @@
 UnknownText_0x1c0df3::
 	text "It's @"
 	text_from_ram wBreedMon2Nick
-	text ""
+	text_start
 	line "that was left with"
 	cont "the DAY-CARE LADY."
 	done
@@ -790,7 +790,7 @@
 UnknownText_0x1c0e24::
 	text "It's @"
 	text_from_ram wBreedMon1
-	text ""
+	text_start
 	line "that was left with"
 	cont "the DAY-CARE MAN."
 	done
@@ -874,7 +874,7 @@
 	deciram wcf64, 1, 3
 	text " @"
 	text_from_ram StringBuffer1
-	text ""
+	text_start
 	line "Animation type @"
 	text_from_ram StringBuffer2
 	db "@@"
@@ -953,7 +953,7 @@
 	text "!@@"
 
 ContestJudging_FirstPlaceScoreText::
-	text ""
+	text_start
 
 	para "The winning score"
 	line "was @"
@@ -972,7 +972,7 @@
 	text "!@@"
 
 ContestJudging_SecondPlaceScoreText::
-	text ""
+	text_start
 	para "The score was"
 	line "@"
 	deciram wBugContestSecondPlaceScore, 2, 3
@@ -990,7 +990,7 @@
 	text "!@@"
 
 ContestJudging_ThirdPlaceScoreText::
-	text ""
+	text_start
 	para "The score was"
 	line "@"
 	deciram wBugContestThirdPlaceScore, 2, 3
@@ -1073,7 +1073,7 @@
 _KrissPCWithdrewItemsText::
 	text "Withdrew @"
 	deciram wItemQuantityChangeBuffer, 1, 2
-	text ""
+	text_start
 	line "@"
 	text_from_ram StringBuffer2
 	text "(S)."
@@ -1096,7 +1096,7 @@
 _KrissPCDepositItemsText::
 	text "Deposited @"
 	deciram wItemQuantityChangeBuffer, 1, 2
-	text ""
+	text_start
 	line "@"
 	text_from_ram StringBuffer2
 	text "(S)."
@@ -1349,7 +1349,7 @@
 UnknownText_0x1c1aad::
 	text "Throw away @"
 	deciram wItemQuantityChangeBuffer, 1, 2
-	text ""
+	text_start
 	line "@"
 	text_from_ram StringBuffer2
 	text "(S)?"
@@ -1390,7 +1390,7 @@
 UnknownText_0x1c1b57::
 	text "Made @"
 	text_from_ram wMonOrItemNameBuffer
-	text ""
+	text_start
 	line "hold @"
 	text_from_ram StringBuffer2
 	text "."
@@ -1415,7 +1415,7 @@
 UnknownText_0x1c1bc4::
 	text "Took @"
 	text_from_ram StringBuffer1
-	text ""
+	text_start
 	line "from @"
 	text_from_ram wMonOrItemNameBuffer
 	text "."
--- a/data/common_text/common_text_3.asm
+++ b/data/common_text/common_text_3.asm
@@ -73,7 +73,7 @@
 UnknownText_0x1c4212::
 	text "Trade @"
 	text_from_ram wd004
-	text ""
+	text_start
 	line "for @"
 	text_from_ram StringBuffer1
 	text "?"
@@ -134,7 +134,7 @@
 UnknownText_0x1c43dc::
 	text "There are only @"
 	deciram StringBuffer2, 1, 2
-	text ""
+	text_start
 	line "min. left today."
 
 	para "Want a quick"
@@ -274,7 +274,7 @@
 UnknownText_0x1c474b::
 	text "The @"
 	text_from_ram StringBuffer3
-	text ""
+	text_start
 	line "is full…"
 	prompt
 
@@ -320,18 +320,18 @@
 UnknownText_0x1c4837::
 	text "Hm… @"
 	text_from_ram wSeerNickname
-	text ""
+	text_start
 	line "came from @"
 	text_from_ram wSeerOTName
-	text ""
+	text_start
 	cont "in a trade?"
 
 	para "@"
 	text_from_ram wSeerCaughtLocation
-	text ""
+	text_start
 	line "was where @"
 	text_from_ram wSeerOTName
-	text ""
+	text_start
 	cont "met @"
 	text_from_ram wSeerNickname
 	text "!"
@@ -410,7 +410,7 @@
 
 	para "This @"
 	text_from_ram wSeerNickname
-	text ""
+	text_start
 	line "must have come"
 
 	para "through numerous"
@@ -438,7 +438,7 @@
 	para "I'm sure that"
 	line "seeing @"
 	text_from_ram wSeerNickname
-	text ""
+	text_start
 	para "in battle would"
 	line "excite anyone."
 	done
@@ -450,7 +450,7 @@
 	db "@@"
 
 UnknownText_0x1c4baf::
-	text ""
+	text_start
 	para "evolved into"
 	line "@"
 	text_from_ram StringBuffer1
@@ -460,7 +460,7 @@
 UnknownText_0x1c4bc5::
 	text "Huh? @"
 	text_from_ram StringBuffer2
-	text ""
+	text_start
 	line "stopped evolving!"
 	prompt
 
@@ -467,7 +467,7 @@
 UnknownText_0x1c4be3::
 	text "What? @"
 	text_from_ram StringBuffer2
-	text ""
+	text_start
 	line "is evolving!"
 	done
 
@@ -937,7 +937,7 @@
 
 UnknownText_0x1c56af::
 	text_from_ram wMonOrItemNameBuffer
-	text ""
+	text_start
 	line "did not learn"
 	cont "@"
 	text_from_ram StringBuffer2
@@ -954,7 +954,7 @@
 
 	para "But @"
 	text_from_ram wMonOrItemNameBuffer
-	text ""
+	text_start
 	line "can't learn more"
 	cont "than four moves."
 
@@ -973,7 +973,7 @@
 UnknownText_0x1c574e::
 	text " Poof!@"
 	interpret_data
-	text ""
+	text_start
 	para "@"
 	text_from_ram wMonOrItemNameBuffer
 	text " forgot"
@@ -1179,7 +1179,7 @@
 UnknownText_0x1c5b17::
 	text "Gotcha! @"
 	text_from_ram EnemyMonNick
-	text ""
+	text_start
 	line "was caught!@"
 	sound_caught_mon
 	db "@@"
@@ -1291,7 +1291,7 @@
 	text "There was a trophy"
 	line "inside!@"
 	sound_dex_fanfare_50_79
-	text ""
+	text_start
 	para "@"
 	text_from_ram PlayerName
 	text " sent the"
--- a/data/phone/text/bill.asm
+++ b/data/phone/text/bill.asm
@@ -45,7 +45,7 @@
 	para "<PLAY_G>, your BOX"
 	line "has room for @"
 	text_from_ram StringBuffer3
-	text ""
+	text_start
 	cont "more #MON."
 
 	para "Get out there and"
--- a/data/phone/text/extra.asm
+++ b/data/phone/text/extra.asm
@@ -491,7 +491,7 @@
 
 	para "to @"
 	text_from_ram StringBuffer5
-	text ""
+	text_start
 	line "and pick it up?"
 	done
 ; 0x64e90
@@ -561,7 +561,7 @@
 	text "You know what?"
 	line "A wild @"
 	text_from_ram StringBuffer4
-	text ""
+	text_start
 	para "got away from me"
 	line "again."
 
@@ -918,7 +918,7 @@
 	text "Listen to this."
 	line "My @"
 	text_from_ram StringBuffer4
-	text ""
+	text_start
 	para "grins happily when"
 	line "I pinch its cheek."
 
@@ -1497,7 +1497,7 @@
 	text "But get this, a"
 	line "wild @"
 	text_from_ram StringBuffer4
-	text ""
+	text_start
 	para "just barely eluded"
 	line "us."
 
@@ -1808,7 +1808,7 @@
 	text_from_ram StringBuffer3
 	text "'s @"
 	text_from_ram StringBuffer4
-	text ""
+	text_start
 	line "is much stronger"
 	cont "than before!"
 	done
@@ -1831,7 +1831,7 @@
 
 	para "A wild @"
 	text_from_ram StringBuffer4
-	text ""
+	text_start
 	line "got away from me"
 
 	para "again. It's just"
--- a/data/phone/text/extra2.asm
+++ b/data/phone/text/extra2.asm
@@ -316,7 +316,7 @@
 
 	para "in @"
 	text_from_ram StringBuffer5
-	text ""
+	text_start
 	line "when you can."
 	done
 ; 0x1748ea
@@ -372,7 +372,7 @@
 GavenGreaterText: ; 0x174a24
 	text "My @"
 	text_from_ram StringBuffer4
-	text ""
+	text_start
 	line "might be greater"
 	cont "than I imagined."
 
@@ -485,7 +485,7 @@
 	text "Oh, have you ever"
 	line "seen a @"
 	text_from_ram StringBuffer4
-	text ""
+	text_start
 	cont "before?"
 
 	para "I just battled"
@@ -823,7 +823,7 @@
 	text "Oh yeah, I took"
 	line "down a @"
 	text_from_ram StringBuffer4
-	text ""
+	text_start
 	para "in the wild the"
 	line "other day."
 
@@ -927,7 +927,7 @@
 	text "Oh yeah, we KO'd a"
 	line "wild @"
 	text_from_ram StringBuffer4
-	text ""
+	text_start
 	para "with one hit a"
 	line "while back."
 
@@ -1549,7 +1549,7 @@
 
 	para "wild @"
 	text_from_ram StringBuffer4
-	text ""
+	text_start
 	line "quite often."
 
 	para "They're easily"
@@ -1605,13 +1605,13 @@
 	para "I took a hike in"
 	line "@"
 	text_from_ram StringBuffer5
-	text ""
+	text_start
 	cont "yesterday, see?"
 
 	para "Well, there were"
 	line "tons of @"
 	text_from_ram StringBuffer4
-	text ""
+	text_start
 	para "around! You have"
 	line "to see it!"
 
@@ -1618,7 +1618,7 @@
 	para "I get this feeling"
 	line "that @"
 	text_from_ram StringBuffer4
-	text ""
+	text_start
 	para "may be timid."
 	line "I didn't see any"
 
--- a/data/phone/text/jose_overworld.asm
+++ b/data/phone/text/jose_overworld.asm
@@ -1,7 +1,7 @@
 JoseAskNumber1Text:
 	text "If my @"
 	text_from_ram StringBuffer4
-	text ""
+	text_start
 	line "sees anything"
 
 	para "pretty, it goes"
--- a/data/phone/text/mom.asm
+++ b/data/phone/text/mom.asm
@@ -14,7 +14,7 @@
 	para "Isn't that where"
 	line "@"
 	text_from_ram StringBuffer4
-	text ""
+	text_start
 	para "is? Did you go"
 	line "take a look?"
 	done
--- a/data/phone/text/trainers1.asm
+++ b/data/phone/text/trainers1.asm
@@ -739,7 +739,7 @@
 UnknownText_0x1b5d9f: ; 0x1b5d9f
 	text "Hello, @"
 	text_from_ram StringBuffer3
-	text ""
+	text_start
 	line "speaking."
 
 	para "Oh, <PLAY_G>."
@@ -749,7 +749,7 @@
 UnknownText_0x1b5dcc: ; 0x1b5dcc
 	text "Hello, @"
 	text_from_ram StringBuffer3
-	text ""
+	text_start
 	line "speaking."
 
 	para "Oh, <PLAY_G>."
@@ -759,7 +759,7 @@
 UnknownText_0x1b5df8: ; 0x1b5df8
 	text "Hello, @"
 	text_from_ram StringBuffer3
-	text ""
+	text_start
 	line "speaking."
 
 	para "Oh, <PLAY_G>."
@@ -852,7 +852,7 @@
 
 	para "This is @"
 	text_from_ram StringBuffer3
-	text ""
+	text_start
 	line "the HIKER!"
 	done
 
@@ -862,7 +862,7 @@
 
 	para "This is @"
 	text_from_ram StringBuffer3
-	text ""
+	text_start
 	line "the HIKER!"
 	done
 
@@ -872,7 +872,7 @@
 
 	para "This is @"
 	text_from_ram StringBuffer3
-	text ""
+	text_start
 	line "the HIKER!"
 	done
 
@@ -1033,7 +1033,7 @@
 UnknownText_0x1b638c: ; 0x1b638c
 	text "Hello? @"
 	text_from_ram StringBuffer3
-	text ""
+	text_start
 	line "here…"
 
 	para "Hey, <PLAY_G>!"
@@ -1042,7 +1042,7 @@
 UnknownText_0x1b63a8: ; 0x1b63a8
 	text "Hello? @"
 	text_from_ram StringBuffer3
-	text ""
+	text_start
 	line "here…"
 
 	para "Wow, <PLAY_G>!"
@@ -1051,7 +1051,7 @@
 UnknownText_0x1b63c4: ; 0x1b63c4
 	text "Hello? @"
 	text_from_ram StringBuffer3
-	text ""
+	text_start
 	line "here…"
 
 	para "Yippee, <PLAY_G>!"
@@ -1563,7 +1563,7 @@
 
 	para "Heh, my @"
 	text_from_ram StringBuffer4
-	text ""
+	text_start
 	line "is so tough, it"
 
 	para "doesn't need to go"
@@ -1722,7 +1722,7 @@
 
 	para "My @"
 	text_from_ram StringBuffer4
-	text ""
+	text_start
 	line "looks like it will"
 
 	para "get tough enough"
--- a/data/std_text.asm
+++ b/data/std_text.asm
@@ -232,7 +232,7 @@
 ContestResults_PlayerWonAPrizeText:
 	text "<PLAYER>, the No.@"
 	text_from_ram StringBuffer3
-	text ""
+	text_start
 	line "finisher, wins"
 	cont "@"
 	text_from_ram StringBuffer4
@@ -280,7 +280,7 @@
 
 GymStatue_CityGymText:
 	text_from_ram StringBuffer3
-	text ""
+	text_start
 	line "#MON GYM"
 	done
 
@@ -287,7 +287,7 @@
 GymStatue_WinningTrainersText:
 	text "LEADER: @"
 	text_from_ram StringBuffer4
-	text ""
+	text_start
 	para "WINNING TRAINERS:"
 	line "<PLAYER>"
 	done
--- a/docs/bugs_and_glitches.md
+++ b/docs/bugs_and_glitches.md
@@ -567,7 +567,7 @@
 
 ```asm
 Text_ABoostedStringBuffer2ExpPoints::
-	text ""
+	text_start
 	line "a boosted"
 	cont "@"
 	deciram StringBuffer2, 2, 4
@@ -575,7 +575,7 @@
 	prompt
 
 Text_StringBuffer2ExpPoints::
-	text ""
+	text_start
 	line "@"
 	deciram StringBuffer2, 2, 4
 	text " EXP. Points!"
--- a/docs/text_commands.md
+++ b/docs/text_commands.md
@@ -101,9 +101,9 @@
 Play `SFX_DEX_FANFARE_50_79`.
 
 
-## `$0C`: <code>limited_interpret_data <i>number</i></code>
+## `$0C`: <code>limited_interpret_data <i>n</i></code>
 
-Print *number* `"…"`s.
+Print *n* `"…"`s.
 
 
 ## `$0D`: `link_wait_button`
@@ -143,7 +143,7 @@
 
 ## `$14`: <code>text_buffer <i>id</i></code>
 
-Write text from one of the following addresses (listed in `StringBufferPointers`):
+Write text from one of the following addresses (listed in [data/text_buffers.asm](/data/text_buffers.asm)):
 
 0. `StringBuffer3`
 1. `StringBuffer4`
@@ -162,3 +162,8 @@
 ## `$16`: <code>text_jump <i>address</i></code>
 
 Write text from a different bank.
+
+
+## `$00`: `text_start`
+
+Start writing regular text again after a special command.
--- a/engine/map_objects.asm
+++ b/engine/map_objects.asm
@@ -2474,8 +2474,10 @@
 	push bc
 	call Coord2Tile
 	pop bc
+; NPCs disappear if standing on tile $60-$7f (or $e0-$ff),
+; since those IDs are for text characters and textbox frames.
 	ld a, [hl]
-	cp MAPOBJECT_VISIBLE_TILE_LIMIT
+	cp FIRST_REGULAR_TEXT_CHAR
 	jr nc, .nope
 .ok8
 	dec d
--- a/engine/radio.asm
+++ b/engine/radio.asm
@@ -134,7 +134,7 @@
 	cp 2
 	jr nc, .print
 	inc hl
-	ld [hl], "<START>"
+	ld [hl], TX_START
 	inc a
 	ld [wNumRadioLinesPrinted], a
 	cp 2
@@ -813,7 +813,7 @@
 	ld bc, SCREEN_WIDTH - 1
 	call FarCopyBytes
 	ld hl, wPokedexShowPointerAddr
-	ld [hl], "<START>"
+	ld [hl], TX_START
 	inc hl
 	ld [hl], "<LINE>"
 	inc hl
--- a/engine/routines/checknickerrors.asm
+++ b/engine/routines/checknickerrors.asm
@@ -64,10 +64,10 @@
 ; table defining which characters are actually text commands
 ; format:
 	;      ≥           <
-	db "<START>",  TX_BOX    + 1
+	db TX_START,   TX_BOX    + 1
 	db "<PLAY_G>", $18       + 1
-	db $1d,        "%"       + 1
-	db $35,        "<GREEN>" + 1
+	db "<NI>",     "%"       + 1
+	db "<ROUTE>",  "<GREEN>" + 1
 	db "<ENEMY>",  "<ENEMY>" + 1
 	db "<MOM>",    "<TM>"    + 1
 	db "<ROCKET>", "┘"       + 1
--- a/home/text.asm
+++ b/home/text.asm
@@ -214,20 +214,20 @@
 ._\@:
 ENDM
 
-	dict "<DAY>",     Char15
+	dict TX_DAY,      DayOfWeekChar
 	dict "<LINE>",    LineChar
 	dict "<NEXT>",    NextLineChar
 	dict TX_FAR,      TextFar
-	dict $00,         NullChar
-	dict $4c,         Char4C
-	dict $4b,         Char4B
+	dict TX_START,    NullChar
+	dict "<CONT3>",   _ContTextNoPause
+	dict "<CONT2>",   _ContText
 	dict "<PARA>",    Paragraph
 	dict "<MOM>",     PrintMomsName
 	dict "<PLAYER>",  PrintPlayerName
 	dict "<RIVAL>",   PrintRivalName
-	dict $35,         Char35
-	dict $36,         Char36
-	dict $37,         Char37
+	dict "<ROUTE>",   PlaceJPRoute
+	dict "<WATASHI>", PlaceWatashi
+	dict "<KOKO_WA>", PlaceKokoWa
 	dict "<RED>",     PrintRedsName
 	dict "<GREEN>",   PrintGreensName
 	dict "#",         PlacePOKe
@@ -236,7 +236,7 @@
 	dict "<TM>",      TMChar
 	dict "<TRNER>",   TrainerChar
 	dict "<KOUGEKI>", PlaceKougeki
-	dict "<LNBRK>",   Char22
+	dict "<LNBRK>",   LineBreakChar
 	dict "<CONT>",    ContText
 	dict "<......>",  SixDotsChar
 	dict "<DONE>",    DoneText
@@ -263,7 +263,7 @@
 	jp NextChar
 
 .not_diacritic
-	cp $60 ; Regular characters
+	cp FIRST_REGULAR_TEXT_CHAR
 	jr nc, .place
 
 	cp "パ"
@@ -270,13 +270,13 @@
 	jr nc, .handakuten
 
 .dakuten
-	cp $20
-	jr nc, .daku1
+	cp FIRST_HIRAGANA_DAKUTEN_CHAR
+	jr nc, .hiragana_dakuten
 	add "カ" - "ガ"
-	jr .daku2
-.daku1
+	jr .katakana_dakuten
+.hiragana_dakuten
 	add "か" - "が"
-.daku2
+.katakana_dakuten
 	ld b, "゙" ; dakuten
 	call Diacritic
 	jr .place
@@ -283,12 +283,12 @@
 
 .handakuten
 	cp "ぱ"
-	jr nc, .han1
+	jr nc, .hiragana_handakuten
 	add "ハ" - "パ"
-	jr .han2
-.han1
+	jr .katakana_handakuten
+.hiragana_handakuten
 	add "は" - "ぱ"
-.han2
+.katakana_handakuten
 	ld b, "゚" ; handakuten
 	call Diacritic
 
@@ -299,7 +299,7 @@
 ; 0x117b
 
 
-Char15:: ; 117b
+DayOfWeekChar:: ; 117b
 	ld c, l
 	ld b, h
 	farcall Function17f036
@@ -328,9 +328,9 @@
 SixDotsChar:  print_name SixDotsCharText ; 11d3
 PlacePKMN:    print_name PlacePKMNText   ; 11da
 PlacePOKE:    print_name PlacePOKEText   ; 11e1
-Char35:       print_name Char35Text      ; 11e8
-Char36:       print_name Char36Text      ; 11ef
-Char37:       print_name Char37Text      ; 11f6
+PlaceJPRoute: print_name PlaceJPRouteText ; 11e8
+PlaceWatashi: print_name PlaceWatashiText ; 11ef
+PlaceKokoWa:  print_name PlaceKokoWaText ; 11f6
 
 
 PlaceMoveTargetsName:: ; 11fd
@@ -350,7 +350,7 @@
 	jr PlaceCommandCharacter
 
 .enemy
-	ld de, EnemyText ; Enemy
+	ld de, EnemyText
 	call PlaceString
 	ld h, b
 	ld l, c
@@ -375,7 +375,7 @@
 	call PlaceString
 	ld h, b
 	ld l, c
-	ld de, String12a2
+	ld de, String_Space
 	call PlaceString
 	push bc
 	callfar Battle_GetTrainerName
@@ -400,9 +400,9 @@
 	ld l, c
 	ld a, [wPlayerGender]
 	bit 0, a
-	ld de, String_kun
+	ld de, KunSuffixText
 	jr z, PlaceCommandCharacter
-	ld de, String_chan
+	ld de, ChanSuffixText
 	jr PlaceCommandCharacter
 
 
@@ -414,22 +414,23 @@
 	jp NextChar
 ; 0x1273
 
-TMCharText:: db "TM@" ; 1273
-TrainerCharText:: db "TRAINER@" ; 1276
-PCCharText:: db "PC@" ; 127e
-RocketCharText:: db "ROCKET@" ; 1281
-PlacePOKeText:: db "POKé@" ; 1288
-KougekiText:: db "こうげき@" ; 128d
-SixDotsCharText:: db "……@" ; 1292
-EnemyText:: db "Enemy @" ; 1295
-PlacePKMNText:: db "<PK><MN>@" ; PK MN ; 129c
-PlacePOKEText:: db "<PO><KE>@" ; PO KE ; 129f
-String12a2:: db " @" ; 12a2
-Char35Text::
-Char36Text::
-Char37Text:: db "@" ; 12a4
-String_kun:: db "@" ; 12a5
-String_chan:: db "@" ; 12a6
+TMCharText::      db "TM@" 
+TrainerCharText:: db "TRAINER@"
+PCCharText::      db "PC@"
+RocketCharText::  db "ROCKET@"
+PlacePOKeText::   db "POKé@"
+KougekiText::     db "こうげき@"
+SixDotsCharText:: db "……@"
+EnemyText::       db "Enemy @"
+PlacePKMNText::   db "<PK><MN>@"
+PlacePOKEText::   db "<PO><KE>@"
+String_Space::    db " @"
+; These strings have been dummied out.
+PlaceJPRouteText::
+PlaceWatashiText::
+PlaceKokoWaText:: db "@"
+KunSuffixText::   db "@"
+ChanSuffixText::  db "@"
 ; 12a7
 
 NextLineChar:: ; 12a7
@@ -440,7 +441,7 @@
 	jp NextChar
 ; 12b0
 
-Char22:: ; 12b0
+LineBreakChar:: ; 12b0
 	pop hl
 	ld bc, SCREEN_WIDTH
 	add hl, bc
@@ -523,7 +524,7 @@
 ; 131f
 
 
-Char4B:: ; 131f
+_ContText:: ; 131f
 	ld a, [wLinkMode]
 	or a
 	jr nz, .communication
@@ -539,8 +540,9 @@
 	ld a, [wLinkMode]
 	or a
 	call z, UnloadBlinkingCursor
+	; fallthrough
 
-Char4C:: ; 1337
+_ContTextNoPause:: ; 1337
 	push de
 	call TextScroll
 	call TextScroll
@@ -561,7 +563,7 @@
 	pop de
 	jp NextChar
 
-.cont	db $4b, "@"
+.cont: db "<CONT2>@"
 ; 1356
 
 
@@ -596,7 +598,8 @@
 	ld de, .stop
 	dec de
 	ret
-.stop	db "@"
+
+.stop: db "@"
 ; 1383
 
 NullChar:: ; 1383
@@ -688,7 +691,7 @@
 	ld hl, .stop
 	ret
 
-.stop	db "@"
+.stop: db "@"
 ; 13e5
 
 
--- a/macros/scripts/text.asm
+++ b/macros/scripts/text.asm
@@ -1,4 +1,4 @@
-text   EQUS "db \"<START>\"," ; Start writing text.
+text   EQUS "db TX_START,"    ; Start writing text.
 next   EQUS "db \"<NEXT>\","  ; Move a line down.
 line   EQUS "db \"<LINE>\","  ; Start writing at the bottom line.
 page   EQUS "db \"@\","       ; Start a new Pokédex page.
@@ -8,7 +8,12 @@
 prompt EQUS "db \"<PROMPT>\"" ; Prompt the player to end a text box (initiating some other event).
 
 ; TextCommands indexes (see home/text.asm)
-	enum_start $01
+	enum_start
+
+	enum TX_START ; $00
+text_start: MACRO
+	db TX_START
+ENDM
 
 	enum TX_RAM ; $01
 text_from_ram: MACRO
--- a/maps/CeladonDeptStore6F.asm
+++ b/maps/CeladonDeptStore6F.asm
@@ -110,7 +110,7 @@
 
 	para "@"
 	text_from_ram StringBuffer3
-	text ""
+	text_start
 	line "popped out."
 	done
 
--- a/maps/GoldenrodCity.asm
+++ b/maps/GoldenrodCity.asm
@@ -548,7 +548,7 @@
 	done
 
 UnknownText_0x1991cf:
-	text ""
+	text_start
 	done
 
 GoldenrodCity_MapEvents:
--- a/maps/GoldenrodDeptStore6F.asm
+++ b/maps/GoldenrodDeptStore6F.asm
@@ -103,7 +103,7 @@
 	text "Clang! A can of"
 	line "@"
 	text_from_ram StringBuffer3
-	text ""
+	text_start
 	cont "popped out!"
 	done
 
--- a/maps/Pokecenter2F.asm
+++ b/maps/Pokecenter2F.asm
@@ -915,7 +915,7 @@
 Text_RejectNewMon:
 	text "Sorry--@"
 	text_from_ram StringBuffer1
-	text ""
+	text_start
 	line "can't be taken."
 	prompt
 
--- a/maps/Route35NationalParkGate.asm
+++ b/maps/Route35NationalParkGate.asm
@@ -374,7 +374,7 @@
 UnknownText_0x6a79a:
 	text "You still have @"
 	text_from_ram StringBuffer3
-	text ""
+	text_start
 	line "minute(s) left."
 
 	para "Do you want to"
--- a/maps/Route36NationalParkGate.asm
+++ b/maps/Route36NationalParkGate.asm
@@ -624,7 +624,7 @@
 UnknownText_0x6b284:
 	text "You still have @"
 	text_from_ram StringBuffer3
-	text ""
+	text_start
 	line "minute(s) left."
 
 	para "Do you want to"