shithub: pokecrystal

Download patch

ref: cbf4c663611d4b7d07f3fc8d43f0be756ccc19ed
parent: c05a2d255befc2d3b7fdf3c5375fa9a015c13632
parent: 3202c4f3dfeac64d815e3b5ee3ee8e891c2b1ba2
author: Rangi <35663410+Rangi42@users.noreply.github.com>
date: Sun Nov 18 07:44:39 EST 2018

Merge pull request #577 from Rangi42/master

Resolve issue #575: Rename text commands

--- a/data/phone/text/bill.asm
+++ b/data/phone/text/bill.asm
@@ -44,7 +44,7 @@
 
 	para "<PLAY_G>, your BOX"
 	line "has room for @"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text_start
 	cont "more #MON."
 
@@ -59,7 +59,7 @@
 	para "<PLAY_G>, your BOX"
 	line "has room for only"
 	cont "@"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text " more #MON."
 
 	para "Maybe you should"
--- a/data/phone/text/extra.asm
+++ b/data/phone/text/extra.asm
@@ -292,7 +292,7 @@
 ArnieLovesTheCuteText:
 	text "I'm always with my"
 	line "@"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text "!"
 
 	para "It's so cute!"
@@ -304,7 +304,7 @@
 	line "here, I saw this"
 
 	para "@"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text " for the"
 	line "first time."
 
@@ -316,7 +316,7 @@
 	text "I was wondering,"
 	line "do you happen to"
 	cont "have @"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text "?"
 
 	para "I can't seem to"
@@ -338,7 +338,7 @@
 
 	para "I'll be here on"
 	line "@"
-	text_from_ram wStringBuffer5
+	text_ram wStringBuffer5
 	text "!"
 	done
 
@@ -353,12 +353,12 @@
 
 	para "A whole bunch of"
 	line "@"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text " have"
 
 	para "appeared around"
 	line "@"
-	text_from_ram wStringBuffer5
+	text_ram wStringBuffer5
 	text "!"
 
 	para "You have to see"
@@ -381,7 +381,7 @@
 	para "Let's battle. I'll"
 	line "be waiting for you"
 	cont "on @"
-	text_from_ram wStringBuffer5
+	text_ram wStringBuffer5
 	text "!"
 	done
 
@@ -398,7 +398,7 @@
 
 AlanGettingStrongerText:
 	text "My @"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text "'s"
 	line "getting stronger,"
 
@@ -411,7 +411,7 @@
 	line "knocked out a wild"
 
 	para "@"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text " just"
 	line "the other day."
 
@@ -422,7 +422,7 @@
 UnknownText_0x64d4f:
 	text "By the way, a wild"
 	line "@"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text " escaped"
 	cont "on me yesterday."
 
@@ -439,7 +439,7 @@
 
 	para "I'm hanging out on"
 	line "@"
-	text_from_ram wStringBuffer5
+	text_ram wStringBuffer5
 	text "."
 
 	para "Can you come down"
@@ -458,7 +458,7 @@
 	line "Why don't you come"
 
 	para "to @"
-	text_from_ram wStringBuffer5
+	text_ram wStringBuffer5
 	text_start
 	line "and pick it up?"
 	done
@@ -478,7 +478,7 @@
 
 	para "I'm waiting on"
 	line "@"
-	text_from_ram wStringBuffer5
+	text_ram wStringBuffer5
 	text "!"
 	done
 
@@ -491,13 +491,13 @@
 
 	para "I'm waiting on"
 	line "@"
-	text_from_ram wStringBuffer5
+	text_ram wStringBuffer5
 	text "!"
 	done
 
 UnknownText_0x64f74:
 	text "My @"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text " is"
 	line "getting prettier!"
 
@@ -509,7 +509,7 @@
 	text "It took only an"
 	line "instant to KO a"
 	cont "wild @"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text "."
 
 	para "It must be because"
@@ -522,7 +522,7 @@
 UnknownText_0x6501c:
 	text "You know what?"
 	line "A wild @"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text_start
 	para "got away from me"
 	line "again."
@@ -537,7 +537,7 @@
 UnknownText_0x65091:
 	text "Right now, I'm on"
 	line "@"
-	text_from_ram wStringBuffer5
+	text_ram wStringBuffer5
 	text "."
 
 	para "If you're close"
@@ -563,7 +563,7 @@
 
 	para "it! I'm waiting on"
 	line "@"
-	text_from_ram wStringBuffer5
+	text_ram wStringBuffer5
 	text "!"
 	done
 
@@ -587,7 +587,7 @@
 
 	para "I'm waiting on"
 	line "@"
-	text_from_ram wStringBuffer5
+	text_ram wStringBuffer5
 	text "!"
 	done
 
@@ -602,7 +602,7 @@
 
 	para "I'm waiting on"
 	line "@"
-	text_from_ram wStringBuffer5
+	text_ram wStringBuffer5
 	text "!"
 	done
 
@@ -610,7 +610,7 @@
 	text "I recently began"
 	line "observing wild"
 	cont "@"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text "."
 
 	para "I've been learning"
@@ -631,7 +631,7 @@
 	line "to knock out a"
 
 	para "wild @"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text " a"
 	line "while back."
 
@@ -647,7 +647,7 @@
 	line "close to catching"
 
 	para "a wild @"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text ","
 	line "but it got away."
 
@@ -656,7 +656,7 @@
 
 	para "wanting to observe"
 	line "@"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text ". Rats…"
 	done
 
@@ -669,7 +669,7 @@
 
 	para "I'll be on"
 	line "@"
-	text_from_ram wStringBuffer5
+	text_ram wStringBuffer5
 	text "!"
 	done
 
@@ -845,7 +845,7 @@
 
 	para "The place is"
 	line "@"
-	text_from_ram wStringBuffer5
+	text_ram wStringBuffer5
 	text "."
 
 	para "Hurry over--I'm"
@@ -855,7 +855,7 @@
 DerekCheekPincherText:
 	text "Listen to this."
 	line "My @"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text_start
 	para "grins happily when"
 	line "I pinch its cheek."
@@ -870,11 +870,11 @@
 	text "Oh, and recently,"
 	line "my PIKACHU beat a"
 	cont "wild @"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text "!"
 
 	para "A wild @"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text ","
 	line "I tell you!"
 
@@ -891,7 +891,7 @@
 UnknownText_0x65bc8:
 	text "Oh, and I saw a"
 	line "wild @"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text " a"
 	cont "little while ago."
 
@@ -951,7 +951,7 @@
 
 	para "I'm waiting on"
 	line "@"
-	text_from_ram wStringBuffer5
+	text_ram wStringBuffer5
 	text "."
 
 	para "Come pick this up"
@@ -960,7 +960,7 @@
 
 TullyGrownText:
 	text "My @"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text " has"
 	line "grown again."
 
@@ -974,7 +974,7 @@
 UnknownText_0x65e42:
 	text "Oh yeah, I KO'd a"
 	line "wild @"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text "."
 
 	para "It was huge, like"
@@ -988,7 +988,7 @@
 UnknownText_0x65eac:
 	text "Oh yeah, I lost a"
 	line "wild @"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text "."
 
 	para "It was huge, like"
@@ -1005,7 +1005,7 @@
 
 	para "I'll be fishing on"
 	line "@"
-	text_from_ram wStringBuffer5
+	text_ram wStringBuffer5
 	text "."
 
 	para "Swing by if you"
@@ -1027,7 +1027,7 @@
 
 	para "I'll be waiting on"
 	line "@"
-	text_from_ram wStringBuffer5
+	text_ram wStringBuffer5
 	text "."
 	done
 
@@ -1049,7 +1049,7 @@
 
 	para "Our battle will be"
 	line "on @"
-	text_from_ram wStringBuffer5
+	text_ram wStringBuffer5
 	text "."
 	done
 
@@ -1059,7 +1059,7 @@
 
 	para "Hustle over to"
 	line "@"
-	text_from_ram wStringBuffer5
+	text_ram wStringBuffer5
 	text "."
 	done
 
@@ -1082,7 +1082,7 @@
 	line "down this wild"
 
 	para "@"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text "."
 	line "It wasn't rare"
 
@@ -1120,7 +1120,7 @@
 
 	para "You know where--"
 	line "@"
-	text_from_ram wStringBuffer5
+	text_ram wStringBuffer5
 	text "."
 	done
 
@@ -1223,13 +1223,13 @@
 
 	para "Hurry over to"
 	line "@"
-	text_from_ram wStringBuffer5
+	text_ram wStringBuffer5
 	text "."
 	done
 
 UnknownText_0x665ad:
 	text "My @"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text "'s"
 	line "adorable, don't"
 
@@ -1245,7 +1245,7 @@
 	line "battle a wild"
 
 	para "@"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text " a while"
 	line "ago…"
 
@@ -1256,7 +1256,7 @@
 
 	para "I hate those nasty"
 	line "@"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text "!"
 	done
 
@@ -1265,7 +1265,7 @@
 	line "battle a wild"
 
 	para "@"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text " a while"
 	line "ago…"
 
@@ -1290,12 +1290,12 @@
 	para "I'll be waiting"
 	line "with CLEFAIRY on"
 	cont "@"
-	text_from_ram wStringBuffer5
+	text_ram wStringBuffer5
 	text "."
 	done
 
 TiffanyItsAwfulText:
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text "!"
 
 	para "It's awful."
@@ -1326,7 +1326,7 @@
 
 	para "Come collect it on"
 	line "@"
-	text_from_ram wStringBuffer5
+	text_ram wStringBuffer5
 	text "."
 	done
 
@@ -1347,7 +1347,7 @@
 
 	para "Please hurry to"
 	line "@"
-	text_from_ram wStringBuffer5
+	text_ram wStringBuffer5
 	text "!"
 	done
 
@@ -1361,13 +1361,13 @@
 
 	para "Please hurry to"
 	line "@"
-	text_from_ram wStringBuffer5
+	text_ram wStringBuffer5
 	text "!"
 	done
 
 VanceLiftoffText:
 	text "My @"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text "'s"
 	line "become tougher."
 
@@ -1378,7 +1378,7 @@
 UnknownText_0x669b2:
 	text "We can easily beat"
 	line "@"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text "!"
 
 	para "…Huh? You too?"
@@ -1388,7 +1388,7 @@
 UnknownText_0x669ed:
 	text "But get this, a"
 	line "wild @"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text_start
 	para "just barely eluded"
 	line "us."
@@ -1400,7 +1400,7 @@
 UnknownText_0x66a3a:
 	text "Right now, I'm on"
 	line "@"
-	text_from_ram wStringBuffer5
+	text_ram wStringBuffer5
 	text "."
 
 	para "You know, where I"
@@ -1425,7 +1425,7 @@
 	line "Hurry, hurry!"
 
 	para "@"
-	text_from_ram wStringBuffer5
+	text_ram wStringBuffer5
 	text "!"
 	line "FLY over now!"
 	done
@@ -1432,7 +1432,7 @@
 
 WiltonGrownText:
 	text "My @"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text "'s"
 	line "grown impressive!"
 
@@ -1443,7 +1443,7 @@
 UnknownText_0x66b3e:
 	text "We beat a wild"
 	line "@"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text "…"
 
 	para "You know, I have"
@@ -1459,7 +1459,7 @@
 
 	para "to landing a wild"
 	line "@"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text "."
 
 	para "I tell you, it was"
@@ -1469,7 +1469,7 @@
 UnknownText_0x66bf3:
 	text "I'm fishing on"
 	line "@"
-	text_from_ram wStringBuffer5
+	text_ram wStringBuffer5
 	text ","
 
 	para "but nothing's"
@@ -1490,7 +1490,7 @@
 
 	para "Come pick it up on"
 	line "@"
-	text_from_ram wStringBuffer5
+	text_ram wStringBuffer5
 	text "."
 	done
 
@@ -1511,7 +1511,7 @@
 
 	para "like before on"
 	line "@"
-	text_from_ram wStringBuffer5
+	text_ram wStringBuffer5
 	text "…"
 
 	para "You have to come"
@@ -1526,7 +1526,7 @@
 	line "know where?"
 
 	para "@"
-	text_from_ram wStringBuffer5
+	text_ram wStringBuffer5
 	text "…"
 	line "Just head from"
 
@@ -1601,7 +1601,7 @@
 ParryNoMatchText:
 	text "Nothing can match"
 	line "my @"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text " now."
 	done
 
@@ -1608,7 +1608,7 @@
 UnknownText_0x66fc0:
 	text "Yeah, we KO'd a"
 	line "wild @"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text "!"
 
 	para "That was OK, but I"
@@ -1620,7 +1620,7 @@
 	line "spotted a wild"
 
 	para "@"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text "."
 	line "We were debating"
 
@@ -1643,7 +1643,7 @@
 
 	para "Yep! We'll meet on"
 	line "@"
-	text_from_ram wStringBuffer5
+	text_ram wStringBuffer5
 	text "!"
 	done
 
@@ -1660,7 +1660,7 @@
 ParryHaventYouGottenToText:
 	text "Haven't you gotten"
 	line "to @"
-	text_from_ram wStringBuffer5
+	text_ram wStringBuffer5
 	text "?"
 
 	para "Waiting here isn't"
@@ -1669,9 +1669,9 @@
 	done
 
 UnknownText_0x6717a:
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "'s @"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text_start
 	line "is much stronger"
 	cont "than before!"
@@ -1681,7 +1681,7 @@
 	text "And, and…"
 	line "I just battled and"
 	cont "beat @"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text "!"
 
 	para "I've raised my"
@@ -1692,7 +1692,7 @@
 	text "But, but…"
 
 	para "A wild @"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text_start
 	line "got away from me"
 
@@ -1709,7 +1709,7 @@
 
 	para "I'll be waiting on"
 	line "@"
-	text_from_ram wStringBuffer5
+	text_ram wStringBuffer5
 	text "!"
 	done
 
@@ -1732,6 +1732,6 @@
 
 	para "I'll be waiting on"
 	line "@"
-	text_from_ram wStringBuffer5
+	text_ram wStringBuffer5
 	text "!"
 	done
--- a/data/phone/text/extra2.asm
+++ b/data/phone/text/extra2.asm
@@ -20,7 +20,7 @@
 
 JackIntelligenceText:
 	text "My @"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text "'s"
 	line "intelligence keeps"
 
@@ -33,7 +33,7 @@
 	text "The other day, I"
 	line "easily defeated a"
 	cont "@"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text "."
 
 	para "I think swapping"
@@ -46,7 +46,7 @@
 	line "I missed catching"
 
 	para "a @"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text " by"
 	line "just a tiny bit."
 
@@ -66,7 +66,7 @@
 
 	para "I'll be in"
 	line "@"
-	text_from_ram wStringBuffer5
+	text_ram wStringBuffer5
 	text "."
 
 	para "Give me a shout if"
@@ -208,7 +208,7 @@
 
 	para "I'll be at"
 	line "@"
-	text_from_ram wStringBuffer5
+	text_ram wStringBuffer5
 	text "."
 	done
 
@@ -215,7 +215,7 @@
 UnknownText_0x174688:
 	text "I fancied up my"
 	line "@"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text " and"
 
 	para "made it even cuter"
@@ -245,7 +245,7 @@
 	line "showed it was"
 
 	para "@"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text ". I was"
 	line "quite miffed."
 	done
@@ -267,7 +267,7 @@
 
 	para "I'll be at"
 	line "@"
-	text_from_ram wStringBuffer5
+	text_ram wStringBuffer5
 	text "."
 
 	para "Please come see me"
@@ -290,7 +290,7 @@
 	line "hurry. Come see me"
 
 	para "in @"
-	text_from_ram wStringBuffer5
+	text_ram wStringBuffer5
 	text_start
 	line "when you can."
 	done
@@ -303,7 +303,7 @@
 	line "last time!"
 
 	para "@"
-	text_from_ram wStringBuffer5
+	text_ram wStringBuffer5
 	text "'s"
 	line "where I'm waiting"
 
@@ -332,7 +332,7 @@
 	cont "about our battle!"
 
 	para "@"
-	text_from_ram wStringBuffer5
+	text_ram wStringBuffer5
 	text "!"
 
 	para "Hustle over quick!"
@@ -341,7 +341,7 @@
 
 GavenGreaterText:
 	text "My @"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text_start
 	line "might be greater"
 	cont "than I imagined."
@@ -348,7 +348,7 @@
 
 	para "I doubt I'll see a"
 	line "@"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text " that's"
 	cont "better than mine."
 	done
@@ -358,13 +358,13 @@
 	line "to barely defeat"
 
 	para "@"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text " the"
 	line "other day."
 
 	para "I've never seen a"
 	line "@"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text " get"
 	cont "that strong…"
 
@@ -380,7 +380,7 @@
 	text "And a while back,"
 	line "I tried to catch a"
 	cont "wild @"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text "."
 
 	para "But it managed to"
@@ -398,7 +398,7 @@
 
 	para "I'll be waiting on"
 	line "@"
-	text_from_ram wStringBuffer5
+	text_ram wStringBuffer5
 	text "."
 
 	para "Give me a shout"
@@ -421,7 +421,7 @@
 
 	para "I'll take you down"
 	line "with @"
-	text_from_ram wStringBuffer5
+	text_ram wStringBuffer5
 	text "!"
 	done
 
@@ -428,11 +428,11 @@
 UnknownText_0x174c7f:
 	text "Do you remember my"
 	line "sweet @"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text "?"
 
 	para "@"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text " runs"
 	line "very fast."
 
@@ -446,7 +446,7 @@
 UnknownText_0x174cf6:
 	text "Oh, have you ever"
 	line "seen a @"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text_start
 	cont "before?"
 
@@ -466,7 +466,7 @@
 UnknownText_0x174d86:
 	text "Oh, I just saw a"
 	line "wild @"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text "."
 
 	para "I was trying to"
@@ -495,7 +495,7 @@
 	line "for you around"
 
 	para "@"
-	text_from_ram wStringBuffer5
+	text_ram wStringBuffer5
 	text "."
 	line "Look for me, OK?"
 	done
@@ -517,7 +517,7 @@
 	line "deal?"
 
 	para "@"
-	text_from_ram wStringBuffer5
+	text_ram wStringBuffer5
 	text "."
 
 	para "That's where I'm"
@@ -527,7 +527,7 @@
 JoseAromaText:
 	text "Hey listen, my"
 	line "@"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text "'s stick"
 
 	para "has this really"
@@ -541,7 +541,7 @@
 	text "A while ago, my"
 	line "FARFETCH'D KO'd"
 	cont "this @"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text "."
 
 	para "You should have"
@@ -554,7 +554,7 @@
 UnknownText_0x174ffd:
 	text "I ran into a wild"
 	line "@"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text "…"
 
 	para "I was trying to"
@@ -578,7 +578,7 @@
 	line "raring to go."
 
 	para "@"
-	text_from_ram wStringBuffer5
+	text_ram wStringBuffer5
 	text "'s"
 	line "where I'm at."
 
@@ -600,7 +600,7 @@
 
 	para "Catch up to me on"
 	line "@"
-	text_from_ram wStringBuffer5
+	text_ram wStringBuffer5
 	text ","
 
 	para "and I'll let you"
@@ -633,7 +633,7 @@
 	line "stick!"
 
 	para "@"
-	text_from_ram wStringBuffer5
+	text_ram wStringBuffer5
 	text "!"
 
 	para "Please come as"
@@ -648,7 +648,7 @@
 
 	para "Catch up to me on"
 	line "@"
-	text_from_ram wStringBuffer5
+	text_ram wStringBuffer5
 	text ","
 
 	para "and I'll let you"
@@ -660,12 +660,12 @@
 
 	para "Do you recall my"
 	line "@"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text "?"
 
 	para "Yes, exactly. That"
 	line "lovely @"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text "."
 
 	para "Wouldn't you agree"
@@ -676,13 +676,13 @@
 UnknownText_0x17536b:
 	text "Have I ever faced"
 	line "a wild @"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text "?"
 
 	para "You need to ask?"
 
 	para "@"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text " I've"
 	line "beaten on numerous"
 	cont "occasions!"
@@ -699,7 +699,7 @@
 	line "to catch a wild"
 
 	para "@"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text "…"
 	line "Oh! Never mind!"
 	done
@@ -710,7 +710,7 @@
 
 	para "The place shall be"
 	line "@"
-	text_from_ram wStringBuffer5
+	text_ram wStringBuffer5
 	text "!"
 
 	para "Don't make me"
@@ -739,7 +739,7 @@
 	line "the place was"
 
 	para "@"
-	text_from_ram wStringBuffer5
+	text_ram wStringBuffer5
 	text "!"
 	line "Don't try to run!"
 	done
@@ -746,7 +746,7 @@
 
 JoeySharperText:
 	text "My @"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text "'s"
 	line "looking sharper"
 	cont "than before!"
@@ -761,7 +761,7 @@
 UnknownText_0x175591:
 	text "Oh yeah, I took"
 	line "down a @"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text_start
 	para "in the wild the"
 	line "other day."
@@ -776,7 +776,7 @@
 UnknownText_0x175611:
 	text "Oh yeah, I saw a"
 	line "wild @"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text "!"
 
 	para "I thought about"
@@ -797,7 +797,7 @@
 	line "will be different!"
 
 	para "@"
-	text_from_ram wStringBuffer5
+	text_ram wStringBuffer5
 	text "'s"
 	line "where I'll be."
 
@@ -812,7 +812,7 @@
 UnknownText_0x17571d:
 	text "I'm checking out"
 	line "@"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text "'s moves"
 
 	para "and devising some"
@@ -832,7 +832,7 @@
 
 	para "I'm waiting on"
 	line "@"
-	text_from_ram wStringBuffer5
+	text_ram wStringBuffer5
 	text "!"
 	done
 
@@ -847,7 +847,7 @@
 	line "It's overwhelming!"
 
 	para "@"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text "'s grow-"
 	line "ing especially"
 
@@ -858,7 +858,7 @@
 UnknownText_0x175869:
 	text "Oh yeah, we KO'd a"
 	line "wild @"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text_start
 	para "with one hit a"
 	line "while back."
@@ -873,7 +873,7 @@
 UnknownText_0x1758e4:
 	text "Oh yeah, a wild"
 	line "@"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text " got"
 
 	para "away from me at"
@@ -897,7 +897,7 @@
 	line "last time!"
 
 	para "@"
-	text_from_ram wStringBuffer5
+	text_ram wStringBuffer5
 	text "'s"
 	line "where I'll be."
 
@@ -932,7 +932,7 @@
 
 	para "I'll be waiting on"
 	line "@"
-	text_from_ram wStringBuffer5
+	text_ram wStringBuffer5
 	text "."
 	done
 
@@ -952,7 +952,7 @@
 	line "already!"
 
 	para "@"
-	text_from_ram wStringBuffer5
+	text_ram wStringBuffer5
 	text " is"
 	line "where I am."
 
@@ -965,7 +965,7 @@
 	line "not here yet?"
 
 	para "@"
-	text_from_ram wStringBuffer5
+	text_ram wStringBuffer5
 	text " is"
 	line "where I am."
 
@@ -978,7 +978,7 @@
 	line "more time with my"
 
 	para "@"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text " than I"
 	line "have with my kids."
 
@@ -989,7 +989,7 @@
 UnknownText_0x175c24:
 	text "I just beat a wild"
 	line "@"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text "."
 
 	para "I told my kid, but"
@@ -1005,7 +1005,7 @@
 UnknownText_0x175c9f:
 	text "Yesterday a wild"
 	line "@"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text " slipped"
 
 	para "away from me, in"
@@ -1032,7 +1032,7 @@
 	line "quite agreeable."
 
 	para "@"
-	text_from_ram wStringBuffer5
+	text_ram wStringBuffer5
 	text " is"
 	line "the spot!"
 	done
@@ -1047,7 +1047,7 @@
 
 	para "Uh, sorry! See,"
 	line "@"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text " are"
 
 	para "biting like there"
@@ -1055,7 +1055,7 @@
 
 	para "over here on"
 	line "@"
-	text_from_ram wStringBuffer5
+	text_ram wStringBuffer5
 	text "!"
 
 	para "Aiyee! Ouch!"
@@ -1088,7 +1088,7 @@
 
 	para "you to show up on"
 	line "@"
-	text_from_ram wStringBuffer5
+	text_ram wStringBuffer5
 	text "."
 
 	para "You shouldn't make"
@@ -1112,7 +1112,7 @@
 	line "hear this."
 
 	para "My @"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text " is"
 	line "so adorable!"
 
@@ -1125,7 +1125,7 @@
 
 	para "We beat a wild"
 	line "@"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text " with"
 
 	para "just one hit a"
@@ -1141,7 +1141,7 @@
 	para "We just saw a"
 	line "really gorgeous"
 	cont "@"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text "."
 
 	para "But I was on the"
@@ -1163,7 +1163,7 @@
 
 	para "I'll be waiting on"
 	line "@"
-	text_from_ram wStringBuffer5
+	text_ram wStringBuffer5
 	text "."
 
 	para "Let me know when"
@@ -1350,13 +1350,13 @@
 
 	para "I saw a beautiful"
 	line "@"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text "!"
 
 	para "I wish I could"
 	line "become a beautiful"
 	cont "@"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text " too."
 	done
 
@@ -1373,7 +1373,7 @@
 	text "Listen, listen!"
 
 	para "My @"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text "…"
 	line "it… so pretty…"
 
@@ -1412,7 +1412,7 @@
 
 	para "I'll be waiting on"
 	line "@"
-	text_from_ram wStringBuffer5
+	text_ram wStringBuffer5
 	text "!"
 	done
 
@@ -1421,7 +1421,7 @@
 	line "was watching my"
 
 	para "@"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text " eat"
 	line "some BERRIES."
 
@@ -1443,7 +1443,7 @@
 	line "running across"
 
 	para "wild @"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text_start
 	line "quite often."
 
@@ -1456,7 +1456,7 @@
 	line "battling this"
 
 	para "@"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text " the"
 	line "other day…"
 
@@ -1476,7 +1476,7 @@
 	line "battle right now!"
 
 	para "@"
-	text_from_ram wStringBuffer5
+	text_ram wStringBuffer5
 	text " is"
 	line "where I am."
 
@@ -1495,13 +1495,13 @@
 
 	para "I took a hike in"
 	line "@"
-	text_from_ram wStringBuffer5
+	text_ram wStringBuffer5
 	text_start
 	cont "yesterday, see?"
 
 	para "Well, there were"
 	line "tons of @"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text_start
 	para "around! You have"
 	line "to see it!"
@@ -1508,7 +1508,7 @@
 
 	para "I get this feeling"
 	line "that @"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text_start
 	para "may be timid."
 	line "I didn't see any"
@@ -1535,7 +1535,7 @@
 	line "you?"
 
 	para "@"
-	text_from_ram wStringBuffer5
+	text_ram wStringBuffer5
 	text "!"
 	line "I'm waiting!"
 	done
@@ -1558,7 +1558,7 @@
 
 ToddLooksCuteLikeMeText:
 	text "My @"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text " is"
 	line "looking more and"
 
@@ -1571,7 +1571,7 @@
 
 	para "Now we can KO"
 	line "@"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text " easily."
 
 	para "I should challenge"
@@ -1583,7 +1583,7 @@
 	line "We just failed to"
 
 	para "beat @"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text " by"
 	line "a tiny margin."
 
@@ -1606,7 +1606,7 @@
 
 	para "I'll be waiting on"
 	line "@"
-	text_from_ram wStringBuffer5
+	text_ram wStringBuffer5
 	text "."
 	done
 
@@ -1656,7 +1656,7 @@
 
 	para "I'll be waiting on"
 	line "@"
-	text_from_ram wStringBuffer5
+	text_ram wStringBuffer5
 	text "."
 	done
 
@@ -1676,7 +1676,7 @@
 
 UnknownText_0x1771fd:
 	text "My @"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text " and"
 	line "I are getting more"
 
@@ -1687,7 +1687,7 @@
 UnknownText_0x177237:
 	text "We battled a wild"
 	line "@"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text " and"
 
 	para "managed to drop it"
@@ -1702,7 +1702,7 @@
 
 	para "I still haven't"
 	line "caught @"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text "."
 
 	para "It's getting past"
@@ -1716,7 +1716,7 @@
 
 	para "I'll be waiting on"
 	line "@"
-	text_from_ram wStringBuffer5
+	text_ram wStringBuffer5
 	text "."
 
 	para "…Could you take it"
@@ -1752,7 +1752,7 @@
 	line "it, won't you?"
 
 	para "@"
-	text_from_ram wStringBuffer5
+	text_ram wStringBuffer5
 	text " is"
 	line "where I am."
 	done
@@ -1777,7 +1777,7 @@
 
 	para "Don't forget,"
 	line "@"
-	text_from_ram wStringBuffer5
+	text_ram wStringBuffer5
 	text "!"
 	done
 
@@ -1790,6 +1790,6 @@
 
 	para "Hurry over to"
 	line "@"
-	text_from_ram wStringBuffer5
+	text_ram wStringBuffer5
 	text "!"
 	done
--- a/data/phone/text/gaven_overworld.asm
+++ b/data/phone/text/gaven_overworld.asm
@@ -12,7 +12,7 @@
 	line "again when I heal"
 
 	para "@"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text " and the"
 	line "rest of my team."
 	done
@@ -25,7 +25,7 @@
 	line "again when I heal"
 
 	para "@"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text " and the"
 	line "rest of my team."
 	done
--- a/data/phone/text/jose_overworld.asm
+++ b/data/phone/text/jose_overworld.asm
@@ -1,6 +1,6 @@
 JoseAskNumber1Text:
 	text "If my @"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text_start
 	line "sees anything"
 
--- a/data/phone/text/mom.asm
+++ b/data/phone/text/mom.asm
@@ -8,12 +8,12 @@
 MomPhoneLandmarkText:
 	text "Oh, so you're in"
 	line "@"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "…"
 
 	para "Isn't that where"
 	line "@"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text_start
 	para "is? Did you go"
 	line "take a look?"
@@ -22,7 +22,7 @@
 MomPhoneGenericAreaText:
 	text "Really, you're in"
 	line "@"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "?"
 
 	para "I've never gone"
@@ -33,7 +33,7 @@
 MomPhoneNewBarkText:
 	text "What? You're in"
 	line "@"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "?"
 
 	para "Come see your MOM"
@@ -43,7 +43,7 @@
 MomPhoneCherrygroveText:
 	text "You're visiting"
 	line "@"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "?"
 
 	para "How about coming"
@@ -53,7 +53,7 @@
 MomOtherAreaText:
 	text "Wow, you're in"
 	line "@"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "?"
 
 	para "Good luck on your"
@@ -74,7 +74,7 @@
 MomCheckBalanceText:
 	text "By the way, you've"
 	line "saved up ¥@"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "."
 
 	para "Do you want to"
@@ -97,7 +97,7 @@
 MomYouveSavedText:
 	text "By the way, you've"
 	line "saved up ¥@"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "."
 
 	para "Want to start"
--- a/data/phone/text/trainers.asm
+++ b/data/phone/text/trainers.asm
@@ -1,7 +1,7 @@
 UnknownText_0x1b4dc5:
 	text "Hello. This is"
 	line "@"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "…"
 
 	para "Good morning,"
@@ -11,7 +11,7 @@
 UnknownText_0x1b4ded:
 	text "Hello. This is"
 	line "@"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "…"
 
 	para "How's it going,"
@@ -21,7 +21,7 @@
 UnknownText_0x1b4e16:
 	text "Hello. This is"
 	line "@"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "…"
 
 	para "Good evening,"
@@ -33,7 +33,7 @@
 	line "morning!"
 
 	para "It's me, @"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "."
 	line "How are you doing?"
 	done
@@ -42,7 +42,7 @@
 	text "<PLAY_G>, howdy!"
 
 	para "It's me, @"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "."
 	line "Isn't it nice out?"
 	done
@@ -52,7 +52,7 @@
 	line "evening!"
 
 	para "It's me, @"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "."
 	line "Got a minute?"
 	done
@@ -62,7 +62,7 @@
 	line "#MON doing?"
 
 	para "My @"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text " is"
 	line "so curious, it's a"
 
@@ -73,7 +73,7 @@
 UnknownText_0x1b4f21:
 	text "Hello, this is"
 	line "@"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "."
 
 	para "Oh! Good morning,"
@@ -83,7 +83,7 @@
 UnknownText_0x1b4f4d:
 	text "Hello, this is"
 	line "@"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "."
 
 	para "Oh! Good day,"
@@ -93,7 +93,7 @@
 UnknownText_0x1b4f75:
 	text "Hello, this is"
 	line "@"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "."
 
 	para "Oh! Good evening,"
@@ -105,7 +105,7 @@
 	line "Good morning."
 
 	para "This is @"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "."
 	line "Were you asleep?"
 	done
@@ -113,7 +113,7 @@
 UnknownText_0x1b4fda:
 	text "Hi, <PLAYER>."
 	line "This is @"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "."
 
 	para "How are you doing?"
@@ -122,7 +122,7 @@
 UnknownText_0x1b5004:
 	text "Hi, <PLAYER>."
 	line "This is @"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "."
 
 	para "Were you awake?"
@@ -133,7 +133,7 @@
 	line "#MON happy?"
 
 	para "My @"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text " is"
 	line "healthy. It eats a"
 	cont "lot every day."
@@ -142,7 +142,7 @@
 UnknownText_0x1b5073:
 	text "Yeah, this is"
 	line "@"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "."
 
 	para "Huh? What's up,"
@@ -152,7 +152,7 @@
 UnknownText_0x1b509b:
 	text "Yeah, this is"
 	line "@"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "."
 
 	para "Huh? What's up"
@@ -162,7 +162,7 @@
 UnknownText_0x1b50c2:
 	text "Yeah, this is"
 	line "@"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "."
 
 	para "Huh? What's up"
@@ -174,7 +174,7 @@
 	line "You awake?"
 
 	para "It's me, @"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "!"
 	line "How's it going?"
 	done
@@ -184,7 +184,7 @@
 	line "free right now?"
 
 	para "It's me, @"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "!"
 	line "How's it going?"
 	done
@@ -194,7 +194,7 @@
 	line "Were you asleep?"
 
 	para "It's me, @"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "!"
 	line "How's it going?"
 	done
@@ -207,7 +207,7 @@
 	line "bit too energetic."
 
 	para "@"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text ","
 	line "especially."
 
@@ -221,7 +221,7 @@
 
 UnknownText_0x1b522b:
 	text "My @"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text "'s"
 	line "looking tougher"
 	cont "than ever."
@@ -233,7 +233,7 @@
 UnknownText_0x1b5270:
 	text "Hello, this is"
 	line "@"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text " speaking…"
 
 	para "Hi, <PLAY_G>!"
@@ -243,7 +243,7 @@
 UnknownText_0x1b52a5:
 	text "Hello, this is"
 	line "@"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text " speaking…"
 
 	para "Hi, <PLAY_G>!"
@@ -252,7 +252,7 @@
 UnknownText_0x1b52cc:
 	text "Hello, this is"
 	line "@"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text " speaking…"
 
 	para "Hi, <PLAY_G>!"
@@ -264,7 +264,7 @@
 	line "morning!"
 
 	para "It's me, @"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "."
 	line "How are you doing?"
 	done
@@ -273,7 +273,7 @@
 	text "Hi, <PLAY_G>!"
 
 	para "It's me, @"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "."
 	line "How are you doing?"
 	done
@@ -283,7 +283,7 @@
 	line "evening!"
 
 	para "It's me, @"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "."
 	line "How are you doing?"
 	done
@@ -293,7 +293,7 @@
 	line "#MON doing?"
 
 	para "My @"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text "'s"
 	line "doing as great as"
 	cont "ever."
@@ -306,7 +306,7 @@
 UnknownText_0x1b53f7:
 	text "Hello, this is"
 	line "@"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "."
 
 	para "Oh, <PLAY_G>."
@@ -318,7 +318,7 @@
 UnknownText_0x1b5424:
 	text "Hello, this is"
 	line "@"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "."
 
 	para "Oh. Hi, <PLAY_G>."
@@ -327,7 +327,7 @@
 UnknownText_0x1b5446:
 	text "Hello, this is"
 	line "@"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "."
 
 	para "Oh, <PLAY_G>."
@@ -339,7 +339,7 @@
 	line "<PLAY_G>!"
 
 	para "This is @"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "."
 	line "Were you sleeping?"
 	done
@@ -347,7 +347,7 @@
 UnknownText_0x1b54a6:
 	text "<PLAY_G>, hi!"
 	line "This is @"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "."
 
 	para "Do you have some"
@@ -359,7 +359,7 @@
 	line "Good evening."
 
 	para "This is @"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "."
 
 	para "I hope you were"
@@ -386,7 +386,7 @@
 UnknownText_0x1b55ae:
 	text "Hello, this is"
 	line "@"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "…"
 
 	para "Oh, <PLAY_G>?"
@@ -396,7 +396,7 @@
 UnknownText_0x1b55da:
 	text "Hello, this is"
 	line "@"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "…"
 
 	para "Oh, <PLAY_G>? Hi!"
@@ -405,7 +405,7 @@
 UnknownText_0x1b55fc:
 	text "Hello, this is"
 	line "@"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "…"
 
 	para "Oh, <PLAY_G>?"
@@ -417,7 +417,7 @@
 
 	para "Tweet! Yeah, it's"
 	line "me, @"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "."
 	done
 
@@ -426,7 +426,7 @@
 
 	para "Tweet! Yeah, it's"
 	line "me, @"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "."
 	done
 
@@ -435,7 +435,7 @@
 
 	para "Tweet! Yeah, it's"
 	line "me, @"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "."
 	done
 
@@ -444,7 +444,7 @@
 	line "still cooking?"
 
 	para "My @"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text " has"
 	line "too much energy."
 
@@ -456,7 +456,7 @@
 UnknownText_0x1b5702:
 	text "Hello, this is"
 	line "@"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "…"
 
 	para "Oh. Hi, <PLAYER>."
@@ -466,7 +466,7 @@
 UnknownText_0x1b572e:
 	text "Hello, this is"
 	line "@"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "…"
 
 	para "Oh, hi, <PLAYER>,"
@@ -476,7 +476,7 @@
 UnknownText_0x1b575a:
 	text "Hello, this is"
 	line "@"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "…"
 
 	para "Oh, hi, <PLAYER>,"
@@ -488,7 +488,7 @@
 	line "up and answer!"
 
 	para "It's me, @"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "!"
 	done
 
@@ -497,7 +497,7 @@
 	line "up and answer!"
 
 	para "It's me, @"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "!"
 	done
 
@@ -506,7 +506,7 @@
 	line "up and answer!"
 
 	para "It's me, @"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "!"
 	done
 
@@ -528,7 +528,7 @@
 
 UnknownText_0x1b589a:
 	text "Hi, @"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text " here!"
 
 	para "Oh, <PLAYER>? You"
@@ -537,7 +537,7 @@
 
 UnknownText_0x1b58c2:
 	text "Hi, @"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text " here!"
 
 	para "Oh, <PLAYER>? You"
@@ -546,7 +546,7 @@
 
 UnknownText_0x1b58ea:
 	text "Hi, @"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text " here!"
 
 	para "Oh, <PLAYER>? You"
@@ -558,7 +558,7 @@
 	line "How're you doing?"
 
 	para "This is @"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text ","
 	line "got a minute?"
 	done
@@ -568,7 +568,7 @@
 	line "it going?"
 
 	para "This is @"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "."
 	line "Got a minute?"
 	done
@@ -578,7 +578,7 @@
 	line "How're you doing?"
 
 	para "This is @"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text ","
 	line "got a minute?"
 	done
@@ -588,7 +588,7 @@
 	line "#MON doing?"
 
 	para "My @"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text "'s"
 	line "raring to go, just"
 	cont "like always."
@@ -603,7 +603,7 @@
 UnknownText_0x1b5a3b:
 	text "Hello? This is"
 	line "@"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text " speaking."
 
 	para "Oh. Hi, <PLAY_G>!"
@@ -613,7 +613,7 @@
 UnknownText_0x1b5a74:
 	text "Hello? This is"
 	line "@"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text " speaking."
 
 	para "Oh, hi, <PLAY_G>!"
@@ -622,7 +622,7 @@
 UnknownText_0x1b5a9f:
 	text "Hello? This is"
 	line "@"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text " speaking."
 
 	para "Oh, hi, <PLAY_G>!"
@@ -634,7 +634,7 @@
 	line "morning!"
 
 	para "It's me, @"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "."
 	line "Isn't it nice out?"
 	done
@@ -643,7 +643,7 @@
 	text "<PLAY_G>, howdy!"
 
 	para "It's me, @"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "."
 	line "Isn't it nice out?"
 	done
@@ -653,7 +653,7 @@
 	line "<PLAY_G>!"
 
 	para "It's me, @"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "."
 	line "Were you awake?"
 	done
@@ -670,7 +670,7 @@
 
 	para "Of all my #MON,"
 	line "@"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text " is the"
 	cont "hardest to handle."
 
@@ -711,7 +711,7 @@
 UnknownText_0x1b5d09:
 	text "Hiya, it's Uncle"
 	line "@"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "."
 	done
 
@@ -718,7 +718,7 @@
 UnknownText_0x1b5d21:
 	text "Hiya, it's Uncle"
 	line "@"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "."
 	done
 
@@ -725,7 +725,7 @@
 UnknownText_0x1b5d39:
 	text "Hiya, it's Uncle"
 	line "@"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "."
 	done
 
@@ -740,7 +740,7 @@
 
 UnknownText_0x1b5d9f:
 	text "Hello, @"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text_start
 	line "speaking."
 
@@ -750,7 +750,7 @@
 
 UnknownText_0x1b5dcc:
 	text "Hello, @"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text_start
 	line "speaking."
 
@@ -760,7 +760,7 @@
 
 UnknownText_0x1b5df8:
 	text "Hello, @"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text_start
 	line "speaking."
 
@@ -773,7 +773,7 @@
 	line "<PLAY_G>."
 
 	para "This is @"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "."
 	line "Were you sleeping?"
 	done
@@ -781,7 +781,7 @@
 UnknownText_0x1b5e59:
 	text "Hi, <PLAY_G>."
 	line "This is @"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "."
 
 	para "How are things"
@@ -793,7 +793,7 @@
 	line "<PLAY_G>."
 
 	para "This is @"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "."
 	line "Are you awake?"
 	done
@@ -807,7 +807,7 @@
 
 	para "Me, I take my"
 	line "@"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text " to the"
 
 	para "#MON CENTER in"
@@ -822,7 +822,7 @@
 
 UnknownText_0x1b5f7a:
 	text "Yeah, @"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text " the"
 	line "HIKER here."
 
@@ -831,7 +831,7 @@
 
 UnknownText_0x1b5f9e:
 	text "Yeah, @"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text " the"
 	line "HIKER here."
 
@@ -841,7 +841,7 @@
 
 UnknownText_0x1b5fc9:
 	text "Yeah, @"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text " the"
 	line "HIKER here."
 
@@ -853,7 +853,7 @@
 	text "Yo, <PLAYER>?"
 
 	para "This is @"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text_start
 	line "the HIKER!"
 	done
@@ -863,7 +863,7 @@
 	line "<PLAYER>?"
 
 	para "This is @"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text_start
 	line "the HIKER!"
 	done
@@ -873,7 +873,7 @@
 	line "awake?"
 
 	para "This is @"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text_start
 	line "the HIKER!"
 	done
@@ -883,7 +883,7 @@
 	line "as feisty as ever?"
 
 	para "My @"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text " and"
 	line "me--we have energy"
 
@@ -897,7 +897,7 @@
 UnknownText_0x1b60f5:
 	text "Yes? This is"
 	line "@"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text " speaking."
 
 	para "Hey, <PLAY_G>!"
@@ -906,7 +906,7 @@
 UnknownText_0x1b611b:
 	text "Yes? This is"
 	line "@"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text " speaking."
 
 	para "This must be"
@@ -916,7 +916,7 @@
 UnknownText_0x1b6149:
 	text "Yes? This is"
 	line "@"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text " speaking."
 
 	para "Ah, <PLAY_G>!"
@@ -925,7 +925,7 @@
 UnknownText_0x1b616e:
 	text "Hello, this is"
 	line "@"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "."
 
 	para "<PLAY_G>, right?"
@@ -934,7 +934,7 @@
 UnknownText_0x1b618f:
 	text "Hello, this is"
 	line "@"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "."
 
 	para "<PLAY_G>, what are"
@@ -944,7 +944,7 @@
 UnknownText_0x1b61bd:
 	text "Hello, this is"
 	line "@"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "."
 
 	para "<PLAY_G>, sorry to"
@@ -968,7 +968,7 @@
 UnknownText_0x1b626a:
 	text "Hello? This is"
 	line "@"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "…"
 
 	para "Oh, <PLAY_G>!"
@@ -978,7 +978,7 @@
 UnknownText_0x1b6296:
 	text "Hello? This is"
 	line "@"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "…"
 
 	para "Oh, <PLAY_G>!"
@@ -988,7 +988,7 @@
 UnknownText_0x1b62c5:
 	text "Hello? This is"
 	line "@"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "…"
 
 	para "Oh, <PLAY_G>!"
@@ -999,7 +999,7 @@
 	text "<PLAY_G>?"
 
 	para "It's @"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "."
 	line "Good morning!"
 	done
@@ -1008,7 +1008,7 @@
 	text "<PLAY_G>?"
 
 	para "It's @"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text ". Is"
 	line "this a bad time?"
 	done
@@ -1017,7 +1017,7 @@
 	text "<PLAY_G>?"
 
 	para "It's @"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "."
 	line "Got time to chat?"
 	done
@@ -1028,13 +1028,13 @@
 
 	para "I train every day"
 	line "with @"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text "."
 	done
 
 UnknownText_0x1b638c:
 	text "Hello? @"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text_start
 	line "here…"
 
@@ -1043,7 +1043,7 @@
 
 UnknownText_0x1b63a8:
 	text "Hello? @"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text_start
 	line "here…"
 
@@ -1052,7 +1052,7 @@
 
 UnknownText_0x1b63c4:
 	text "Hello? @"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text_start
 	line "here…"
 
@@ -1065,7 +1065,7 @@
 
 	para "It's your pal,"
 	line "@"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "!"
 	done
 
@@ -1075,7 +1075,7 @@
 
 	para "It's your buddy"
 	line "@"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "!"
 	done
 
@@ -1085,7 +1085,7 @@
 
 	para "It's your sidekick"
 	line "@"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "!"
 	done
 
@@ -1092,7 +1092,7 @@
 UnknownText_0x1b6454:
 	text "Yeah, hello."
 	line "This is @"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "."
 
 	para "…Huh, <PLAY_G>? Yo!"
@@ -1101,7 +1101,7 @@
 UnknownText_0x1b647e:
 	text "Yeah, hello, you"
 	line "got @"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "."
 
 	para "…Huh, <PLAY_G>? Yo!"
@@ -1110,7 +1110,7 @@
 UnknownText_0x1b64a8:
 	text "Yeah, hello, you"
 	line "got @"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "."
 
 	para "…Huh, <PLAY_G>? Yo!"
@@ -1119,7 +1119,7 @@
 UnknownText_0x1b64d2:
 	text "Yeah, hello?"
 	line "@"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text " calling."
 
 	para "What are you up"
@@ -1129,7 +1129,7 @@
 UnknownText_0x1b6506:
 	text "Yeah, hello?"
 	line "@"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text " calling."
 
 	para "Where are you now,"
@@ -1139,7 +1139,7 @@
 UnknownText_0x1b6539:
 	text "Yeah, hello?"
 	line "@"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text " calling."
 
 	para "Are you awake now,"
@@ -1154,7 +1154,7 @@
 
 UnknownText_0x1b659d:
 	text "Yup, it's @"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "!"
 
 	para "Is this <PLAY_G>?"
@@ -1163,7 +1163,7 @@
 
 UnknownText_0x1b65c7:
 	text "Yup, it's @"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "!"
 
 	para "Is that <PLAY_G>?"
@@ -1171,7 +1171,7 @@
 
 UnknownText_0x1b65e3:
 	text "Yup, it's @"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "!"
 
 	para "Is that <PLAY_G>?"
@@ -1181,7 +1181,7 @@
 UnknownText_0x1b660d:
 	text "Hello! It's me,"
 	line "@"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "!"
 	done
 
@@ -1188,7 +1188,7 @@
 UnknownText_0x1b6624:
 	text "Hello! It's me,"
 	line "@"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "!"
 	done
 
@@ -1195,7 +1195,7 @@
 UnknownText_0x1b663b:
 	text "Hello! It's me,"
 	line "@"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "!"
 	done
 
@@ -1214,7 +1214,7 @@
 
 UnknownText_0x1b66c8:
 	text "Hi, @"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text " on the"
 	line "line."
 
@@ -1223,7 +1223,7 @@
 
 UnknownText_0x1b66ec:
 	text "Hi, @"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text " on the"
 	line "line."
 
@@ -1233,7 +1233,7 @@
 
 UnknownText_0x1b6713:
 	text "Hi, @"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text " on the"
 	line "line."
 
@@ -1246,7 +1246,7 @@
 
 	para "It's me!"
 	line "It's me, @"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "!"
 	done
 
@@ -1255,7 +1255,7 @@
 
 	para "It's me!"
 	line "It's me, @"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "!"
 	done
 
@@ -1264,13 +1264,13 @@
 
 	para "It's me!"
 	line "It's me, @"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "!"
 	done
 
 UnknownText_0x1b6795:
 	text "My @"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text " is"
 	line "so full of energy,"
 
@@ -1284,7 +1284,7 @@
 UnknownText_0x1b67e2:
 	text "Hello, this is"
 	line "@"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "…"
 
 	para "Hi, <PLAY_G>!"
@@ -1294,7 +1294,7 @@
 UnknownText_0x1b680e:
 	text "Hello, this is"
 	line "@"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "…"
 
 	para "Hi, <PLAY_G>, good"
@@ -1304,7 +1304,7 @@
 UnknownText_0x1b6836:
 	text "Hello, this is"
 	line "@"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "…"
 
 	para "Hi, <PLAY_G>, good"
@@ -1316,7 +1316,7 @@
 	line "morning!"
 
 	para "It's @"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "."
 	line "How are you?"
 	done
@@ -1326,7 +1326,7 @@
 	line "day!"
 
 	para "It's @"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "."
 	line "How are you?"
 	done
@@ -1336,7 +1336,7 @@
 	line "evening!"
 
 	para "It's @"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "."
 	line "How are you?"
 	done
@@ -1386,7 +1386,7 @@
 	line "morning!"
 
 	para "It's @"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text ", how"
 	line "pika are you?"
 	done
@@ -1396,7 +1396,7 @@
 	line "pika day!"
 
 	para "It's @"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text ", how"
 	line "pika are you?"
 	done
@@ -1406,7 +1406,7 @@
 	line "evening!"
 
 	para "It's @"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text ". Were"
 	line "you pika awake?"
 	done
@@ -1416,7 +1416,7 @@
 	line "this! My lovable"
 
 	para "@"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text " looked"
 	line "at me and grinned!"
 
@@ -1428,7 +1428,7 @@
 UnknownText_0x1b6b39:
 	text "Hello, this is"
 	line "@"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "…"
 
 	para "Oh, Good morning,"
@@ -1438,7 +1438,7 @@
 UnknownText_0x1b6b65:
 	text "Hello, this is"
 	line "@"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "…"
 
 	para "That voice…"
@@ -1448,7 +1448,7 @@
 UnknownText_0x1b6b92:
 	text "Hello, this is"
 	line "@"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "…"
 
 	para "This must be"
@@ -1458,7 +1458,7 @@
 UnknownText_0x1b6bb9:
 	text "Hello!"
 	line "@"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text " here…"
 
 	para "Good morning! The"
@@ -1468,7 +1468,7 @@
 UnknownText_0x1b6bef:
 	text "Hello!"
 	line "@"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text " here…"
 
 	para "What a perfect day"
@@ -1478,7 +1478,7 @@
 UnknownText_0x1b6c23:
 	text "Hello!"
 	line "@"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text " here…"
 
 	para "It's a great night"
@@ -1495,7 +1495,7 @@
 
 UnknownText_0x1b6c96:
 	text "Yes? @"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text " here…"
 
 	para "Ah, <PLAYER>. What"
@@ -1504,7 +1504,7 @@
 
 UnknownText_0x1b6cc6:
 	text "Yes? @"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text " here…"
 
 	para "Ah, <PLAYER>. What"
@@ -1513,7 +1513,7 @@
 
 UnknownText_0x1b6cf6:
 	text "Yes? @"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text " here…"
 
 	para "Ah, <PLAYER>. What"
@@ -1526,7 +1526,7 @@
 
 	para "Hey! It's me,"
 	line "@"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "."
 	done
 
@@ -1536,7 +1536,7 @@
 
 	para "Hey, it's me,"
 	line "@"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "."
 	done
 
@@ -1546,7 +1546,7 @@
 
 	para "Hey, it's me,"
 	line "@"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "."
 	done
 
@@ -1564,7 +1564,7 @@
 	line "I'm impressed."
 
 	para "Heh, my @"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text_start
 	line "is so tough, it"
 
@@ -1576,7 +1576,7 @@
 UnknownText_0x1b6e7c:
 	text "Yes? This is"
 	line "@"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "."
 
 	para "Oh, <PLAY_G>."
@@ -1586,7 +1586,7 @@
 UnknownText_0x1b6ea6:
 	text "Yes? This is"
 	line "@"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "."
 
 	para "Oh, <PLAY_G>."
@@ -1596,7 +1596,7 @@
 UnknownText_0x1b6ec9:
 	text "Yes? This is"
 	line "@"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "."
 
 	para "Oh, <PLAY_G>, good"
@@ -1608,7 +1608,7 @@
 
 	para "Good morning. This"
 	line "is @"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "."
 	done
 
@@ -1616,7 +1616,7 @@
 	text "Is this <PLAY_G>?"
 
 	para "Hi, it's @"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "."
 	done
 
@@ -1625,7 +1625,7 @@
 
 	para "Good evening. This"
 	line "is @"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "."
 	done
 
@@ -1641,7 +1641,7 @@
 	line "too hard."
 
 	para "My @"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text " is"
 	line "cute and lively"
 
@@ -1655,7 +1655,7 @@
 UnknownText_0x1b7019:
 	text "Yes, hello?"
 	line "@"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text " here!"
 
 	para "Morning, <PLAY_G>!"
@@ -1667,7 +1667,7 @@
 UnknownText_0x1b7057:
 	text "Yes, hello?"
 	line "@"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text " here!"
 
 	para "Hi, <PLAY_G>!"
@@ -1679,7 +1679,7 @@
 UnknownText_0x1b7092:
 	text "Yes, hello?"
 	line "@"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text " here!"
 
 	para "Evening, <PLAY_G>!"
@@ -1694,7 +1694,7 @@
 	line "<PLAY_G>!"
 
 	para "It's @"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "!"
 	line "Good morning!"
 	done
@@ -1703,7 +1703,7 @@
 	text "Hi, <PLAY_G>!"
 
 	para "It's @"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "!"
 	line "Remember me?"
 	done
@@ -1713,7 +1713,7 @@
 	line "<PLAY_G>!"
 
 	para "It's @"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "!"
 	line "Are you free now?"
 	done
@@ -1723,7 +1723,7 @@
 	line "#MON fine?"
 
 	para "My @"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text_start
 	line "looks like it will"
 
@@ -1737,7 +1737,7 @@
 UnknownText_0x1b71d5:
 	text "Hello, you have"
 	line "reached @"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "…"
 
 	para "Ah, <PLAY_G>."
@@ -1746,7 +1746,7 @@
 UnknownText_0x1b71fc:
 	text "Hello, you have"
 	line "reached @"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "…"
 
 	para "Ah, <PLAY_G>, is"
@@ -1756,7 +1756,7 @@
 UnknownText_0x1b722a:
 	text "Hello, you have"
 	line "reached @"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "…"
 
 	para "Ah, if it isn't"
@@ -1765,7 +1765,7 @@
 
 UnknownText_0x1b725c:
 	text "Ah, it's @"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "…"
 
 	para "Have you got a"
@@ -1774,7 +1774,7 @@
 
 UnknownText_0x1b7283:
 	text "Ah, it's @"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "…"
 
 	para "Can you talk now?"
@@ -1782,7 +1782,7 @@
 
 UnknownText_0x1b72a5:
 	text "Ah, it's @"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "…"
 
 	para "Sorry for calling"
@@ -1794,13 +1794,13 @@
 	line "grown any?"
 
 	para "My @"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text " has"
 	line "grown quite a bit."
 	done
 
 UnknownText_0x1b730b:
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text " here…"
 
 	para "<PLAYER>! Beautiful"
@@ -1808,7 +1808,7 @@
 	done
 
 UnknownText_0x1b7331:
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text " here…"
 
 	para "<PLAYER>! Beautiful"
@@ -1816,7 +1816,7 @@
 	done
 
 UnknownText_0x1b7357:
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text " here…"
 
 	para "<PLAYER>! Beautiful"
@@ -1826,7 +1826,7 @@
 UnknownText_0x1b737f:
 	text "Hey, <PLAYER>!"
 	line "This is @"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "!"
 	done
 
@@ -1833,7 +1833,7 @@
 UnknownText_0x1b7397:
 	text "Hey, <PLAYER>!"
 	line "This is @"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "!"
 	done
 
@@ -1840,7 +1840,7 @@
 UnknownText_0x1b73af:
 	text "Hey, <PLAYER>!"
 	line "This is @"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "!"
 	done
 
@@ -1847,7 +1847,7 @@
 UnknownText_0x1b73c7:
 	text "Yup, yup!"
 	line "It's @"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "!"
 
 	para "Hah, and here's"
@@ -1857,7 +1857,7 @@
 UnknownText_0x1b73ef:
 	text "Yup, yup!"
 	line "It's @"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "!"
 
 	para "Hah, and here's"
@@ -1867,7 +1867,7 @@
 UnknownText_0x1b7417:
 	text "Yup, yup!"
 	line "It's @"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "!"
 
 	para "Hah, and here's"
@@ -1877,7 +1877,7 @@
 UnknownText_0x1b743f:
 	text "<PLAY_G>, it's"
 	line "@"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "!"
 
 	para "Have you had a"
@@ -1887,7 +1887,7 @@
 UnknownText_0x1b746f:
 	text "<PLAY_G>, it's"
 	line "@"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "!"
 
 	para "Have you had a"
@@ -1897,7 +1897,7 @@
 UnknownText_0x1b749b:
 	text "<PLAY_G>, it's"
 	line "@"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "!"
 
 	para "Have you had a"
@@ -1909,7 +1909,7 @@
 	line "looking good?"
 
 	para "My @"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text " and"
 	line "me--we're looking"
 
@@ -1920,7 +1920,7 @@
 UnknownText_0x1b751a:
 	text "Yes, this is"
 	line "@"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "…"
 
 	para "Oh. Hi, <PLAY_G>!"
@@ -1930,7 +1930,7 @@
 UnknownText_0x1b7548:
 	text "Yes, this is"
 	line "@"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "…"
 
 	para "Oh, hi, <PLAY_G>!"
@@ -1940,7 +1940,7 @@
 UnknownText_0x1b756f:
 	text "Yes, this is"
 	line "@"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "…"
 
 	para "Oh, hi, <PLAY_G>!"
@@ -1950,7 +1950,7 @@
 	text "<PLAY_G>!"
 
 	para "It's @"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "!"
 	line "Good morning!"
 	done
@@ -1959,7 +1959,7 @@
 	text "<PLAY_G>!"
 
 	para "It's @"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "!"
 	line "Working hard?"
 	done
@@ -1968,7 +1968,7 @@
 	text "<PLAY_G>!"
 
 	para "It's @"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "!"
 	line "Were you up?"
 	done
@@ -1978,10 +1978,10 @@
 	line "your #MON?"
 
 	para "Hey, @"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "'s"
 	line "@"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text " is"
 	cont "looking good!"
 	done
--- a/data/text/battle.asm
+++ b/data/text/battle.asm
@@ -3,13 +3,13 @@
 BattleText_PlayerPickedUpPayDayMoney:
 	text "<PLAYER> picked up"
 	line "¥@"
-	deciram wPayDayMoney, 3, 6
+	text_decimal wPayDayMoney, 3, 6
 	text "!"
 	prompt
 
 WildPokemonAppearedText:
 	text "Wild @"
-	text_from_ram wEnemyMonNick
+	text_ram wEnemyMonNick
 	text_start
 	line "appeared!"
 	prompt
@@ -17,13 +17,13 @@
 HookedPokemonAttackedText:
 	text "The hooked"
 	line "@"
-	text_from_ram wEnemyMonNick
+	text_ram wEnemyMonNick
 	text_start
 	cont "attacked!"
 	prompt
 
 PokemonFellFromTreeText:
-	text_from_ram wEnemyMonNick
+	text_ram wEnemyMonNick
 	text " fell"
 	line "out of the tree!"
 	prompt
@@ -30,7 +30,7 @@
 
 WildCelebiAppearedText:
 	text "Wild @"
-	text_from_ram wEnemyMonNick
+	text_ram wEnemyMonNick
 	text_start
 	line "appeared!"
 	prompt
@@ -42,7 +42,7 @@
 
 BattleText_WildFled:
 	text "Wild @"
-	text_from_ram wEnemyMonNick
+	text_ram wEnemyMonNick
 	text_start
 	line "fled!"
 	prompt
@@ -49,7 +49,7 @@
 
 BattleText_EnemyFled:
 	text "Enemy @"
-	text_from_ram wEnemyMonNick
+	text_ram wEnemyMonNick
 	text_start
 	line "fled!"
 	prompt
@@ -87,7 +87,7 @@
 PerishCountText:
 	text "<USER>'s"
 	line "PERISH count is @"
-	deciram wDeciramBuffer, 1, 1
+	text_decimal wDeciramBuffer, 1, 1
 	text "!"
 	prompt
 
@@ -95,7 +95,7 @@
 	text "<TARGET>"
 	line "recovered with"
 	cont "@"
-	text_from_ram wStringBuffer1
+	text_ram wStringBuffer1
 	text "."
 	prompt
 
@@ -103,7 +103,7 @@
 	text "<USER>"
 	line "recovered PP using"
 	cont "@"
-	text_from_ram wStringBuffer1
+	text_ram wStringBuffer1
 	text "."
 	prompt
 
@@ -119,13 +119,13 @@
 	prompt
 
 BattleText_MonsLightScreenFell:
-	text_from_ram wStringBuffer1
+	text_ram wStringBuffer1
 	text " #MON's"
 	line "LIGHT SCREEN fell!"
 	prompt
 
 BattleText_MonsReflectFaded:
-	text_from_ram wStringBuffer1
+	text_ram wStringBuffer1
 	text " #MON's"
 	line "REFLECT faded!"
 	prompt
@@ -161,7 +161,7 @@
 
 BattleText_EnemyMonFainted:
 	text "Enemy @"
-	text_from_ram wEnemyMonNick
+	text_ram wEnemyMonNick
 	text_start
 	line "fainted!"
 	prompt
@@ -168,7 +168,7 @@
 
 GotMoneyForWinningText:
 	text "<PLAYER> got ¥@"
-	deciram wBattleReward, 3, 6
+	text_decimal wBattleReward, 3, 6
 	text_start
 	line "for winning!"
 	prompt
@@ -185,7 +185,7 @@
 
 SentSomeToMomText:
 	text "<PLAYER> got ¥@"
-	deciram wBattleReward, 3, 6
+	text_decimal wBattleReward, 3, 6
 	text_start
 	line "for winning!"
 	cont "Sent some to MOM!"
@@ -206,7 +206,7 @@
 	prompt
 
 BattleText_MonFainted:
-	text_from_ram wBattleMonNick
+	text_ram wBattleMonNick
 	text_start
 	line "fainted!"
 	prompt
@@ -230,7 +230,7 @@
 	text "<ENEMY>"
 	line "is about to use"
 	cont "@"
-	text_from_ram wEnemyMonNick
+	text_ram wEnemyMonNick
 	text "."
 
 	para "Will <PLAYER>"
@@ -241,7 +241,7 @@
 	text "<ENEMY>"
 	line "sent out"
 	cont "@"
-	text_from_ram wEnemyMonNick
+	text_ram wEnemyMonNick
 	text "!"
 	done
 
@@ -273,7 +273,7 @@
 	text "<USER>"
 	line "fled using a"
 	cont "@"
-	text_from_ram wStringBuffer1
+	text_ram wStringBuffer1
 	text "!"
 	prompt
 
@@ -290,7 +290,7 @@
 	text "<TARGET>"
 	line "recovered using a"
 	cont "@"
-	text_from_ram wStringBuffer1
+	text_ram wStringBuffer1
 	text "!"
 	prompt
 
@@ -297,7 +297,7 @@
 BattleText_UsersStringBuffer1Activated:
 	text "<USER>'s"
 	line "@"
-	text_from_ram wStringBuffer1
+	text_ram wStringBuffer1
 	text_start
 	cont "activated!"
 	prompt
@@ -308,13 +308,13 @@
 	prompt
 
 BattleText_MonIsAlreadyOut:
-	text_from_ram wBattleMonNick
+	text_ram wBattleMonNick
 	text_start
 	line "is already out."
 	prompt
 
 BattleText_MonCantBeRecalled:
-	text_from_ram wBattleMonNick
+	text_ram wBattleMonNick
 	text_start
 	line "can't be recalled!"
 	prompt
@@ -330,7 +330,7 @@
 	prompt
 
 BattleText_MonHasNoMovesLeft:
-	text_from_ram wBattleMonNick
+	text_ram wBattleMonNick
 	text_start
 	line "has no moves left!"
 	done
@@ -341,17 +341,19 @@
 	prompt
 
 BattleText_StringBuffer1GrewToLevel:
-	text_from_ram wStringBuffer1
+	text_ram wStringBuffer1
 	text " grew to"
 	line "level @"
-	deciram wCurPartyLevel, 1, 3
+	text_decimal wCurPartyLevel, 1, 3
 	text "!@"
 	sound_dex_fanfare_50_79
-	db "@@"
+	text_end
 
+	text_end ; unused
+
 BattleText_WildMonIsEating:
 	text "Wild @"
-	text_from_ram wEnemyMonNick
+	text_ram wEnemyMonNick
 	text_start
 	line "is eating!"
 	prompt
@@ -358,7 +360,7 @@
 
 BattleText_WildMonIsAngry:
 	text "Wild @"
-	text_from_ram wEnemyMonNick
+	text_ram wEnemyMonNick
 	text_start
 	line "is angry!"
 	prompt
@@ -416,7 +418,7 @@
 
 BattleText_ItemHealedConfusion: ; ItemHealedConfusion
 	text "A @"
-	text_from_ram wStringBuffer1
+	text_ram wStringBuffer1
 	text " rid"
 	line "<TARGET>"
 	cont "of its confusion."
@@ -431,7 +433,7 @@
 	text "<USER>'s"
 	line "hurt by"
 	cont "@"
-	text_from_ram wStringBuffer1
+	text_ram wStringBuffer1
 	text "!"
 	prompt
 
@@ -439,7 +441,7 @@
 	text "<USER>"
 	line "was released from"
 	cont "@"
-	text_from_ram wStringBuffer1
+	text_ram wStringBuffer1
 	text "!"
 	prompt
 
@@ -485,7 +487,7 @@
 	text "<TARGET>"
 	line "hung on with"
 	cont "@"
-	text_from_ram wStringBuffer1
+	text_ram wStringBuffer1
 	text "!"
 	prompt
 
@@ -509,43 +511,43 @@
 DisabledMoveText:
 	text "<USER>'s"
 	line "@"
-	text_from_ram wStringBuffer1
+	text_ram wStringBuffer1
 	text " is"
 	cont "DISABLED!"
 	prompt
 
 LoafingAroundText:
-	text_from_ram wBattleMonNick
+	text_ram wBattleMonNick
 	text " is"
 	line "loafing around."
 	prompt
 
 BeganToNapText:
-	text_from_ram wBattleMonNick
+	text_ram wBattleMonNick
 	text " began"
 	line "to nap!"
 	prompt
 
 WontObeyText:
-	text_from_ram wBattleMonNick
+	text_ram wBattleMonNick
 	text " won't"
 	line "obey!"
 	prompt
 
 TurnedAwayText:
-	text_from_ram wBattleMonNick
+	text_ram wBattleMonNick
 	text " turned"
 	line "away!"
 	prompt
 
 IgnoredOrdersText:
-	text_from_ram wBattleMonNick
+	text_ram wBattleMonNick
 	text " ignored"
 	line "orders!"
 	prompt
 
 IgnoredSleepingText:
-	text_from_ram wBattleMonNick
+	text_ram wBattleMonNick
 	text " ignored"
 	line "orders…sleeping!"
 	prompt
@@ -559,7 +561,7 @@
 	text "<USER>"
 	line "has no PP left for"
 	cont "@"
-	text_from_ram wStringBuffer2
+	text_ram wStringBuffer2
 	text "!"
 	prompt
 
@@ -653,7 +655,7 @@
 	text "<USER>"
 	line "SKETCHED"
 	cont "@"
-	text_from_ram wStringBuffer1
+	text_ram wStringBuffer1
 	text "!"
 	prompt
 
@@ -666,10 +668,10 @@
 SpiteEffectText:
 	text "<TARGET>'s"
 	line "@"
-	text_from_ram wStringBuffer1
+	text_ram wStringBuffer1
 	text " was"
 	cont "reduced by @"
-	deciram wDeciramBuffer, 1, 1
+	text_decimal wDeciramBuffer, 1, 1
 	text "!"
 	prompt
 
@@ -731,7 +733,7 @@
 WontRiseAnymoreText:
 	text "<USER>'s"
 	line "@"
-	text_from_ram wStringBuffer2
+	text_ram wStringBuffer2
 	text " won't"
 	cont "rise anymore!"
 	prompt
@@ -739,7 +741,7 @@
 WontDropAnymoreText:
 	text "<TARGET>'s"
 	line "@"
-	text_from_ram wStringBuffer2
+	text_ram wStringBuffer2
 	text " won't"
 	cont "drop anymore!"
 	prompt
@@ -761,13 +763,13 @@
 
 PlayerHitTimesText:
 	text "Hit @"
-	deciram wPlayerDamageTaken, 1, 1
+	text_decimal wPlayerDamageTaken, 1, 1
 	text " times!"
 	prompt
 
 EnemyHitTimesText:
 	text "Hit @"
-	deciram wEnemyDamageTaken, 1, 1
+	text_decimal wEnemyDamageTaken, 1, 1
 	text " times!"
 	prompt
 
@@ -782,7 +784,7 @@
 	prompt
 
 GettingPumpedText:
-	interpret_data
+	text_pause
 	text "<USER>'s"
 	line "getting pumped!"
 	prompt
@@ -822,7 +824,7 @@
 	text "<USER>"
 	line "learned"
 	cont "@"
-	text_from_ram wStringBuffer1
+	text_ram wStringBuffer1
 	text "!"
 	prompt
 
@@ -839,7 +841,7 @@
 WasDisabledText:
 	text "<TARGET>'s"
 	line "@"
-	text_from_ram wStringBuffer1
+	text_ram wStringBuffer1
 	text " was"
 	cont "DISABLED!"
 	prompt
@@ -853,7 +855,7 @@
 	text "<USER>"
 	line "transformed into"
 	cont "the @"
-	text_from_ram wStringBuffer1
+	text_ram wStringBuffer1
 	text "-type!"
 	prompt
 
@@ -866,7 +868,7 @@
 	text "<USER>"
 	line "TRANSFORMED into"
 	cont "@"
-	text_from_ram wStringBuffer1
+	text_ram wStringBuffer1
 	text "!"
 	prompt
 
@@ -933,7 +935,7 @@
 	text "<TARGET>'s"
 	line "protected by"
 	cont "@"
-	text_from_ram wStringBuffer1
+	text_ram wStringBuffer1
 	text "!"
 	prompt
 
@@ -945,7 +947,7 @@
 StoleText:
 	text "<USER>"
 	line "stole @"
-	text_from_ram wStringBuffer1
+	text_ram wStringBuffer1
 	text_start
 	cont "from its foe!"
 	prompt
@@ -1029,7 +1031,7 @@
 
 MagnitudeText:
 	text "Magnitude @"
-	deciram wDeciramBuffer, 1, 1
+	text_decimal wDeciramBuffer, 1, 1
 	text "!"
 	prompt
 
@@ -1079,7 +1081,7 @@
 	prompt
 
 BeatUpAttackText:
-	text_from_ram wStringBuffer1
+	text_ram wStringBuffer1
 	text "'s"
 	line "attack!"
 	done
--- a/data/text/common_1.asm
+++ b/data/text/common_1.asm
@@ -6,7 +6,7 @@
 _HeyItsFruitText::
 	text "Hey! It's"
 	line "@"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "!"
 	done
 
@@ -13,7 +13,7 @@
 _ObtainedFruitText::
 	text "Obtained"
 	line "@"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "!"
 	done
 
@@ -38,67 +38,69 @@
 	done
 
 UnknownText_0x1bc0a2::
-	text_from_ram wStringBuffer1
+	text_ram wStringBuffer1
 	text_start
 	line "recovered @"
-	deciram wCurHPAnimDeltaHP, 2, 3
+	text_decimal wCurHPAnimDeltaHP, 2, 3
 	text "HP!"
 	done
 
 UnknownText_0x1bc0bb::
-	text_from_ram wStringBuffer1
+	text_ram wStringBuffer1
 	text "'s"
 	line "cured of poison."
 	done
 
 UnknownText_0x1bc0d2::
-	text_from_ram wStringBuffer1
+	text_ram wStringBuffer1
 	text "'s"
 	line "rid of paralysis."
 	done
 
 UnknownText_0x1bc0ea::
-	text_from_ram wStringBuffer1
+	text_ram wStringBuffer1
 	text "'s"
 	line "burn was healed."
 	done
 
 UnknownText_0x1bc101::
-	text_from_ram wStringBuffer1
+	text_ram wStringBuffer1
 	text_start
 	line "was defrosted."
 	done
 
 UnknownText_0x1bc115::
-	text_from_ram wStringBuffer1
+	text_ram wStringBuffer1
 	text_start
 	line "woke up."
 	done
 
 UnknownText_0x1bc123::
-	text_from_ram wStringBuffer1
+	text_ram wStringBuffer1
 	text "'s"
 	line "health returned."
 	done
 
 UnknownText_0x1bc13a::
-	text_from_ram wStringBuffer1
+	text_ram wStringBuffer1
 	text_start
 	line "is revitalized."
 	done
 
 UnknownText_0x1bc14f::
-	text_from_ram wStringBuffer1
+	text_ram wStringBuffer1
 	text " grew to"
 	line "level @"
-	deciram wCurPartyLevel, 1, 3
+	text_decimal wCurPartyLevel, 1, 3
 	text "!@"
 	sound_dex_fanfare_50_79 ; plays SFX_DEX_FANFARE_50_79, identical to SFX_LEVEL_UP
 	text_waitbutton
-	db "@@"
+	text_end
 
+	text_end ; unused
+
 UnknownText_0x1bc16e::
-	text_from_ram wStringBuffer1
+	text_ram wStringBuffer1
 	text " came"
 	line "to its senses."
 	done
@@ -148,7 +150,8 @@
 	done
 
 UnknownText_0x1bc288::
-	text "CARD FOLDER open.@@"
+	text "CARD FOLDER open.@"
+	text_end
 
 UnknownText_0x1bc29c::
 	text "<……><……><……><……><……><……>"
@@ -166,7 +169,8 @@
 	done
 
 UnknownText_0x1bc2fd::
-	text "What?@@"
+	text "What?@"
+	text_end
 
 UnknownText_0x1bc305::
 	text "?"
@@ -177,7 +181,8 @@
 	done
 
 UnknownText_0x1bc31b::
-	text "Whoa!@@"
+	text "Whoa!@"
+	text_end
 
 UnknownText_0x1bc323::
 	text "?"
@@ -276,7 +281,7 @@
 UnknownText_0x1bc4d7::
 	text "Put away the"
 	line "@"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "."
 	prompt
 
@@ -288,7 +293,7 @@
 UnknownText_0x1bc509::
 	text "Set up the"
 	line "@"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "."
 	prompt
 
@@ -295,12 +300,12 @@
 UnknownText_0x1bc51c::
 	text "Put away the"
 	line "@"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text_start
 
 	para "and set up the"
 	line "@"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text "."
 	prompt
 
@@ -331,7 +336,7 @@
 UnknownText_0x1bc5d7::
 	text "It's an adorable"
 	line "@"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "."
 	done
 
@@ -372,10 +377,10 @@
 	done
 
 UnknownText_0x1bc6e9::
-	text_from_ram wPlayerTrademonSpeciesName
+	text_ram wPlayerTrademonSpeciesName
 	text " was"
 	line "sent to @"
-	text_from_ram wOTTrademonSenderName
+	text_ram wOTTrademonSenderName
 	text "."
 	done
 
@@ -384,13 +389,13 @@
 	done
 
 UnknownText_0x1bc703::
-	text_from_ram wOTTrademonSenderName
+	text_ram wOTTrademonSenderName
 	text " bids"
 	line "farewell to"
 	done
 
 UnknownText_0x1bc719::
-	text_from_ram wOTTrademonSpeciesName
+	text_ram wOTTrademonSpeciesName
 	text "."
 	done
 
@@ -397,64 +402,68 @@
 UnknownText_0x1bc71f::
 	text "Take good care of"
 	line "@"
-	text_from_ram wOTTrademonSpeciesName
+	text_ram wOTTrademonSpeciesName
 	text "."
 	done
 
 UnknownText_0x1bc739::
 	text "For @"
-	text_from_ram wPlayerTrademonSenderName
+	text_ram wPlayerTrademonSenderName
 	text "'s"
 	line "@"
-	text_from_ram wPlayerTrademonSpeciesName
+	text_ram wPlayerTrademonSpeciesName
 	text ","
 	done
 
 UnknownText_0x1bc74c::
-	text_from_ram wOTTrademonSenderName
+	text_ram wOTTrademonSenderName
 	text " sends"
 	line "@"
-	text_from_ram wOTTrademonSpeciesName
+	text_ram wOTTrademonSpeciesName
 	text "."
 	done
 
 UnknownText_0x1bc75e::
-	text_from_ram wOTTrademonSenderName
+	text_ram wOTTrademonSenderName
 	text " will"
 	line "trade @"
-	text_from_ram wOTTrademonSpeciesName
-	db "@@"
+	text_ram wOTTrademonSpeciesName
+	text_end
 
+	text_end ; unused
+
 UnknownText_0x1bc774::
 	text "for @"
-	text_from_ram wPlayerTrademonSenderName
+	text_ram wPlayerTrademonSenderName
 	text "'s"
 	line "@"
-	text_from_ram wPlayerTrademonSpeciesName
+	text_ram wPlayerTrademonSpeciesName
 	text "."
 	done
 
 UnknownText_0x1bc787::
-	text_from_ram wPlayerTrademonSenderName
+	text_ram wPlayerTrademonSenderName
 	text " will"
 	line "trade @"
-	text_from_ram wPlayerTrademonSpeciesName
-	db "@@"
+	text_ram wPlayerTrademonSpeciesName
+	text_end
 
+	text_end ; unused
+
 UnknownText_0x1bc79d::
 	text "for @"
-	text_from_ram wOTTrademonSenderName
+	text_ram wOTTrademonSenderName
 	text "'s"
 	line "@"
-	text_from_ram wOTTrademonSpeciesName
+	text_ram wOTTrademonSpeciesName
 	text "."
 	done
 
 UnknownText_0x1bc7b0::
-	text_from_ram wPlayerTrademonSenderName
+	text_ram wPlayerTrademonSenderName
 	text "'s"
 	line "@"
-	text_from_ram wPlayerTrademonSpeciesName
+	text_ram wPlayerTrademonSpeciesName
 	text " trade…"
 	done
 
@@ -461,15 +470,15 @@
 UnknownText_0x1bc7c3::
 	text "Take good care of"
 	line "@"
-	text_from_ram wOTTrademonSpeciesName
+	text_ram wOTTrademonSpeciesName
 	text "."
 	done
 
 UnknownText_0x1bc7dd::
-	text_from_ram wPlayerTrademonSenderName
+	text_ram wPlayerTrademonSenderName
 	text "'s"
 	line "@"
-	text_from_ram wPlayerTrademonSpeciesName
+	text_ram wPlayerTrademonSpeciesName
 	text " trade…"
 	done
 
@@ -476,12 +485,12 @@
 UnknownText_0x1bc7f0::
 	text "Take good care of"
 	line "@"
-	text_from_ram wOTTrademonSpeciesName
+	text_ram wOTTrademonSpeciesName
 	text "."
 	done
 
 UnknownText_0x1bc80a::
-	text_from_ram wOTTrademonSpeciesName
+	text_ram wOTTrademonSpeciesName
 	text " came"
 	line "back!"
 	done
@@ -506,9 +515,11 @@
 _OPT_OakText1::
 	text_start
 	line "OAK: @"
-	text_from_ram wMonOrItemNameBuffer
-	db "@@"
+	text_ram wMonOrItemNameBuffer
+	text_end
 
+	text_end ; unused
+
 _OPT_OakText2::
 	text_start
 	line "may be seen around"
@@ -517,7 +528,7 @@
 _OPT_OakText3::
 	text_start
 	line "@"
-	text_from_ram wStringBuffer1
+	text_ram wStringBuffer1
 	text "."
 	done
 
@@ -524,7 +535,7 @@
 _OPT_MaryText1::
 	text_start
 	line "MARY: @"
-	text_from_ram wStringBuffer1
+	text_ram wStringBuffer1
 	text "'s"
 	done
 
@@ -695,9 +706,11 @@
 _PokedexShowText::
 	text_start
 	line "@"
-	text_from_ram wStringBuffer1
-	db "@@"
+	text_ram wStringBuffer1
+	text_end
 
+	text_end ; unused
+
 ; Pokémon Music Channel / Pokémusic
 
 _BenIntroText1::
@@ -728,7 +741,7 @@
 _BenFernText1::
 	text_start
 	line "Today's @"
-	current_day
+	text_today
 	text ","
 	done
 
@@ -792,8 +805,8 @@
 _LC_Text8::
 	text_start
 	line "Number is @"
-	interpret_data
-	text_from_ram wStringBuffer1
+	text_pause
+	text_ram wStringBuffer1
 	text "!"
 	done
 
@@ -842,11 +855,13 @@
 _PnP_Text4::
 	text_start
 	line "@"
-	text_from_ram wStringBuffer2
+	text_ram wStringBuffer2
 	text " @"
-	text_from_ram wStringBuffer1
-	db "@@"
+	text_ram wStringBuffer1
+	text_end
 
+	text_end ; unused
+
 _PnP_cute::
 	text_start
 	line "is cute."
@@ -930,9 +945,11 @@
 _PnP_Text5::
 	text_start
 	line "@"
-	text_from_ram wStringBuffer1
-	db "@@"
+	text_ram wStringBuffer1
+	text_end
 
+	text_end ; unused
+
 _RocketRadioText1::
 	text_start
 	line "… …Ahem, we are"
@@ -966,7 +983,7 @@
 _RocketRadioText7::
 	text_start
 	line "GIOVANNI! @"
-	interpret_data
+	text_pause
 	text "Can you"
 	done
 
@@ -973,7 +990,7 @@
 _RocketRadioText8::
 	text_start
 	line "hear?@"
-	interpret_data
+	text_pause
 	text " We did it!"
 	done
 
@@ -980,7 +997,7 @@
 _RocketRadioText9::
 	text_start
 	line "@"
-	interpret_data
+	text_pause
 	text "Where is our boss?"
 	done
 
@@ -987,7 +1004,7 @@
 _RocketRadioText10::
 	text_start
 	line "@"
-	interpret_data
+	text_pause
 	text "Is he listening?"
 	done
 
@@ -1009,7 +1026,7 @@
 _BuenaRadioText4::
 	text_start
 	line "@"
-	text_from_ram wStringBuffer1
+	text_ram wStringBuffer1
 	text "!"
 	done
 
@@ -1085,7 +1102,7 @@
 	text "<ENEMY>"
 	line "withdrew"
 	cont "@"
-	text_from_ram wEnemyMonNick
+	text_ram wEnemyMonNick
 	text "!"
 	prompt
 
@@ -1092,10 +1109,10 @@
 Text_EnemyUsedOn::
 	text "<ENEMY>"
 	line "used @"
-	text_from_ram wMonOrItemNameBuffer
+	text_ram wMonOrItemNameBuffer
 	text_start
 	cont "on @"
-	text_from_ram wEnemyMonNick
+	text_ram wEnemyMonNick
 	text "!"
 	prompt
 
@@ -1111,7 +1128,7 @@
 
 Text_TheItemWasPutInThePack::
 	text "The @"
-	text_from_ram wStringBuffer1
+	text_ram wStringBuffer1
 	text_start
 	line "was put in the"
 	cont "PACK."
@@ -1138,7 +1155,7 @@
 UnknownText_0x1bd07f::
 	text "Will you play with"
 	line "@"
-	text_from_ram wStringBuffer2
+	text_ram wStringBuffer2
 	text "?"
 	done
 
@@ -1155,7 +1172,7 @@
 UnknownText_0x1bd0d8::
 	text "The compatibility"
 	line "is @"
-	deciram wBreedingCompatibility, 1, 3
+	text_decimal wBreedingCompatibility, 1, 3
 	text "."
 	cont "Should they breed?"
 	done
@@ -1173,7 +1190,7 @@
 UnknownText_0x1bd131::
 	text "Test event"
 	line "@"
-	deciram wStringBuffer2, 1, 2
+	text_decimal wStringBuffer2, 1, 2
 	text "?"
 	done
 
@@ -1205,7 +1222,7 @@
 UnknownText_0x1bd19a::
 	text "A new CARD arrived"
 	line "from @"
-	text_from_ram wStringBuffer2
+	text_ram wStringBuffer2
 	text "."
 	done
 
@@ -1215,10 +1232,10 @@
 	done
 
 UnknownText_0x1bd1dd::
-	text_from_ram wStringBuffer2
+	text_ram wStringBuffer2
 	text "'s CARD was"
 	line "listed as no.@"
-	deciram wStringBuffer1, 1, 2
+	text_decimal wStringBuffer1, 1, 2
 	text "."
 	prompt
 
@@ -1251,10 +1268,10 @@
 
 UnknownText_0x1bd286::
 	text "Trading @"
-	text_from_ram wStringBuffer2
+	text_ram wStringBuffer2
 	text_start
 	line "for @"
-	text_from_ram wStringBuffer1
+	text_ram wStringBuffer1
 	text "…"
 	done
 
@@ -1286,7 +1303,7 @@
 UnknownText_0x1bd321::
 	text "<PLAYER> found"
 	line "@"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "!"
 	done
 
@@ -1298,10 +1315,10 @@
 UnknownText_0x1bd34b::
 	text "I just saw some"
 	line "rare @"
-	text_from_ram wStringBuffer1
+	text_ram wStringBuffer1
 	text " in"
 	cont "@"
-	text_from_ram wStringBuffer2
+	text_ram wStringBuffer2
 	text "."
 
 	para "I'll call you if I"
@@ -1315,15 +1332,17 @@
 	done
 
 UnknownText_0x1bd3be::
-	text_from_ram wPlayerName
+	text_ram wPlayerName
 	text " received"
 	line "@"
-	text_from_ram wStringBuffer1
+	text_ram wStringBuffer1
 	text "!@"
 	sound_item
 	text_waitbutton
-	db "@@"
+	text_end
 
+	text_end ; unused
+
 UnknownText_0x1bd3d7::
 	text "You have no coins."
 	prompt
@@ -1341,27 +1360,30 @@
 UnknownText_0x1bd429::
 	text "<PLAYER> traded"
 	line "@"
-	text_from_ram wMonOrItemNameBuffer
+	text_ram wMonOrItemNameBuffer
 	text " for"
 	cont "@"
-	text_from_ram wStringBuffer2
-	text ".@@"
+	text_ram wStringBuffer2
+	text ".@"
+	text_end
 
 UnknownText_0x1bd445::
 	sound_dex_fanfare_80_109
-	interpret_data
-	db "@@"
+	text_pause
+	text_end
 
+	text_end ; unused
+
 UnknownText_0x1bd449::
 	text "I collect #MON."
 	line "Do you have"
 	cont "@"
-	text_from_ram wStringBuffer1
+	text_ram wStringBuffer1
 	text "?"
 
 	para "Want to trade it"
 	line "for my @"
-	text_from_ram wStringBuffer2
+	text_ram wStringBuffer2
 	text "?"
 	done
 
@@ -1373,7 +1395,7 @@
 UnknownText_0x1bd4aa::
 	text "Huh? That's not"
 	line "@"
-	text_from_ram wStringBuffer1
+	text_ram wStringBuffer1
 	text ". "
 	cont "What a letdown…"
 	done
@@ -1381,7 +1403,7 @@
 UnknownText_0x1bd4d2::
 	text "Yay! I got myself"
 	line "@"
-	text_from_ram wStringBuffer1
+	text_ram wStringBuffer1
 	text "!"
 	cont "Thanks!"
 	done
@@ -1389,7 +1411,7 @@
 UnknownText_0x1bd4f4::
 	text "Hi, how's my old"
 	line "@"
-	text_from_ram wStringBuffer2
+	text_ram wStringBuffer2
 	text " doing?"
 	done
 
@@ -1399,12 +1421,12 @@
 
 	para "If you have"
 	line "@"
-	text_from_ram wStringBuffer1
+	text_ram wStringBuffer1
 	text ", would"
 
 	para "you trade it for"
 	line "my @"
-	text_from_ram wStringBuffer2
+	text_ram wStringBuffer2
 	text "?"
 	done
 
@@ -1419,7 +1441,7 @@
 UnknownText_0x1bd5a1::
 	text "You don't have"
 	line "@"
-	text_from_ram wStringBuffer1
+	text_ram wStringBuffer1
 	text "? That's"
 	cont "too bad, then."
 	done
@@ -1429,13 +1451,13 @@
 
 	para "I finally got"
 	line "@"
-	text_from_ram wStringBuffer1
+	text_ram wStringBuffer1
 	text "."
 	done
 
 UnknownText_0x1bd5f4::
 	text "Hi! The @"
-	text_from_ram wMonOrItemNameBuffer
+	text_ram wMonOrItemNameBuffer
 	text_start
 	line "you traded me is"
 	cont "doing great!"
@@ -1442,18 +1464,18 @@
 	done
 
 UnknownText_0x1bd621::
-	text_from_ram wMonOrItemNameBuffer
+	text_ram wMonOrItemNameBuffer
 	text "'s cute,"
 	line "but I don't have"
 
 	para "it. Do you have"
 	line "@"
-	text_from_ram wStringBuffer1
+	text_ram wStringBuffer1
 	text "?"
 
 	para "Want to trade it"
 	line "for my @"
-	text_from_ram wStringBuffer2
+	text_ram wStringBuffer2
 	text "?"
 	done
 
@@ -1465,7 +1487,7 @@
 UnknownText_0x1bd696::
 	text "That's not"
 	line "@"
-	text_from_ram wStringBuffer1
+	text_ram wStringBuffer1
 	text "."
 
 	para "Please trade with"
@@ -1476,7 +1498,7 @@
 	text "Wow! Thank you!"
 	line "I always wanted"
 	cont "@"
-	text_from_ram wMonOrItemNameBuffer
+	text_ram wMonOrItemNameBuffer
 	text "!"
 	done
 
@@ -1483,12 +1505,12 @@
 UnknownText_0x1bd6f5::
 	text "How is that"
 	line "@"
-	text_from_ram wStringBuffer2
+	text_ram wStringBuffer2
 	text " I"
 	cont "traded you doing?"
 
 	para "Your @"
-	text_from_ram wMonOrItemNameBuffer
+	text_ram wMonOrItemNameBuffer
 	text "'s"
 	line "so cute!"
 	done
@@ -1709,7 +1731,7 @@
 UnknownText_0x1bdd30::
 	text "OK. I'll raise"
 	line "your @"
-	text_from_ram wStringBuffer1
+	text_ram wStringBuffer1
 	text "."
 	prompt
 
@@ -1722,25 +1744,25 @@
 	text "Are we geniuses or"
 	line "what? Want to see"
 	cont "your @"
-	text_from_ram wStringBuffer1
+	text_ram wStringBuffer1
 	text "?"
 	done
 
 UnknownText_0x1bdd96::
 	text "Your @"
-	text_from_ram wStringBuffer1
+	text_ram wStringBuffer1
 	text_start
 	line "has grown a lot."
 
 	para "By level, it's"
 	line "grown by @"
-	deciram wStringBuffer2 + 1, 1, 3
+	text_decimal wStringBuffer2 + 1, 1, 3
 	text "."
 
 	para "If you want your"
 	line "#MON back, it"
 	cont "will cost ¥@"
-	deciram wStringBuffer2 + 2, 3, 4
+	text_decimal wStringBuffer2 + 2, 3, 4
 	text "."
 	done
 
@@ -1752,7 +1774,7 @@
 UnknownText_0x1bde1f::
 	text "<PLAYER> got back"
 	line "@"
-	text_from_ram wStringBuffer1
+	text_ram wStringBuffer1
 	text "."
 	prompt
 
@@ -1759,7 +1781,7 @@
 UnknownText_0x1bde32::
 	text "Huh? Back already?"
 	line "Your @"
-	text_from_ram wStringBuffer1
+	text_ram wStringBuffer1
 	text_start
 	para "needs a little"
 	line "more time with us."
--- a/data/text/common_2.asm
+++ b/data/text/common_2.asm
@@ -27,7 +27,7 @@
 
 UnknownText_0x1c00cd::
 	text "Hm… @"
-	text_from_ram wStringBuffer1
+	text_ram wStringBuffer1
 	text "…"
 	line "That's a fairly"
 	cont "decent name."
@@ -60,13 +60,13 @@
 
 UnknownText_0x1c01be::
 	text "Hm… @"
-	text_from_ram wStringBuffer1
+	text_ram wStringBuffer1
 	text "?"
 	line "What a great name!"
 	cont "It's perfect."
 
 	para "Treat @"
-	text_from_ram wStringBuffer1
+	text_ram wStringBuffer1
 	text_start
 	line "with loving care."
 	done
@@ -90,19 +90,20 @@
 	text "All right. This"
 	line "#MON is now"
 	cont "named @"
-	text_from_ram wStringBuffer1
+	text_ram wStringBuffer1
 	text "."
 	prompt
 
 Text_Gained::
-	text_from_ram wStringBuffer1
-	text " gained@@"
+	text_ram wStringBuffer1
+	text " gained@"
+	text_end
 
 Text_ABoostedStringBuffer2ExpPoints::
 	text_start
 	line "a boosted"
 	cont "@"
-	deciram wStringBuffer2, 2, 4
+	text_decimal wStringBuffer2, 2, 4
 	text " EXP. Points!"
 	prompt
 
@@ -109,44 +110,52 @@
 Text_StringBuffer2ExpPoints::
 	text_start
 	line "@"
-	deciram wStringBuffer2, 2, 4
+	text_decimal wStringBuffer2, 2, 4
 	text " EXP. Points!"
 	prompt
 
 Text_GoMon::
-	text "Go! @@"
+	text "Go! @"
+	text_end
 
 Text_DoItMon::
-	text "Do it! @@"
+	text "Do it! @"
+	text_end
 
 Text_GoForItMon::
 	text "Go for it,"
-	line "@@"
+	line "@"
+	text_end
 
 Text_YourFoesWeakGetmMon::
 	text "Your foe's weak!"
-	line "Get'm, @@"
+	line "Get'm, @"
+	text_end
 
 Text_BattleMonNick01::
-	text_from_ram wBattleMonNick
+	text_ram wBattleMonNick
 	text "!"
 	done
 
 Text_BattleMonNickComma::
-	text_from_ram wBattleMonNick
-	text ",@@"
+	text_ram wBattleMonNick
+	text ",@"
+	text_end
 
 Text_ThatsEnoughComeBack::
 	text " that's"
-	line "enough! Come back!@@"
+	line "enough! Come back!@"
+	text_end
 
 Text_OKComeBack::
 	text " OK!"
-	line "Come back!@@"
+	line "Come back!@"
+	text_end
 
 Text_GoodComeBack::
 	text " good!"
-	line "Come back!@@"
+	line "Come back!@"
+	text_end
 
 Text_ComeBack::
 	text " come"
@@ -164,26 +173,26 @@
 UnknownText_0x1c0396::
 	text "It contained"
 	line "@"
-	text_from_ram wStringBuffer2
+	text_ram wStringBuffer2
 	text "."
 
 	para "Teach @"
-	text_from_ram wStringBuffer2
+	text_ram wStringBuffer2
 	text_start
 	line "to a #MON?"
 	done
 
 UnknownText_0x1c03c2::
-	text_from_ram wStringBuffer2
+	text_ram wStringBuffer2
 	text " is"
 	line "not compatible"
 	cont "with @"
-	text_from_ram wStringBuffer1
+	text_ram wStringBuffer1
 	text "."
 
 	para "It can't learn"
 	line "@"
-	text_from_ram wStringBuffer2
+	text_ram wStringBuffer2
 	text "."
 	prompt
 
@@ -191,7 +200,7 @@
 	text "You have no room"
 	line "for any more"
 	cont "@"
-	text_from_ram wStringBuffer1
+	text_ram wStringBuffer1
 	text "S."
 	prompt
 
@@ -198,7 +207,7 @@
 UnknownText_0x1c0421::
 	text "You received"
 	line "@"
-	text_from_ram wStringBuffer1
+	text_ram wStringBuffer1
 	text "!"
 	prompt
 
@@ -233,21 +242,21 @@
 	prompt
 
 UnknownText_0x1c04e9::
-	text_from_ram wMysteryGiftPartnerName
+	text_ram wMysteryGiftPartnerName
 	text " sent"
 	line "@"
-	text_from_ram wStringBuffer1
+	text_ram wStringBuffer1
 	text "."
 	prompt
 
 UnknownText_0x1c04fa::
-	text_from_ram wMysteryGiftPartnerName
+	text_ram wMysteryGiftPartnerName
 	text " sent"
 	line "@"
-	text_from_ram wStringBuffer1
+	text_ram wStringBuffer1
 	text_start
 	cont "to @"
-	text_from_ram wMysteryGiftPlayerName
+	text_ram wMysteryGiftPlayerName
 	text "'s home."
 	prompt
 
@@ -254,15 +263,15 @@
 UnknownText_0x1c051a::
 	text "Received"
 	line "@"
-	text_from_ram wc850
+	text_ram wc850
 	text "'s CARD."
 	prompt
 
 UnknownText_0x1c0531::
-	text_from_ram wc850
+	text_ram wc850
 	text "'s CARD was"
 	line "listed as no.@"
-	deciram wDeciramBuffer, 1, 2
+	text_decimal wDeciramBuffer, 1, 2
 	text "."
 	prompt
 
@@ -292,7 +301,7 @@
 	prompt
 
 UnknownText_0x1c05dd::
-	text_from_ram wStringBuffer2
+	text_ram wStringBuffer2
 	text " used"
 	line "CUT!"
 	prompt
@@ -306,10 +315,12 @@
 	text "A blinding FLASH"
 	line "lights the area!@"
 	text_waitbutton
-	db "@@"
+	text_end
 
+	text_end ; unused
+
 _UsedSurfText::
-	text_from_ram wStringBuffer2
+	text_ram wStringBuffer2
 	text " used"
 	line "SURF!"
 	done
@@ -330,7 +341,7 @@
 	done
 
 UnknownText_0x1c068e::
-	text_from_ram wStringBuffer2
+	text_ram wStringBuffer2
 	text " used"
 	line "WATERFALL!"
 	done
@@ -346,7 +357,7 @@
 	done
 
 UnknownText_0x1c06de::
-	text_from_ram wStringBuffer2
+	text_ram wStringBuffer2
 	text " used"
 	line "DIG!"
 	done
@@ -379,13 +390,13 @@
 	prompt
 
 UnknownText_0x1c0774::
-	text_from_ram wStringBuffer2
+	text_ram wStringBuffer2
 	text " used"
 	line "STRENGTH!"
 	done
 
 UnknownText_0x1c0788::
-	text_from_ram wStringBuffer1
+	text_ram wStringBuffer1
 	text " can"
 	line "move boulders."
 	prompt
@@ -409,7 +420,7 @@
 	done
 
 UnknownText_0x1c0816::
-	text_from_ram wStringBuffer2
+	text_ram wStringBuffer2
 	text " used"
 	line "WHIRLPOOL!"
 	prompt
@@ -431,7 +442,7 @@
 	done
 
 UnknownText_0x1c0897::
-	text_from_ram wStringBuffer2
+	text_ram wStringBuffer2
 	text " did a"
 	line "HEADBUTT!"
 	prompt
@@ -449,7 +460,7 @@
 	done
 
 UnknownText_0x1c08f0::
-	text_from_ram wStringBuffer2
+	text_ram wStringBuffer2
 	text " used"
 	line "ROCK SMASH!"
 	prompt
@@ -489,7 +500,7 @@
 UnknownText_0x1c09b2::
 	text "<PLAYER> got on the"
 	line "@"
-	text_from_ram wStringBuffer2
+	text_ram wStringBuffer2
 	text "."
 	done
 
@@ -496,7 +507,7 @@
 UnknownText_0x1c09c7::
 	text "<PLAYER> got off"
 	line "the @"
-	text_from_ram wStringBuffer2
+	text_ram wStringBuffer2
 	text "."
 	done
 
@@ -515,7 +526,7 @@
 UnknownText_0x1c0a1c::
 	text "<PLAYER> found"
 	line "@"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "!"
 	done
 
@@ -545,7 +556,7 @@
 	prompt
 
 UnknownText_0x1c0acc::
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text_start
 	line "fainted!"
 	prompt
@@ -559,7 +570,7 @@
 	prompt
 
 UnknownText_0x1c0b03::
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text " used"
 	line "SWEET SCENT!"
 	done
@@ -598,10 +609,10 @@
 
 UnknownText_0x1c0bbb::
 	text "Throw away @"
-	deciram wItemQuantityChangeBuffer, 1, 2
+	text_decimal wItemQuantityChangeBuffer, 1, 2
 	text_start
 	line "@"
-	text_from_ram wStringBuffer2
+	text_ram wStringBuffer2
 	text "(S)?"
 	done
 
@@ -608,7 +619,7 @@
 UnknownText_0x1c0bd8::
 	text "Threw away"
 	line "@"
-	text_from_ram wStringBuffer2
+	text_ram wStringBuffer2
 	text "(S)."
 	prompt
 
@@ -626,7 +637,7 @@
 UnknownText_0x1c0c2e::
 	text "Registered the"
 	line "@"
-	text_from_ram wStringBuffer2
+	text_ram wStringBuffer2
 	text "."
 	prompt
 
@@ -657,11 +668,13 @@
 UnknownText_0x1c0cc6::
 	text "<USER>'s"
 	line "@"
-	text_from_ram wStringBuffer2
-	db "@@"
+	text_ram wStringBuffer2
+	text_end
 
+	text_end ; unused
+
 UnknownText_0x1c0cd0::
-	interpret_data
+	text_pause
 	text "<SCROLL>went way up!"
 	prompt
 
@@ -672,11 +685,13 @@
 UnknownText_0x1c0ceb::
 	text "<TARGET>'s"
 	line "@"
-	text_from_ram wStringBuffer2
-	db "@@"
+	text_ram wStringBuffer2
+	text_end
 
+	text_end ; unused
+
 UnknownText_0x1c0cf5::
-	interpret_data
+	text_pause
 	text "<SCROLL>sharply fell!"
 	prompt
 
@@ -685,7 +700,8 @@
 	prompt
 
 UnknownText_0x1c0d0e::
-	text "<USER>@@"
+	text "<USER>@"
+	text_end
 
 UnknownText_0x1c0d12::
 	text_start
@@ -718,24 +734,30 @@
 	prompt
 
 _ActorNameText::
-	text "<USER>@@"
+	text "<USER>@"
+	text_end
 
 _UsedMove1Text::
 	text_start
-	line "used @@"
+	line "used @"
+	text_end
 
 _UsedMove2Text::
 	text_start
-	line "used @@"
+	line "used @"
+	text_end
 
 _UsedInsteadText::
 	text "instead,"
-	cont "@@"
+	cont "@"
+	text_end
 
 _MoveNameText::
-	text_from_ram wStringBuffer2
-	db "@@"
+	text_ram wStringBuffer2
+	text_end
 
+	text_end ; unused
+
 _EndUsedMove1Text::
 	text "!"
 	done
@@ -759,7 +781,8 @@
 UnknownText_0x1c0db0::
 	text "Huh?"
 
-	para "@@"
+	para "@"
+	text_end
 
 UnknownText_0x1c0db8::
 	text_start
@@ -766,23 +789,25 @@
 	done
 
 UnknownText_0x1c0dba::
-	text_from_ram wStringBuffer1
+	text_ram wStringBuffer1
 	text " came"
 	line "out of its EGG!@"
 	sound_caught_mon
 	text_waitbutton
-	db "@@"
+	text_end
 
+	text_end ; unused
+
 UnknownText_0x1c0dd8::
 	text "Give a nickname to"
 	line "@"
-	text_from_ram wStringBuffer1
+	text_ram wStringBuffer1
 	text "?"
 	done
 
 UnknownText_0x1c0df3::
 	text "It's @"
-	text_from_ram wBreedMon2Nick
+	text_ram wBreedMon2Nick
 	text_start
 	line "that was left with"
 	cont "the DAY-CARE LADY."
@@ -790,7 +815,7 @@
 
 UnknownText_0x1c0e24::
 	text "It's @"
-	text_from_ram wBreedMon1
+	text_ram wBreedMon1
 	text_start
 	line "that was left with"
 	cont "the DAY-CARE MAN."
@@ -804,7 +829,7 @@
 UnknownText_0x1c0e6f::
 	text "It has no interest"
 	line "in @"
-	text_from_ram wStringBuffer1
+	text_ram wStringBuffer1
 	text "."
 	prompt
 
@@ -811,7 +836,7 @@
 UnknownText_0x1c0e8d::
 	text "It appears to care"
 	line "for @"
-	text_from_ram wStringBuffer1
+	text_ram wStringBuffer1
 	text "."
 	prompt
 
@@ -818,7 +843,7 @@
 UnknownText_0x1c0eac::
 	text "It's friendly with"
 	line "@"
-	text_from_ram wStringBuffer1
+	text_ram wStringBuffer1
 	text "."
 	prompt
 
@@ -825,7 +850,7 @@
 UnknownText_0x1c0ec6::
 	text "It shows interest"
 	line "in @"
-	text_from_ram wStringBuffer1
+	text_ram wStringBuffer1
 	text "."
 	prompt
 
@@ -872,20 +897,22 @@
 	prompt
 
 UnknownText_0x1c0fbc::
-	deciram wcf64, 1, 3
+	text_decimal wcf64, 1, 3
 	text " @"
-	text_from_ram wStringBuffer1
+	text_ram wStringBuffer1
 	text_start
 	line "Animation type @"
-	text_from_ram wStringBuffer2
-	db "@@"
+	text_ram wStringBuffer2
+	text_end
 
+	text_end ; unused
+
 UnknownText_0x1c0fdd::
 	text "#MON number?"
 	done
 
 Text_WasSentToBillsPC::
-	text_from_ram wStringBuffer1
+	text_ram wStringBuffer1
 	text " was"
 	line "sent to BILL's PC."
 	prompt
@@ -924,7 +951,7 @@
 
 UnknownText_0x1c10c0::
 	text "Caught @"
-	text_from_ram wStringBuffer1
+	text_ram wStringBuffer1
 	text "!"
 	prompt
 
@@ -935,7 +962,7 @@
 UnknownText_0x1c10dd::
 	text "You already caught"
 	line "a @"
-	text_from_ram wStringBuffer1
+	text_ram wStringBuffer1
 	text "."
 	prompt
 
@@ -942,16 +969,17 @@
 ContestJudging_FirstPlaceText::
 	text "This Bug-Catching"
 	line "Contest winner is@"
-	interpret_data
+	text_pause
 	text "…"
 
 	para "@"
-	text_from_ram wBugContestWinnerName
+	text_ram wBugContestWinnerName
 	text ","
 	line "who caught a"
 	cont "@"
-	text_from_ram wStringBuffer1
-	text "!@@"
+	text_ram wStringBuffer1
+	text "!@"
+	text_end
 
 ContestJudging_FirstPlaceScoreText::
 	text_start
@@ -958,7 +986,7 @@
 
 	para "The winning score"
 	line "was @"
-	deciram wBugContestFirstPlaceScore, 2, 3
+	text_decimal wBugContestFirstPlaceScore, 2, 3
 	text " points!"
 	prompt
 
@@ -965,13 +993,14 @@
 ContestJudging_SecondPlaceText::
 	text "Placing second was"
 	line "@"
-	text_from_ram wBugContestWinnerName
+	text_ram wBugContestWinnerName
 	text ","
 
 	para "who caught a"
 	line "@"
-	text_from_ram wStringBuffer1
-	text "!@@"
+	text_ram wStringBuffer1
+	text "!@"
+	text_end
 
 ContestJudging_SecondPlaceScoreText::
 	text_start
@@ -978,7 +1007,7 @@
 
 	para "The score was"
 	line "@"
-	deciram wBugContestSecondPlaceScore, 2, 3
+	text_decimal wBugContestSecondPlaceScore, 2, 3
 	text " points!"
 	prompt
 
@@ -985,13 +1014,14 @@
 ContestJudging_ThirdPlaceText::
 	text "Placing third was"
 	line "@"
-	text_from_ram wBugContestWinnerName
+	text_ram wBugContestWinnerName
 	text ","
 
 	para "who caught a"
 	line "@"
-	text_from_ram wStringBuffer1
-	text "!@@"
+	text_ram wStringBuffer1
+	text "!@"
+	text_end
 
 ContestJudging_ThirdPlaceScoreText::
 	text_start
@@ -998,7 +1028,7 @@
 
 	para "The score was"
 	line "@"
-	deciram wBugContestThirdPlaceScore, 2, 3
+	text_decimal wBugContestThirdPlaceScore, 2, 3
 	text " points!"
 	prompt
 
@@ -1008,7 +1038,7 @@
 
 	para "…Hm, it measures"
 	line "@"
-	text_from_ram wStringBuffer1
+	text_ram wStringBuffer1
 	text "."
 	prompt
 
@@ -1016,13 +1046,15 @@
 	text "CURRENT RECORD"
 
 	para "@"
-	text_from_ram wStringBuffer1
+	text_ram wStringBuffer1
 	text " caught by"
 	line "@"
-	text_from_ram wMagikarpRecordHoldersName
+	text_ram wMagikarpRecordHoldersName
 	text_waitbutton
-	db "@@"
+	text_end
 
+	text_end ; unused
+
 UnknownText_0x1c1261::
 	text "Congratulations!"
 
@@ -1030,7 +1062,7 @@
 	line "with the ID number"
 
 	para "of @"
-	text_from_ram wStringBuffer1
+	text_ram wStringBuffer1
 	text " in"
 	line "your party."
 	prompt
@@ -1042,7 +1074,7 @@
 	line "with the ID number"
 
 	para "of @"
-	text_from_ram wStringBuffer1
+	text_ram wStringBuffer1
 	text " in"
 	line "your PC BOX."
 	prompt
@@ -1050,7 +1082,7 @@
 UnknownText_0x1c12fc::
 	text "Give a nickname to"
 	line "the @"
-	text_from_ram wStringBuffer1
+	text_ram wStringBuffer1
 	text " you"
 	cont "received?"
 	done
@@ -1078,10 +1110,10 @@
 
 _PlayersPCWithdrewItemsText::
 	text "Withdrew @"
-	deciram wItemQuantityChangeBuffer, 1, 2
+	text_decimal wItemQuantityChangeBuffer, 1, 2
 	text_start
 	line "@"
-	text_from_ram wStringBuffer2
+	text_ram wStringBuffer2
 	text "(S)."
 	prompt
 
@@ -1101,10 +1133,10 @@
 
 _PlayersPCDepositItemsText::
 	text "Deposited @"
-	deciram wItemQuantityChangeBuffer, 1, 2
+	text_decimal wItemQuantityChangeBuffer, 1, 2
 	text_start
 	line "@"
-	text_from_ram wStringBuffer2
+	text_ram wStringBuffer2
 	text "(S)."
 	prompt
 
@@ -1161,10 +1193,10 @@
 	prompt
 
 _OakPCText3::
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text " #MON seen"
 	line "@"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text " #MON owned"
 
 	para "PROF.OAK's"
@@ -1352,16 +1384,16 @@
 UnknownText_0x1c1a90::
 	text "Toss out how many"
 	line "@"
-	text_from_ram wStringBuffer2
+	text_ram wStringBuffer2
 	text "(S)?"
 	done
 
 UnknownText_0x1c1aad::
 	text "Throw away @"
-	deciram wItemQuantityChangeBuffer, 1, 2
+	text_decimal wItemQuantityChangeBuffer, 1, 2
 	text_start
 	line "@"
-	text_from_ram wStringBuffer2
+	text_ram wStringBuffer2
 	text "(S)?"
 	done
 
@@ -1368,7 +1400,7 @@
 UnknownText_0x1c1aca::
 	text "Discarded"
 	line "@"
-	text_from_ram wStringBuffer1
+	text_ram wStringBuffer1
 	text "(S)."
 	prompt
 
@@ -1385,24 +1417,24 @@
 
 UnknownText_0x1c1b2c::
 	text "Took @"
-	text_from_ram wMonOrItemNameBuffer
+	text_ram wMonOrItemNameBuffer
 	text "'s"
 	line "@"
-	text_from_ram wStringBuffer1
+	text_ram wStringBuffer1
 	text " and"
 
 	para "made it hold"
 	line "@"
-	text_from_ram wStringBuffer2
+	text_ram wStringBuffer2
 	text "."
 	prompt
 
 UnknownText_0x1c1b57::
 	text "Made @"
-	text_from_ram wMonOrItemNameBuffer
+	text_ram wMonOrItemNameBuffer
 	text_start
 	line "hold @"
-	text_from_ram wStringBuffer2
+	text_ram wStringBuffer2
 	text "."
 	prompt
 
@@ -1412,7 +1444,7 @@
 	prompt
 
 UnknownText_0x1c1b8e::
-	text_from_ram wMonOrItemNameBuffer
+	text_ram wMonOrItemNameBuffer
 	text " isn't"
 	line "holding anything."
 	prompt
@@ -1424,20 +1456,20 @@
 
 UnknownText_0x1c1bc4::
 	text "Took @"
-	text_from_ram wStringBuffer1
+	text_ram wStringBuffer1
 	text_start
 	line "from @"
-	text_from_ram wMonOrItemNameBuffer
+	text_ram wMonOrItemNameBuffer
 	text "."
 	prompt
 
 UnknownText_0x1c1bdc::
-	text_from_ram wMonOrItemNameBuffer
+	text_ram wMonOrItemNameBuffer
 	text " is"
 	line "already holding"
 
 	para "@"
-	text_from_ram wStringBuffer1
+	text_ram wStringBuffer1
 	text "."
 	line "Switch items?"
 	done
@@ -1455,7 +1487,7 @@
 UnknownText_0x1c1c47::
 	text "MAIL detached from"
 	line "@"
-	text_from_ram wStringBuffer1
+	text_ram wStringBuffer1
 	text "."
 	prompt
 
@@ -1508,11 +1540,14 @@
 	text "This world is in-"
 	line "habited by crea-"
 	cont "tures that we call"
-	cont "#MON.@@"
+	cont "#MON.@"
+	text_end
 
 _OakText3::
 	text_waitbutton
-	db "@@"
+	text_end
+
+	text_end ; unused
 
 _OakText4::
 	text "People and #MON"
--- a/data/text/common_3.asm
+++ b/data/text/common_3.asm
@@ -65,7 +65,7 @@
 UnknownText_0x1c41e6::
 	text "Your friend's"
 	line "@"
-	text_from_ram wStringBuffer1
+	text_ram wStringBuffer1
 	text " appears"
 	cont "to be abnormal!"
 	prompt
@@ -72,10 +72,10 @@
 
 UnknownText_0x1c4212::
 	text "Trade @"
-	text_from_ram wd004
+	text_ram wd004
 	text_start
 	line "for @"
-	text_from_ram wStringBuffer1
+	text_ram wStringBuffer1
 	text "?"
 	done
 
@@ -124,7 +124,7 @@
 UnknownText_0x1c439c::
 	text "Today's remaining"
 	line "time is @"
-	deciram wStringBuffer2, 1, 2
+	text_decimal wStringBuffer2, 1, 2
 	text " min."
 
 	para "Would you like to"
@@ -133,7 +133,7 @@
 
 UnknownText_0x1c43dc::
 	text "There are only @"
-	deciram wStringBuffer2, 1, 2
+	text_decimal wStringBuffer2, 1, 2
 	text_start
 	line "min. left today."
 
@@ -180,7 +180,7 @@
 UnknownText_0x1c4525::
 	text "Today's remaining"
 	line "time is @"
-	deciram wStringBuffer2, 1, 2
+	text_decimal wStringBuffer2, 1, 2
 	text " min."
 	done
 
@@ -257,7 +257,7 @@
 UnknownText_0x1c4719::
 	text "<PLAYER> received"
 	line "@"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text "."
 	done
 
@@ -264,16 +264,16 @@
 UnknownText_0x1c472c::
 	text "<PLAYER> put the"
 	line "@"
-	text_from_ram wStringBuffer1
+	text_ram wStringBuffer1
 	text " in"
 	cont "the @"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "."
 	prompt
 
 UnknownText_0x1c474b::
 	text "The @"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text_start
 	line "is full…"
 	prompt
@@ -297,10 +297,10 @@
 UnknownText_0x1c47d4::
 	text "Hm… I see you met"
 	line "@"
-	text_from_ram wSeerNickname
+	text_ram wSeerNickname
 	text " here:"
 	cont "@"
-	text_from_ram wSeerCaughtLocation
+	text_ram wSeerCaughtLocation
 	text "!"
 	prompt
 
@@ -307,11 +307,11 @@
 UnknownText_0x1c47fa::
 	text "The time was"
 	line "@"
-	text_from_ram wSeerTimeOfDay
+	text_ram wSeerTimeOfDay
 	text "!"
 
 	para "Its level was @"
-	text_from_ram wSeerCaughtLevelString
+	text_ram wSeerCaughtLevelString
 	text "!"
 
 	para "Am I good or what?"
@@ -319,21 +319,21 @@
 
 UnknownText_0x1c4837::
 	text "Hm… @"
-	text_from_ram wSeerNickname
+	text_ram wSeerNickname
 	text_start
 	line "came from @"
-	text_from_ram wSeerOTName
+	text_ram wSeerOTName
 	text_start
 	cont "in a trade?"
 
 	para "@"
-	text_from_ram wSeerCaughtLocation
+	text_ram wSeerCaughtLocation
 	text_start
 	line "was where @"
-	text_from_ram wSeerOTName
+	text_ram wSeerOTName
 	text_start
 	cont "met @"
-	text_from_ram wSeerNickname
+	text_ram wSeerNickname
 	text "!"
 	prompt
 
@@ -349,7 +349,7 @@
 	para "I can't tell where"
 	line "you met it, but it"
 	cont "was at level @"
-	text_from_ram wSeerCaughtLevelString
+	text_ram wSeerCaughtLevelString
 	text "."
 
 	para "Am I good or what?"
@@ -386,7 +386,7 @@
 	line "grown a little."
 
 	para "@"
-	text_from_ram wSeerNickname
+	text_ram wSeerNickname
 	text " seems"
 	line "to be becoming"
 	cont "more confident."
@@ -396,7 +396,7 @@
 	text "Incidentally…"
 
 	para "@"
-	text_from_ram wSeerNickname
+	text_ram wSeerNickname
 	text " has"
 	line "grown. It's gained"
 	cont "much strength."
@@ -409,7 +409,7 @@
 	line "grown mighty!"
 
 	para "This @"
-	text_from_ram wSeerNickname
+	text_ram wSeerNickname
 	text_start
 	line "must have come"
 
@@ -432,12 +432,12 @@
 	para "seen a #MON as"
 	line "mighty as this"
 	cont "@"
-	text_from_ram wSeerNickname
+	text_ram wSeerNickname
 	text "."
 
 	para "I'm sure that"
 	line "seeing @"
-	text_from_ram wSeerNickname
+	text_ram wSeerNickname
 	text_start
 
 	para "in battle would"
@@ -447,21 +447,23 @@
 UnknownText_0x1c4b92::
 	text "Congratulations!"
 	line "Your @"
-	text_from_ram wStringBuffer2
-	db "@@"
+	text_ram wStringBuffer2
+	text_end
 
+	text_end ; unused
+
 UnknownText_0x1c4baf::
 	text_start
 
 	para "evolved into"
 	line "@"
-	text_from_ram wStringBuffer1
+	text_ram wStringBuffer1
 	text "!"
 	done
 
 UnknownText_0x1c4bc5::
 	text "Huh? @"
-	text_from_ram wStringBuffer2
+	text_ram wStringBuffer2
 	text_start
 	line "stopped evolving!"
 	prompt
@@ -468,7 +470,7 @@
 
 UnknownText_0x1c4be3::
 	text "What? @"
-	text_from_ram wStringBuffer2
+	text_ram wStringBuffer2
 	text_start
 	line "is evolving!"
 	done
@@ -478,12 +480,12 @@
 	done
 
 UnknownText_0x1c4c08::
-	deciram wItemQuantityChangeBuffer, 1, 2
+	text_decimal wItemQuantityChangeBuffer, 1, 2
 	text " @"
-	text_from_ram wStringBuffer2
+	text_ram wStringBuffer2
 	text "(S)"
 	line "will be ¥@"
-	deciram hMoneyTemp, 3, 6
+	text_decimal hMoneyTemp, 3, 6
 	text "."
 	done
 
@@ -507,12 +509,12 @@
 	done
 
 UnknownText_0x1c4cae::
-	deciram wItemQuantityChangeBuffer, 1, 2
+	text_decimal wItemQuantityChangeBuffer, 1, 2
 	text " @"
-	text_from_ram wStringBuffer2
+	text_ram wStringBuffer2
 	text "(S)"
 	line "will be ¥@"
-	deciram hMoneyTemp, 3, 6
+	text_decimal hMoneyTemp, 3, 6
 	text "."
 	done
 
@@ -548,10 +550,10 @@
 	done
 
 UnknownText_0x1c4db0::
-	text_from_ram wStringBuffer2
+	text_ram wStringBuffer2
 	text " costs"
 	line "¥@"
-	deciram hMoneyTemp, 3, 6
+	text_decimal hMoneyTemp, 3, 6
 	text ". Want it?"
 	done
 
@@ -590,12 +592,12 @@
 	done
 
 UnknownText_0x1c4e89::
-	deciram wItemQuantityChangeBuffer, 1, 2
+	text_decimal wItemQuantityChangeBuffer, 1, 2
 	text " @"
-	text_from_ram wStringBuffer2
+	text_ram wStringBuffer2
 	text "(S)"
 	line "will cost ¥@"
-	deciram hMoneyTemp, 3, 6
+	text_decimal hMoneyTemp, 3, 6
 	text "."
 	done
 
@@ -630,7 +632,7 @@
 UnknownText_0x1c4f3e::
 	text "I can pay you"
 	line "¥@"
-	deciram hMoneyTemp, 3, 6
+	text_decimal hMoneyTemp, 3, 6
 	text "."
 
 	para "Is that OK?"
@@ -672,10 +674,10 @@
 
 UnknownText_0x1c502e::
 	text "Got ¥@"
-	deciram hMoneyTemp, 3, 6
+	text_decimal hMoneyTemp, 3, 6
 	text " for"
 	line "@"
-	text_from_ram wStringBuffer2
+	text_ram wStringBuffer2
 	text "(S)."
 	done
 
@@ -705,7 +707,7 @@
 UnknownText_0x1c509f::
 	text "lined up!"
 	line "Won @"
-	text_from_ram wStringBuffer2
+	text_ram wStringBuffer2
 	text " coins!"
 	done
 
@@ -757,13 +759,13 @@
 	prompt
 
 UnknownText_0x1c51f4::
-	text_from_ram wMobileParticipant1Nickname
+	text_ram wMobileParticipant1Nickname
 	text ","
 	line "@"
-	text_from_ram wMobileParticipant2Nickname
+	text_ram wMobileParticipant2Nickname
 	text " and"
 	cont "@"
-	text_from_ram wMobileParticipant3Nickname
+	text_ram wMobileParticipant3Nickname
 	text "."
 
 	para "Use these three?"
@@ -932,15 +934,17 @@
 	done
 
 UnknownText_0x1c5660::
-	text_from_ram wMonOrItemNameBuffer
+	text_ram wMonOrItemNameBuffer
 	text " learned"
 	line "@"
-	text_from_ram wStringBuffer2
+	text_ram wStringBuffer2
 	text "!@"
 	sound_dex_fanfare_50_79
 	text_waitbutton
-	db "@@"
+	text_end
 
+	text_end ; unused
+
 UnknownText_0x1c5678::
 	text "Which move should"
 	next "be forgotten?"
@@ -949,29 +953,29 @@
 UnknownText_0x1c5699::
 	text "Stop learning"
 	line "@"
-	text_from_ram wStringBuffer2
+	text_ram wStringBuffer2
 	text "?"
 	done
 
 UnknownText_0x1c56af::
-	text_from_ram wMonOrItemNameBuffer
+	text_ram wMonOrItemNameBuffer
 	text_start
 	line "did not learn"
 	cont "@"
-	text_from_ram wStringBuffer2
+	text_ram wStringBuffer2
 	text "."
 	prompt
 
 UnknownText_0x1c56c9::
-	text_from_ram wMonOrItemNameBuffer
+	text_ram wMonOrItemNameBuffer
 	text " is"
 	line "trying to learn"
 	cont "@"
-	text_from_ram wStringBuffer2
+	text_ram wStringBuffer2
 	text "."
 
 	para "But @"
-	text_from_ram wMonOrItemNameBuffer
+	text_ram wMonOrItemNameBuffer
 	text_start
 	line "can't learn more"
 	cont "than four moves."
@@ -979,25 +983,27 @@
 	para "Delete an older"
 	line "move to make room"
 	cont "for @"
-	text_from_ram wStringBuffer2
+	text_ram wStringBuffer2
 	text "?"
 	done
 
 UnknownText_0x1c5740::
 	text "1, 2 and…@"
-	interpret_data
-	db "@@"
+	text_pause
+	text_end
 
+	text_end ; unused
+
 UnknownText_0x1c574e::
 	text " Poof!@"
-	interpret_data
+	text_pause
 	text_start
 
 	para "@"
-	text_from_ram wMonOrItemNameBuffer
+	text_ram wMonOrItemNameBuffer
 	text " forgot"
 	line "@"
-	text_from_ram wStringBuffer1
+	text_ram wStringBuffer1
 	text "."
 
 	para "And…"
@@ -1044,9 +1050,11 @@
 	done
 
 UnknownText_0x1c5821::
-	current_day
-	db "@@"
+	text_today
+	text_end
 
+	text_end ; unused
+
 UnknownText_0x1c5824::
 	text "<……>"
 	done
@@ -1077,7 +1085,7 @@
 	done
 
 UnknownText_0x1c58bc::
-	text_from_ram wStringBuffer1
+	text_ram wStringBuffer1
 	text "?"
 	line "Is that right?"
 	done
@@ -1148,7 +1156,7 @@
 
 Text_TheMonMustAllBeDifferentKinds::
 	text "The @"
-	text_from_ram wStringBuffer2
+	text_ram wStringBuffer2
 	text " #MON"
 	line "must all be"
 	cont "different kinds."
@@ -1158,7 +1166,7 @@
 
 Text_TheMonMustNotHoldTheSameItems::
 	text "The @"
-	text_from_ram wStringBuffer2
+	text_ram wStringBuffer2
 	text " #MON"
 	line "must not hold the"
 	cont "same items."
@@ -1208,43 +1216,49 @@
 
 UnknownText_0x1c5b17::
 	text "Gotcha! @"
-	text_from_ram wEnemyMonNick
+	text_ram wEnemyMonNick
 	text_start
 	line "was caught!@"
 	sound_caught_mon
-	db "@@"
+	text_end
 
+	text_end ; unused
+
 Text_Waitbutton_2::
 	text_waitbutton
-	db "@@"
+	text_end
 
+	text_end ; unused
+
 UnknownText_0x1c5b38::
-	text_from_ram wMonOrItemNameBuffer
+	text_ram wMonOrItemNameBuffer
 	text " was"
 	line "sent to BILL's PC."
 	prompt
 
 UnknownText_0x1c5b53::
-	text_from_ram wEnemyMonNick
+	text_ram wEnemyMonNick
 	text "'s data"
 	line "was newly added to"
 	cont "the #DEX.@"
 	sound_slot_machine_start
 	text_waitbutton
-	db "@@"
+	text_end
 
+	text_end ; unused
+
 UnknownText_0x1c5b7f::
 	text "Give a nickname to"
 	line "@"
-	text_from_ram wStringBuffer1
+	text_ram wStringBuffer1
 	text "?"
 	done
 
 UnknownText_0x1c5b9a::
-	text_from_ram wStringBuffer1
+	text_ram wStringBuffer1
 	text "'s"
 	line "@"
-	text_from_ram wStringBuffer2
+	text_ram wStringBuffer2
 	text " rose."
 	prompt
 
@@ -1276,12 +1290,14 @@
 	text "<PLAYER> played the"
 	line "# FLUTE.@"
 	text_waitbutton
-	db "@@"
+	text_end
 
+	text_end ; unused
+
 UnknownText_0x1c5c5e::
 	text "You now have"
 	line "@"
-	deciram wBlueCardBalance, 1, 2
+	text_decimal wBlueCardBalance, 1, 2
 	text " points."
 	done
 
@@ -1288,9 +1304,11 @@
 UnknownText_0x1c5c7b::
 	text "Coins:"
 	line "@"
-	deciram wCoins, 2, 4
-	db "@@"
+	text_decimal wCoins, 2, 4
+	text_end
 
+	text_end ; unused
+
 Text_RaiseThePPOfWhichMove::
 	text "Raise the PP of"
 	line "which move?"
@@ -1302,13 +1320,13 @@
 	done
 
 Text_PPIsMaxedOut::
-	text_from_ram wStringBuffer2
+	text_ram wStringBuffer2
 	text "'s PP"
 	line "is maxed out."
 	prompt
 
 Text_PPsIncreased::
-	text_from_ram wStringBuffer2
+	text_ram wStringBuffer2
 	text "'s PP"
 	line "increased."
 	prompt
@@ -1324,7 +1342,7 @@
 	text_start
 
 	para "@"
-	text_from_ram wPlayerName
+	text_ram wPlayerName
 	text " sent the"
 	line "trophy home."
 	prompt
@@ -1371,7 +1389,7 @@
 UnknownText_0x1c5e1d::
 	text "Can't get on your"
 	line "@"
-	text_from_ram wStringBuffer1
+	text_ram wStringBuffer1
 	text " now."
 	prompt
 
@@ -1384,7 +1402,7 @@
 UnknownText_0x1c5e68::
 	text "<PLAYER> used the@"
 	text_low
-	text_from_ram wStringBuffer2
+	text_ram wStringBuffer2
 	text "."
 	done
 
@@ -1391,7 +1409,7 @@
 UnknownText_0x1c5e7b::
 	text "<PLAYER> got on the@"
 	text_low
-	text_from_ram wStringBuffer2
+	text_ram wStringBuffer2
 	text "."
 	prompt
 
@@ -1399,15 +1417,15 @@
 	text "<PLAYER> got off@"
 	text_low
 	text "the @"
-	text_from_ram wStringBuffer2
+	text_ram wStringBuffer2
 	text "."
 	prompt
 
 UnknownText_0x1c5ea8::
-	text_from_ram wStringBuffer1
+	text_ram wStringBuffer1
 	text " knows"
 	line "@"
-	text_from_ram wStringBuffer2
+	text_ram wStringBuffer2
 	text "."
 	prompt
 
@@ -1419,7 +1437,7 @@
 UnknownText_0x1c5eda::
 	text "Oh, make it forget"
 	line "@"
-	text_from_ram wStringBuffer1
+	text_ram wStringBuffer1
 	text "?"
 	done
 
--- a/data/text/std_text.asm
+++ b/data/text/std_text.asm
@@ -231,11 +231,11 @@
 
 ContestResults_PlayerWonAPrizeText:
 	text "<PLAYER>, the No.@"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text_start
 	line "finisher, wins"
 	cont "@"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text "!"
 	done
 
@@ -242,7 +242,7 @@
 ReceivedItemText:
 	text "<PLAYER> received"
 	line "@"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text "."
 	done
 
@@ -279,7 +279,7 @@
 	done
 
 GymStatue_CityGymText:
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text_start
 	line "#MON GYM"
 	done
@@ -286,7 +286,7 @@
 
 GymStatue_WinningTrainersText:
 	text "LEADER: @"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text_start
 	para "WINNING TRAINERS:"
 	line "<PLAYER>"
@@ -376,7 +376,7 @@
 RegisteredNumber1Text:
 	text "<PLAYER> registered"
 	line "@"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "'s number."
 	done
 
@@ -383,6 +383,6 @@
 RegisteredNumber2Text:
 	text "<PLAYER> registered"
 	line "@"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "'s number."
 	done
--- a/docs/bugs_and_glitches.md
+++ b/docs/bugs_and_glitches.md
@@ -632,8 +632,8 @@
  	text_start
  	line "a boosted"
  	cont "@"
--	deciram wStringBuffer2, 2, 4
-+	deciram wStringBuffer2, 2, 5
+-	text_decimal wStringBuffer2, 2, 4
++	text_decimal wStringBuffer2, 2, 5
  	text " EXP. Points!"
  	prompt
 
@@ -640,8 +640,8 @@
  Text_StringBuffer2ExpPoints::
  	text_start
  	line "@"
--	deciram wStringBuffer2, 2, 4
-+	deciram wStringBuffer2, 2, 5
+-	text_decimal wStringBuffer2, 2, 4
++	text_decimal wStringBuffer2, 2, 5
  	text " EXP. Points!"
  	prompt
 ```
--- a/docs/text_commands.md
+++ b/docs/text_commands.md
@@ -3,48 +3,13 @@
 Defined in [macros/scripts/text.asm](/macros/scripts/text.asm) and [home/text.asm:TextCommands](/home/text.asm).
 
 
-## `$00`: <code>text <i>text</i></code>
+## `$00`: `text_start`
 
-Start writing text until `"@"`.
+Start writing text until `"@"`. The text can use [control characters](#control-characters).
 
 
-## `$4E`: <code>next <i>text</i></code>
+## `$01`: <code>text_ram <i>address</i></code>
 
-Move a line down.
-
-
-## `$4F`: <code>line <i>text</i></code>
-
-Start writing at the bottom line.
-
-
-## `$50`: <code>page <i>text</i></code>
-
-Start a new Pokédex page.
-
-
-## `$51`: <code>para <i>text</i></code>
-
-Start a new paragraph.
-
-
-## `$55`: <code>cont <i>text</i></code>
-
-Scroll to the next line.
-
-
-## `$57`: `done`
-
-End a text box.
-
-
-## `$58`: `prompt`
-
-Prompt the player to end a text box (initiating some other event).
-
-
-## `$01`: <code>text_from_ram <i>address</i></code>
-
 Write text from a RAM address.
 
 
@@ -81,19 +46,19 @@
 first character column of the text box.
 
 
-## `$08`: `start_asm`
+## `$08`: `text_asm`
 
 Start interpreting assembly code.
 
 
-## `$09`: <code>deciram <i>address</i>, <i>bytes</i>, <i>digits</i></code>
+## `$09`: <code>text_decimal <i>address</i>, <i>bytes</i>, <i>digits</i></code>
 
 Read *bytes* bytes from *address* and print them as a *digits*-digit number.
 
 
-## `$0A`: `interpret_data`
+## `$0A`: `text_pause`
 
-Exit.
+Pause for 30 frames unless A or B is pressed.
 
 
 ## `$0B`: `sound_dex_fanfare_50_79`
@@ -101,12 +66,12 @@
 Play `SFX_DEX_FANFARE_50_79`.
 
 
-## `$0C`: <code>limited_interpret_data <i>n</i></code>
+## `$0C`: <code>text_dots <i>n</i></code>
 
-Print *n* `"…"`s.
+Print *n* `"…"`s, pausing for 10 frames after each; interrupt if A or B is pressed.
 
 
-## `$0D`: `link_wait_button`
+## `$0D`: `text_linkwaitbutton`
 
 Wait for button press; show arrow.
 
@@ -154,7 +119,7 @@
 6. `BattleMonNick`
 
 
-## `$15`: `current_day`
+## `$15`: `text_today`
 
 Print the weekday.
 
@@ -164,6 +129,51 @@
 Write text from a different bank.
 
 
-## `$00`: `text_start`
+## `$50`: `text_end`
 
-Start writing regular text again after a special command.
+Stops processing text commands.
+
+
+# Control characters
+
+These get interpreted in the context of printing regular text. Macros exist to conveniently place the control characters.
+
+
+## `$00`: <code>text <i>text</i></code>
+
+Start writing text until `"@"`. (Not actually a control character, but shorter than `text_start` followed by `db`.)
+
+
+## `$4E`, `"<NEXT>"`: <code>next <i>text</i></code>
+
+Move a line down.
+
+
+## `$4F`, `"<LINE>"`: <code>line <i>text</i></code>
+
+Start writing at the bottom line.
+
+
+## `$50`, `"@"`: <code>page <i>text</i></code>
+
+Start a new Pokédex page.
+
+
+## `$51`, `"<PARA>"`: <code>para <i>text</i></code>
+
+Start a new paragraph.
+
+
+## `$55`, `"<CONT>"`: <code>cont <i>text</i></code>
+
+Scroll to the next line.
+
+
+## `$57`, `"<DONE>"`: `done`
+
+End a text box.
+
+
+## `$58`, `"<PROMPT>"`: `prompt`
+
+Prompt the player to end a text box (initiating some other event).
--- a/engine/battle/ai/items.asm
+++ b/engine/battle/ai/items.asm
@@ -709,7 +709,7 @@
 
 TextJump_EnemyWithdrew:
 	text_far Text_EnemyWithdrew
-	db "@"
+	text_end
 
 Function384d5: ; This appears to be unused
 	call AIUsedItemSound
@@ -829,4 +829,4 @@
 
 TextJump_EnemyUsedOn:
 	text_far Text_EnemyUsedOn
-	db "@"
+	text_end
--- a/engine/battle/core.asm
+++ b/engine/battle/core.asm
@@ -6864,9 +6864,10 @@
 EmptyBattleTextBox:
 	ld hl, .empty
 	jp BattleTextBox
-.empty
-	db "@"
 
+.empty:
+	text_end
+
 _BattleRandom::
 ; If the normal RNG is used in a link battle it'll desync.
 ; To circumvent this a shared PRNG is used instead.
@@ -7399,7 +7400,7 @@
 
 Text_MonGainedExpPoint:
 	text_far Text_Gained
-	start_asm
+	text_asm
 	ld hl, TextJump_StringBuffer2ExpPoints
 	ld a, [wStringBuffer2 + 2] ; IsTradedMon
 	and a
@@ -7410,11 +7411,11 @@
 
 TextJump_ABoostedStringBuffer2ExpPoints:
 	text_far Text_ABoostedStringBuffer2ExpPoints
-	db "@"
+	text_end
 
 TextJump_StringBuffer2ExpPoints:
 	text_far Text_StringBuffer2ExpPoints
-	db "@"
+	text_end
 
 AnimateExpBar:
 	push bc
@@ -7665,22 +7666,22 @@
 
 JumpText_GoMon:
 	text_far Text_GoMon
-	start_asm
+	text_asm
 	jr Function_TextJump_BattleMonNick01
 
 JumpText_DoItMon:
 	text_far Text_DoItMon
-	start_asm
+	text_asm
 	jr Function_TextJump_BattleMonNick01
 
 JumpText_GoForItMon:
 	text_far Text_GoForItMon
-	start_asm
+	text_asm
 	jr Function_TextJump_BattleMonNick01
 
 JumpText_YourFoesWeakGetmMon:
 	text_far Text_YourFoesWeakGetmMon
-	start_asm
+	text_asm
 Function_TextJump_BattleMonNick01:
 	ld hl, TextJump_BattleMonNick01
 	ret
@@ -7687,7 +7688,7 @@
 
 TextJump_BattleMonNick01:
 	text_far Text_BattleMonNick01
-	db "@"
+	text_end
 
 WithdrawMonText:
 	ld hl, .WithdrawMonText
@@ -7695,7 +7696,7 @@
 
 .WithdrawMonText:
 	text_far Text_BattleMonNickComma
-	start_asm
+	text_asm
 ; Print text to withdraw mon
 ; depending on HP the message is different
 	push de
@@ -7746,15 +7747,15 @@
 
 TextJump_ThatsEnoughComeBack:
 	text_far Text_ThatsEnoughComeBack
-	db "@"
+	text_end
 
 TextJump_OKComeBack:
 	text_far Text_OKComeBack
-	db "@"
+	text_end
 
 TextJump_GoodComeBack:
 	text_far Text_GoodComeBack
-	db "@"
+	text_end
 
 Unreferenced_TextJump_ComeBack:
 ; this function doesn't seem to be used
@@ -7763,7 +7764,7 @@
 
 TextJump_ComeBack:
 	text_far Text_ComeBack
-	db "@"
+	text_end
 
 Unreferenced_HandleSafariAngerEatingStatus:
 	ld hl, wSafariMonEating
--- a/engine/battle/effect_commands.asm
+++ b/engine/battle/effect_commands.asm
@@ -4543,7 +4543,7 @@
 
 .stat
 	text_far UnknownText_0x1c0cc6
-	start_asm
+	text_asm
 	ld hl, .up
 	ld a, [wLoweredStat]
 	and $f0
@@ -4553,11 +4553,11 @@
 
 .wayup
 	text_far UnknownText_0x1c0cd0
-	db "@"
+	text_end
 
 .up
 	text_far UnknownText_0x1c0ce0
-	db "@"
+	text_end
 
 BattleCommand_StatDownMessage:
 	ld a, [wFailedMessage]
@@ -4573,7 +4573,7 @@
 
 .stat
 	text_far UnknownText_0x1c0ceb
-	start_asm
+	text_asm
 	ld hl, .fell
 	ld a, [wLoweredStat]
 	and $f0
@@ -4583,10 +4583,11 @@
 
 .sharplyfell
 	text_far UnknownText_0x1c0cf5
-	db "@"
+	text_end
+
 .fell
 	text_far UnknownText_0x1c0d06
-	db "@"
+	text_end
 
 TryLowerStat:
 ; Lower stat c from stat struct hl (buffer de).
@@ -5637,7 +5638,7 @@
 
 .UsedText:
 	text_far UnknownText_0x1c0d0e ; "<USER>"
-	start_asm
+	text_asm
 	ld a, BATTLE_VARS_MOVE_ANIM
 	call GetBattleVar
 	cp RAZOR_WIND
@@ -5669,32 +5670,32 @@
 .RazorWind:
 ; 'made a whirlwind!'
 	text_far UnknownText_0x1c0d12
-	db "@"
+	text_end
 
 .Solarbeam:
 ; 'took in sunlight!'
 	text_far UnknownText_0x1c0d26
-	db "@"
+	text_end
 
 .SkullBash:
 ; 'lowered its head!'
 	text_far UnknownText_0x1c0d3a
-	db "@"
+	text_end
 
 .SkyAttack:
 ; 'is glowing!'
 	text_far UnknownText_0x1c0d4e
-	db "@"
+	text_end
 
 .Fly:
 ; 'flew up high!'
 	text_far UnknownText_0x1c0d5c
-	db "@"
+	text_end
 
 .Dig:
 ; 'dug a hole!'
 	text_far UnknownText_0x1c0d6c
-	db "@"
+	text_end
 
 BattleCommand3c:
 ; unused
@@ -6857,8 +6858,8 @@
 	ld hl, .text
 	jp BattleTextBox
 
-.text
-	db "@"
+.text:
+	text_end
 
 SkipToBattleCommand:
 ; Skip over commands until reaching command b.
--- a/engine/battle/menu.asm
+++ b/engine/battle/menu.asm
@@ -88,7 +88,7 @@
 
 Strings24f9a:
 	db "FIGHT@"
-	db "<PKMN>", "@"
+	db "<PKMN>@"
 	db "PARKBALL×  @"
 	db "RUN@"
 
--- a/engine/battle/used_move_text.asm
+++ b/engine/battle/used_move_text.asm
@@ -7,7 +7,7 @@
 UsedMoveText:
 ; this is a stream of text and asm from 105db9 to 105ef6
 	text_far _ActorNameText
-	start_asm
+	text_asm
 	ldh a, [hBattleTurn]
 	and a
 	jr nz, .start
@@ -59,12 +59,12 @@
 
 UsedMove1Text:
 	text_far _UsedMove1Text
-	start_asm
+	text_asm
 	jr UsedMoveText_CheckObedience
 
 UsedMove2Text:
 	text_far _UsedMove2Text
-	start_asm
+	text_asm
 UsedMoveText_CheckObedience:
 ; check obedience
 	ld a, [wAlreadyDisobeyed]
@@ -76,7 +76,7 @@
 
 .UsedInsteadText:
 	text_far _UsedInsteadText
-	start_asm
+	text_asm
 .GetMoveNameText:
 	ld hl, MoveNameText
 	ret
@@ -83,7 +83,7 @@
 
 MoveNameText:
 	text_far _MoveNameText
-	start_asm
+	text_asm
 ; get start address
 	ld hl, .endusedmovetexts
 
@@ -116,19 +116,23 @@
 
 EndUsedMove1Text:
 	text_far _EndUsedMove1Text
-	db "@"
+	text_end
+
 EndUsedMove2Text:
 	text_far _EndUsedMove2Text
-	db "@"
+	text_end
+
 EndUsedMove3Text:
 	text_far _EndUsedMove3Text
-	db "@"
+	text_end
+
 EndUsedMove4Text:
 	text_far _EndUsedMove4Text
-	db "@"
+	text_end
+
 EndUsedMove5Text:
 	text_far _EndUsedMove5Text
-	db "@"
+	text_end
 
 GetMoveGrammar:
 ; store move grammar type in wMoveGrammar
--- a/engine/events/battle_tower/rules.asm
+++ b/engine/events/battle_tower/rules.asm
@@ -23,7 +23,7 @@
 .ExcuseMeText:
 	; Excuse me!
 	text_far UnknownText_0x1c5937
-	db "@"
+	text_end
 
 _CheckForBattleTowerRules:
 	ld hl, wStringBuffer2
@@ -58,7 +58,7 @@
 JumpText_ExcuseMeYoureNotReady:
 	; Excuse me. You're not ready.
 	text_far Text_ExcuseMeYoureNotReady
-	db "@"
+	text_end
 
 BattleTower_PleaseReturnWhenReady:
 	ld hl, .PleaseReturnWhenReady
@@ -68,37 +68,37 @@
 .PleaseReturnWhenReady:
 	; Please return when you're ready.
 	text_far UnknownText_0x1c5962
-	db "@"
+	text_end
 
 JumpText_NeedAtLeastThreeMon:
 	; You need at least three #MON.
 	text_far UnknownText_0x1c5983
-	db "@"
+	text_end
 
 JumpText_EggDoesNotQualify:
 	; Sorry, an EGG doesn't qualify.
 	text_far UnknownText_0x1c59a3
-	db "@"
+	text_end
 
 JumpText_OnlyThreeMonMayBeEntered:
 	; Only three #MON may be entered.
 	text_far Text_OnlyThreeMonMayBeEntered
-	db "@"
+	text_end
 
 JumpText_TheMonMustAllBeDifferentKinds:
 	; The @  #MON must all be different kinds.
 	text_far Text_TheMonMustAllBeDifferentKinds
-	db "@"
+	text_end
 
 JumpText_TheMonMustNotHoldTheSameItems:
 	; The @  #MON must not hold the same items.
 	text_far Text_TheMonMustNotHoldTheSameItems
-	db "@"
+	text_end
 
 JumpText_YouCantTakeAnEgg:
 	; You can't take an EGG!
 	text_far Text_YouCantTakeAnEgg
-	db "@"
+	text_end
 
 BattleTower_ExecuteJumptable:
 	ld bc, 0
--- a/engine/events/battle_tower/trainer_text.asm
+++ b/engine/events/battle_tower/trainer_text.asm
@@ -232,480 +232,480 @@
 
 BTGreetingM1:
 	text_far BattleTowerText_0x1ec000
-	db "@"
+	text_end
 
 BTLossM1:
 	text_far BattleTowerText_0x1ec03b
-	db "@"
+	text_end
 
 BTWinM1:
 	text_far UnknownText_0x1ec060
-	db "@"
+	text_end
 
 BTGreetingM2:
 	text_far BattleTowerText_0x1ec080
-	db "@"
+	text_end
 
 BTLossM2:
 	text_far UnknownText_0x1ec0a3
-	db "@"
+	text_end
 
 BTWinM2:
 	text_far UnknownText_0x1ec0c4
-	db "@"
+	text_end
 
 BTGreetingM3:
 	text_far UnknownText_0x1ec0e1
-	db "@"
+	text_end
 
 BTLossM3:
 	text_far UnknownText_0x1ec108
-	db "@"
+	text_end
 
 BTWinM3:
 	text_far UnknownText_0x1ec12a
-	db "@"
+	text_end
 
 BTGreetingM4:
 	text_far UnknownText_0x1ec14d
-	db "@"
+	text_end
 
 BTLossM4:
 	text_far UnknownText_0x1ec16f
-	db "@"
+	text_end
 
 BTWinM4:
 	text_far UnknownText_0x1ec190
-	db "@"
+	text_end
 
 BTGreetingM5:
 	text_far UnknownText_0x1ec1ae
-	db "@"
+	text_end
 
 BTLossM5:
 	text_far UnknownText_0x1ec1d0
-	db "@"
+	text_end
 
 BTWinM5:
 	text_far UnknownText_0x1ec1f4
-	db "@"
+	text_end
 
 BTGreetingM6:
 	text_far UnknownText_0x1ec216
-	db "@"
+	text_end
 
 BTLossM6:
 	text_far UnknownText_0x1ec238
-	db "@"
+	text_end
 
 BTWinM6:
 	text_far UnknownText_0x1ec259
-	db "@"
+	text_end
 
 BTGreetingM7:
 	text_far UnknownText_0x1ec27b
-	db "@"
+	text_end
 
 BTLossM7:
 	text_far UnknownText_0x1ec2a0
-	db "@"
+	text_end
 
 BTWinM7:
 	text_far UnknownText_0x1ec2c0
-	db "@"
+	text_end
 
 BTGreetingM8:
 	text_far UnknownText_0x1ec2d9
-	db "@"
+	text_end
 
 BTLossM8:
 	text_far UnknownText_0x1ec2fe
-	db "@"
+	text_end
 
 BTWinM8:
 	text_far UnknownText_0x1ec320
-	db "@"
+	text_end
 
 BTGreetingM9:
 	text_far UnknownText_0x1ec33f
-	db "@"
+	text_end
 
 BTLossM9:
 	text_far UnknownText_0x1ec36c
-	db "@"
+	text_end
 
 BTWinM9:
 	text_far UnknownText_0x1ec389
-	db "@"
+	text_end
 
 BTGreetingM10:
 	text_far UnknownText_0x1ec3ad
-	db "@"
+	text_end
 
 BTLossM10:
 	text_far UnknownText_0x1ec3c5
-	db "@"
+	text_end
 
 BTWinM10:
 	text_far UnknownText_0x1ec3e5
-	db "@"
+	text_end
 
 BTGreetingM11:
 	text_far UnknownText_0x1ec402
-	db "@"
+	text_end
 
 BTLossM11:
 	text_far UnknownText_0x1ec411
-	db "@"
+	text_end
 
 BTWinM11:
 	text_far UnknownText_0x1ec41f
-	db "@"
+	text_end
 
 BTGreetingM12:
 	text_far UnknownText_0x1ec42e
-	db "@"
+	text_end
 
 BTLossM12:
 	text_far UnknownText_0x1ec461
-	db "@"
+	text_end
 
 BTWinM12:
 	text_far UnknownText_0x1ec4a0
-	db "@"
+	text_end
 
 BTGreetingM13:
 	text_far UnknownText_0x1ec4d6
-	db "@"
+	text_end
 
 BTLossM13:
 	text_far UnknownText_0x1ec4f5
-	db "@"
+	text_end
 
 BTWinM13:
 	text_far UnknownText_0x1ec512
-	db "@"
+	text_end
 
 BTGreetingM14:
 	text_far UnknownText_0x1ec532
-	db "@"
+	text_end
 
 BTLossM14:
 	text_far UnknownText_0x1ec54b
-	db "@"
+	text_end
 
 BTWinM14:
 	text_far UnknownText_0x1ec565
-	db "@"
+	text_end
 
 BTGreetingM15:
 	text_far UnknownText_0x1ec580
-	db "@"
+	text_end
 
 BTLossM15:
 	text_far UnknownText_0x1ec59d
-	db "@"
+	text_end
 
 BTWinM15:
 	text_far UnknownText_0x1ec5b5
-	db "@"
+	text_end
 
 BTGreetingM16:
 	text_far UnknownText_0x1ec5d3
-	db "@"
+	text_end
 
 BTLossM16:
 	text_far UnknownText_0x1ec5ee
-	db "@"
+	text_end
 
 BTWinM16:
 	text_far UnknownText_0x1ec60d
-	db "@"
+	text_end
 
 BTGreetingM17:
 	text_far UnknownText_0x1ec631
-	db "@"
+	text_end
 
 BTLossM17:
 	text_far UnknownText_0x1ec651
-	db "@"
+	text_end
 
 BTWinM17:
 	text_far UnknownText_0x1ec68f
-	db "@"
+	text_end
 
 BTGreetingM18:
 	text_far UnknownText_0x1ec6b1
-	db "@"
+	text_end
 
 BTLossM18:
 	text_far UnknownText_0x1ec6d0
-	db "@"
+	text_end
 
 BTWinM18:
 	text_far UnknownText_0x1ec708
-	db "@"
+	text_end
 
 BTGreetingM19:
 	text_far UnknownText_0x1ec720
-	db "@"
+	text_end
 
 BTLossM19:
 	text_far UnknownText_0x1ec73e
-	db "@"
+	text_end
 
 BTWinM19:
 	text_far UnknownText_0x1ec75b
-	db "@"
+	text_end
 
 BTGreetingM20:
 	text_far UnknownText_0x1ec77f
-	db "@"
+	text_end
 
 BTLossM20:
 	text_far UnknownText_0x1ec798
-	db "@"
+	text_end
 
 BTWinM20:
 	text_far UnknownText_0x1ec7bb
-	db "@"
+	text_end
 
 BTGreetingM21:
 	text_far UnknownText_0x1ec7d8
-	db "@"
+	text_end
 
 BTLossM21:
 	text_far UnknownText_0x1ec818
-	db "@"
+	text_end
 
 BTWinM21:
 	text_far UnknownText_0x1ec837
-	db "@"
+	text_end
 
 BTGreetingM22:
 	text_far UnknownText_0x1ec858
-	db "@"
+	text_end
 
 BTLossM22:
 	text_far UnknownText_0x1ec876
-	db "@"
+	text_end
 
 BTWinM22:
 	text_far UnknownText_0x1ec898
-	db "@"
+	text_end
 
 BTGreetingM23:
 	text_far UnknownText_0x1ec8b1
-	db "@"
+	text_end
 
 BTLossM23:
 	text_far UnknownText_0x1ec8d5
-	db "@"
+	text_end
 
 BTWinM23:
 	text_far UnknownText_0x1ec8f0
-	db "@"
+	text_end
 
 BTGreetingM24:
 	text_far UnknownText_0x1ec911
-	db "@"
+	text_end
 
 BTLossM24:
 	text_far UnknownText_0x1ec928
-	db "@"
+	text_end
 
 BTWinM24:
 	text_far UnknownText_0x1ec949
-	db "@"
+	text_end
 
 BTGreetingM25:
 	text_far UnknownText_0x1ec969
-	db "@"
+	text_end
 
 BTLossM25:
 	text_far UnknownText_0x1ec986
-	db "@"
+	text_end
 
 BTWinM25:
 	text_far UnknownText_0x1ec99b
-	db "@"
+	text_end
 
 BTGreetingF1:
 	text_far UnknownText_0x1ec9bd
-	db "@"
+	text_end
 
 BTLossF1:
 	text_far UnknownText_0x1ec9d9
-	db "@"
+	text_end
 
 BTWinF1:
 	text_far UnknownText_0x1ec9f7
-	db "@"
+	text_end
 
 BTGreetingF2:
 	text_far UnknownText_0x1eca0a
-	db "@"
+	text_end
 
 BTLossF2:
 	text_far UnknownText_0x1eca2a
-	db "@"
+	text_end
 
 BTWinF2:
 	text_far UnknownText_0x1eca47
-	db "@"
+	text_end
 
 BTGreetingF3:
 	text_far UnknownText_0x1eca64
-	db "@"
+	text_end
 
 BTLossF3:
 	text_far UnknownText_0x1eca82
-	db "@"
+	text_end
 
 BTWinF3:
 	text_far UnknownText_0x1eca9d
-	db "@"
+	text_end
 
 BTGreetingF4:
 	text_far UnknownText_0x1ecabf
-	db "@"
+	text_end
 
 BTLossF4:
 	text_far UnknownText_0x1ecade
-	db "@"
+	text_end
 
 BTWinF4:
 	text_far UnknownText_0x1ecafa
-	db "@"
+	text_end
 
 BTGreetingF5:
 	text_far UnknownText_0x1ecb19
-	db "@"
+	text_end
 
 BTLossF5:
 	text_far UnknownText_0x1ecb37
-	db "@"
+	text_end
 
 BTWinF5:
 	text_far UnknownText_0x1ecb55
-	db "@"
+	text_end
 
 BTGreetingF6:
 	text_far UnknownText_0x1ecb70
-	db "@"
+	text_end
 
 BTLossF6:
 	text_far UnknownText_0x1ecb92
-	db "@"
+	text_end
 
 BTWinF6:
 	text_far UnknownText_0x1ecbb6
-	db "@"
+	text_end
 
 BTGreetingF7:
 	text_far UnknownText_0x1ecbd9
-	db "@"
+	text_end
 
 BTLossF7:
 	text_far UnknownText_0x1ecbf3
-	db "@"
+	text_end
 
 BTWinF7:
 	text_far UnknownText_0x1ecc15
-	db "@"
+	text_end
 
 BTGreetingF8:
 	text_far UnknownText_0x1ecc39
-	db "@"
+	text_end
 
 BTLossF8:
 	text_far UnknownText_0x1ecc55
-	db "@"
+	text_end
 
 BTWinF8:
 	text_far UnknownText_0x1ecc75
-	db "@"
+	text_end
 
 BTGreetingF9:
 	text_far UnknownText_0x1ecc92
-	db "@"
+	text_end
 
 BTLossF9:
 	text_far UnknownText_0x1ecca7
-	db "@"
+	text_end
 
 BTWinF9:
 	text_far UnknownText_0x1eccc1
-	db "@"
+	text_end
 
 BTGreetingF10:
 	text_far UnknownText_0x1eccd7
-	db "@"
+	text_end
 
 BTLossF10:
 	text_far UnknownText_0x1eccef
-	db "@"
+	text_end
 
 BTWinF10:
 	text_far UnknownText_0x1ecd0e
-	db "@"
+	text_end
 
 BTGreetingF11:
 	text_far UnknownText_0x1ecd2b
-	db "@"
+	text_end
 
 BTLossF11:
 	text_far UnknownText_0x1ecd4d
-	db "@"
+	text_end
 
 BTWinF11:
 	text_far UnknownText_0x1ecd6b
-	db "@"
+	text_end
 
 BTGreetingF12:
 	text_far UnknownText_0x1ecd8d
-	db "@"
+	text_end
 
 BTLossF12:
 	text_far UnknownText_0x1ecdaf
-	db "@"
+	text_end
 
 BTWinF12:
 	text_far UnknownText_0x1ecdcf
-	db "@"
+	text_end
 
 BTGreetingF13:
 	text_far UnknownText_0x1ecded
-	db "@"
+	text_end
 
 BTLossF13:
 	text_far UnknownText_0x1ece0d
-	db "@"
+	text_end
 
 BTWinF13:
 	text_far UnknownText_0x1ece2a
-	db "@"
+	text_end
 
 BTGreetingF14:
 	text_far UnknownText_0x1ece4b
-	db "@"
+	text_end
 
 BTLossF14:
 	text_far UnknownText_0x1ece70
-	db "@"
+	text_end
 
 BTWinF14:
 	text_far UnknownText_0x1ece8a
-	db "@"
+	text_end
 
 BTGreetingF15:
 	text_far UnknownText_0x1ecea8
-	db "@"
+	text_end
 
 BTLossF15:
 	text_far UnknownText_0x1ecec9
-	db "@"
+	text_end
 
 BTWinF15:
 	text_far UnknownText_0x1ecee8
-	db "@"
+	text_end
--- a/engine/events/buena.asm
+++ b/engine/events/buena.asm
@@ -149,31 +149,32 @@
 .Text_AskWhichPrize:
 	; Which prize would you like?
 	text_far UnknownText_0x1c589f
-	db "@"
+	text_end
 
 .Text_IsThatRight:
 	; ? Is that right?
 	text_far UnknownText_0x1c58bc
-	db "@"
+	text_end
 
-.Text_HereYouGo:	; Here you go!
+.Text_HereYouGo:
+	; Here you go!
 	text_far UnknownText_0x1c58d1
-	db "@"
+	text_end
 
 .Text_NotEnoughPoints:
 	; You don't have enough points.
 	text_far UnknownText_0x1c58e0
-	db "@"
+	text_end
 
 .Text_NoRoom:
 	; You have no room for it.
 	text_far UnknownText_0x1c58ff
-	db "@"
+	text_end
 
 .Text_PleaseComeBackAgain:
 	; Oh. Please come back again!
 	text_far UnknownText_0x1c591a
-	db "@"
+	text_end
 
 Buena_DisplayBlueCardBalance:
 	ld hl, BlueCardBalanceMenuHeader
--- a/engine/events/bug_contest/caught_mon.asm
+++ b/engine/events/bug_contest/caught_mon.asm
@@ -35,4 +35,4 @@
 .caughttext
 	; Caught @ !
 	text_far UnknownText_0x1c10c0
-	db "@"
+	text_end
--- a/engine/events/bug_contest/contest.asm
+++ b/engine/events/bug_contest/contest.asm
@@ -35,9 +35,9 @@
 BugCatchingContestText_BeeepTimesUp:
 	; ANNOUNCER: BEEEP! Time's up!
 	text_far UnknownText_0x1bd2ca
-	db "@"
+	text_end
 
 BugCatchingContestText_ContestIsOver:
 	; ANNOUNCER: The Contest is over!
 	text_far UnknownText_0x1bd2e7
-	db "@"
+	text_end
--- a/engine/events/bug_contest/display_stats.asm
+++ b/engine/events/bug_contest/display_stats.asm
@@ -89,7 +89,7 @@
 SwitchMonText:
 	; Switch #MON?
 	text_far UnknownText_0x1c10cf
-	db "@"
+	text_end
 
 DisplayAlreadyCaughtText:
 	call GetPokemonName
@@ -99,7 +99,7 @@
 .AlreadyCaughtText:
 	; You already caught a @ .
 	text_far UnknownText_0x1c10dd
-	db "@"
+	text_end
 
 DummyPredef2F:
 DummyPredef38:
--- a/engine/events/bug_contest/judging.asm
+++ b/engine/events/bug_contest/judging.asm
@@ -27,7 +27,7 @@
 
 BugContest_FirstPlaceText:
 	text_far ContestJudging_FirstPlaceText
-	start_asm
+	text_asm
 	ld de, SFX_1ST_PLACE
 	call PlaySFX
 	call WaitSFX
@@ -37,12 +37,12 @@
 BugContest_FirstPlaceScoreText:
 	; The winning score was @  points!
 	text_far ContestJudging_FirstPlaceScoreText
-	db "@"
+	text_end
 
 BugContest_SecondPlaceText:
 	; Placing second was @ , who caught a @ !@ @
 	text_far ContestJudging_SecondPlaceText
-	start_asm
+	text_asm
 	ld de, SFX_2ND_PLACE
 	call PlaySFX
 	call WaitSFX
@@ -52,12 +52,12 @@
 BugContest_SecondPlaceScoreText:
 	; The score was @  points!
 	text_far ContestJudging_SecondPlaceScoreText
-	db "@"
+	text_end
 
 BugContest_ThirdPlaceText:
 	; Placing third was @ , who caught a @ !@ @
 	text_far ContestJudging_ThirdPlaceText
-	start_asm
+	text_asm
 	ld de, SFX_3RD_PLACE
 	call PlaySFX
 	call WaitSFX
@@ -67,7 +67,7 @@
 BugContest_ThirdPlaceScoreText:
 	; The score was @  points!
 	text_far ContestJudging_ThirdPlaceScoreText
-	db "@"
+	text_end
 
 LoadContestantName:
 ; If a = 1, get your name.
--- a/engine/events/daycare.asm
+++ b/engine/events/daycare.asm
@@ -169,7 +169,7 @@
 .DummyText:
 	;
 	text_far UnknownText_0x1bdaa7
-	db "@"
+	text_end
 
 DayCare_DepositPokemonText:
 	ld a, DAYCARETEXT_DEPOSIT
@@ -298,102 +298,102 @@
 .DayCareManIntro:
 	; I'm the DAY-CARE MAN. Want me to raise a #MON?
 	text_far UnknownText_0x1bdaa9
-	db "@"
+	text_end
 
 .DayCareManOddEgg:
 	; I'm the DAY-CARE MAN. Do you know about EGGS? I was raising #MON with my wife, you see. We were shocked to find an EGG! How incredible is that? So, want me to raise a #MON?
 	text_far UnknownText_0x1bdad8
-	db "@"
+	text_end
 
 .DayCareLadyIntro:
 	; I'm the DAY-CARE LADY. Should I raise a #MON for you?
 	text_far UnknownText_0x1bdb85
-	db "@"
+	text_end
 
 .DayCareLadyOddEgg:
 	; I'm the DAY-CARE LADY. Do you know about EGGS? My husband and I were raising some #MON, you see. We were shocked to find an EGG! How incredible could that be? Should I raise a #MON for you?
 	text_far UnknownText_0x1bdbbb
-	db "@"
+	text_end
 
 .WhichOne:
 	; What should I raise for you?
 	text_far UnknownText_0x1bdc79
-	db "@"
+	text_end
 
 .JustOneMon:
 	; Oh? But you have just one #MON.
 	text_far UnknownText_0x1bdc97
-	db "@"
+	text_end
 
 .CantAcceptEgg:
 	; Sorry, but I can't accept an EGG.
 	text_far UnknownText_0x1bdcb8
-	db "@"
+	text_end
 
 .RemoveMail:
 	; Remove MAIL before you come see me.
 	text_far UnknownText_0x1bdcda
-	db "@"
+	text_end
 
 .LastHealthyMon:
 	; If you give me that, what will you battle with?
 	text_far UnknownText_0x1bdcff
-	db "@"
+	text_end
 
 .OkayIllRaiseYourMon:
 	; OK. I'll raise your @ .
 	text_far UnknownText_0x1bdd30
-	db "@"
+	text_end
 
 .ComeBackForItLater:
 	; Come back for it later.
 	text_far UnknownText_0x1bdd4b
-	db "@"
+	text_end
 
 .AreWeGeniusesOrWhat:
 	; Are we geniuses or what? Want to see your @ ?
 	text_far UnknownText_0x1bdd64
-	db "@"
+	text_end
 
 .AskRetrieveMon:
 	; Your @ has grown a lot. By level, it's grown by @ . If you want your #MON back, it will cost ¥@ .
 	text_far UnknownText_0x1bdd96
-	db "@"
+	text_end
 
 .PerfectHeresYourMon:
 	; Perfect! Here's your #MON.
 	text_far UnknownText_0x1bde04
-	db "@"
+	text_end
 
 .GotBackMon:
 	; got back @ .
 	text_far UnknownText_0x1bde1f
-	db "@"
+	text_end
 
 .ImmediatelyWithdrawMon:
 	; Huh? Back already? Your @ needs a little more time with us. If you want your #MON back, it will cost ¥100.
 	text_far UnknownText_0x1bde32
-	db "@"
+	text_end
 
 .PartyFull:
 	; You have no room for it.
 	text_far UnknownText_0x1bdea2
-	db "@"
+	text_end
 
 .NotEnoughMoney:
 	; You don't have enough money.
 	text_far UnknownText_0x1bdebc
-	db "@"
+	text_end
 
 .OhFineThen:
 	; Oh, fine then.
 	text_far UnknownText_0x1bded9
-	db "@"
+	text_end
 
 .ComeAgain:
 	; Come again.
 	text_far UnknownText_0x1bdee9
-	db "@"
+	text_end
 
 DayCareManOutside:
 	ld hl, wDayCareMan
@@ -406,7 +406,7 @@
 .NotYet:
 	; Not yet…
 	text_far UnknownText_0x1bdef6
-	db "@"
+	text_end
 
 .AskGiveEgg:
 	ld hl, .IntroText
@@ -448,27 +448,27 @@
 .IntroText:
 	; Ah, it's you! We were raising your #MON, and my goodness, were we surprised! Your #MON had an EGG! We don't know how it got there, but your #MON had it. You want it?
 	text_far UnknownText_0x1bdf00
-	db "@"
+	text_end
 
 .GotEggText:
 	; received the EGG!
 	text_far UnknownText_0x1bdfa5
-	db "@"
+	text_end
 
 .TakeGoodCareOfItText:
 	; Take good care of it.
 	text_far UnknownText_0x1bdfba
-	db "@"
+	text_end
 
 .IllKeepItThanksText:
 	; Well then, I'll keep it. Thanks!
 	text_far UnknownText_0x1bdfd1
-	db "@"
+	text_end
 
 .PartyFullText:
 	; You have no room in your party. Come back later.
 	text_far UnknownText_0x1bdff2
-	db "@"
+	text_end
 
 DayCare_GiveEgg:
 	ld a, [wEggMonLevel]
--- a/engine/events/elevator.asm
+++ b/engine/events/elevator.asm
@@ -140,7 +140,7 @@
 Elevator_WhichFloorText:
 	; Which floor?
 	text_far UnknownText_0x1bd2bc
-	db "@"
+	text_end
 
 Elevator_GetCurrentFloorText:
 	ld hl, wOptions
--- a/engine/events/fruit_trees.asm
+++ b/engine/events/fruit_trees.asm
@@ -98,20 +98,20 @@
 
 FruitBearingTreeText:
 	text_far _FruitBearingTreeText
-	db "@"
+	text_end
 
 HeyItsFruitText:
 	text_far _HeyItsFruitText
-	db "@"
+	text_end
 
 ObtainedFruitText:
 	text_far _ObtainedFruitText
-	db "@"
+	text_end
 
 FruitPackIsFullText:
 	text_far _FruitPackIsFullText
-	db "@"
+	text_end
 
 NothingHereText:
 	text_far _NothingHereText
-	db "@"
+	text_end
--- a/engine/events/itemfinder.asm
+++ b/engine/events/itemfinder.asm
@@ -44,9 +44,9 @@
 .Text_FoundSomething:
 	; Yes! ITEMFINDER indicates there's an item nearby.
 	text_far UnknownText_0x1c0a77
-	db "@"
+	text_end
 
 .Text_FoundNothing:
 	; Nope! ITEMFINDER isn't responding.
 	text_far UnknownText_0x1c0aa9
-	db "@"
+	text_end
--- a/engine/events/kurt.asm
+++ b/engine/events/kurt.asm
@@ -6,7 +6,7 @@
 .Text:
 	; Which APRICORN should I use?
 	text_far UnknownText_0x1bc06b
-	db "@"
+	text_end
 
 Kurt_PrintTextHowMany:
 	ld hl, .Text
@@ -16,7 +16,7 @@
 .Text:
 	; How many should I make?
 	text_far UnknownText_0x1bc089
-	db "@"
+	text_end
 
 SelectApricornForKurt:
 	call LoadStandardMenuHeader
--- a/engine/events/lucky_number.asm
+++ b/engine/events/lucky_number.asm
@@ -209,12 +209,12 @@
 .FoundPartymonText:
 	; Congratulations! We have a match with the ID number of @  in your party.
 	text_far UnknownText_0x1c1261
-	db "@"
+	text_end
 
 .FoundBoxmonText:
 	; Congratulations! We have a match with the ID number of @  in your PC BOX.
 	text_far UnknownText_0x1c12ae
-	db "@"
+	text_end
 
 PrintTodaysLuckyNumber:
 	ld hl, wStringBuffer3
--- a/engine/events/magikarp.asm
+++ b/engine/events/magikarp.asm
@@ -74,7 +74,7 @@
 .MeasureItText:
 	; Let me measure that MAGIKARP. …Hm, it measures @ .
 	text_far UnknownText_0x1c1203
-	db "@"
+	text_end
 
 Magikarp_LoadFeetInchesChars:
 	ld hl, vTiles2 tile "′" ; $6e
@@ -314,4 +314,4 @@
 .CurrentRecordtext:
 	; "CURRENT RECORD"
 	text_far UnknownText_0x1c123a
-	db "@"
+	text_end
--- a/engine/events/misc_scripts.asm
+++ b/engine/events/misc_scripts.asm
@@ -30,12 +30,12 @@
 .text_found
 	; found @ !
 	text_far UnknownText_0x1c0a1c
-	db "@"
+	text_end
 
 .text_bag_full
 	; But   can't carry any more items.
 	text_far UnknownText_0x1c0a2c
-	db "@"
+	text_end
 
 .TryReceiveItem:
 	xor a
--- a/engine/events/misc_scripts_2.asm
+++ b/engine/events/misc_scripts_2.asm
@@ -8,7 +8,7 @@
 .text
 	; REPEL's effect wore off.
 	text_far UnknownText_0x1bd308
-	db "@"
+	text_end
 
 HiddenItemScript::
 	opentext
@@ -34,12 +34,12 @@
 .found_text
 	; found @ !
 	text_far UnknownText_0x1bd321
-	db "@"
+	text_end
 
 .no_room_text
 	; But   has no space left…
 	text_far UnknownText_0x1bd331
-	db "@"
+	text_end
 
 SetMemEvent:
 	ld hl, wEngineBuffer1
--- a/engine/events/mom.asm
+++ b/engine/events/mom.asm
@@ -392,33 +392,33 @@
 .Text_AdjustClock:
 	; Do you want to adjust your clock for Daylight Saving Time?
 	text_far UnknownText_0x1c6095
-	db "@"
+	text_end
 
 .Text_LostInstructionBooklet:
 	; I lost the instruction booklet for the POKéGEAR.
 	; Come back again in a while.
 	text_far UnknownText_0x1c60d1
-	db "@"
+	text_end
 
 .Text_SwitchToDST:
 	; Do you want to switch to Daylight Saving Time?
 	text_far UnknownText_0x1c6000
-	db "@"
+	text_end
 
 .Text_SetClockForward:
 	; I set the clock forward by one hour.
 	text_far UnknownText_0x1c6030
-	db "@"
+	text_end
 
 .Text_IsDSTOver:
 	; Is Daylight Saving Time over?
 	text_far UnknownText_0x1c6056
-	db "@"
+	text_end
 
 .Text_SetClockBack:
 	; I put the clock back one hour.
 	text_far UnknownText_0x1c6075
-	db "@"
+	text_end
 
 Mom_SetUpWithdrawMenu:
 	ld de, Mon_WithdrawString
@@ -593,82 +593,82 @@
 UnknownText_0x16649:
 	; Wow, that's a cute #MON. Where did you get it? … So, you're leaving on an adventure… OK! I'll help too. But what can I do for you? I know! I'll save money for you. On a long journey, money's important. Do you want me to save your money?
 	text_far UnknownText_0x1bd77f
-	db "@"
+	text_end
 
 UnknownText_0x1664e:
 	; OK, I'll take care of your money.
 	text_far UnknownText_0x1bd868
-	db "@"
+	text_end
 
 UnknownText_0x16653:
 	; Be careful. #MON are your friends. You need to work as a team. Now, go on!
 	text_far UnknownText_0x1bd88e
-	db "@"
+	text_end
 
 UnknownText_0x16658:
 	; Hi! Welcome home! You're trying very hard, I see. I've kept your room tidy. Or is this about your money?
 	text_far UnknownText_0x1bd8da
-	db "@"
+	text_end
 
 UnknownText_0x1665d:
 	; What do you want to do?
 	text_far UnknownText_0x1bd942
-	db "@"
+	text_end
 
 UnknownText_0x16662:
 	; How much do you want to save?
 	text_far UnknownText_0x1bd95b
-	db "@"
+	text_end
 
 UnknownText_0x16667:
 	; How much do you want to take?
 	text_far UnknownText_0x1bd97a
-	db "@"
+	text_end
 
 UnknownText_0x1666c:
 	; Do you want to save some money?
 	text_far UnknownText_0x1bd999
-	db "@"
+	text_end
 
 UnknownText_0x16671:
 	; You haven't saved that much.
 	text_far UnknownText_0x1bd9ba
-	db "@"
+	text_end
 
 UnknownText_0x16676:
 	; You can't take that much.
 	text_far UnknownText_0x1bd9d7
-	db "@"
+	text_end
 
 UnknownText_0x1667b:
 	; You don't have that much.
 	text_far UnknownText_0x1bd9f1
-	db "@"
+	text_end
 
 UnknownText_0x16680:
 	; You can't save that much.
 	text_far UnknownText_0x1bda0b
-	db "@"
+	text_end
 
 UnknownText_0x16685:
 	; OK, I'll save your money. Trust me! , stick with it!
 	text_far UnknownText_0x1bda25
-	db "@"
+	text_end
 
 UnknownText_0x1668a:
 	; Your money's safe here! Get going!
 	text_far UnknownText_0x1bda5b
-	db "@"
+	text_end
 
 UnknownText_0x1668f:
 	; , don't give up!
 	text_far UnknownText_0x1bda7e
-	db "@"
+	text_end
 
 UnknownText_0x16694:
 	; Just do what you can.
 	text_far UnknownText_0x1bda90
-	db "@"
+	text_end
 
 Mom_SavedString:
 	db "SAVED@"
--- a/engine/events/mom_phone.asm
+++ b/engine/events/mom_phone.asm
@@ -209,32 +209,32 @@
 _MomText_HiHowAreYou:
 	; Hi,  ! How are you?
 	text_far UnknownText_0x1bc615
-	db "@"
+	text_end
 
 _MomText_FoundAnItem:
 	; I found a useful item shopping, so
 	text_far UnknownText_0x1bc62a
-	db "@"
+	text_end
 
 _MomText_BoughtWithYourMoney:
 	; I bought it with your money. Sorry!
 	text_far UnknownText_0x1bc64e
-	db "@"
+	text_end
 
 _MomText_ItsInPC:
 	; It's in your PC. You'll like it!
 	text_far UnknownText_0x1bc673
-	db "@"
+	text_end
 
 _MomText_FoundADoll:
 	; While shopping today, I saw this adorable doll, so
 	text_far UnknownText_0x1bc693
-	db "@"
+	text_end
 
 _MomText_ItsInRoom:
 	; It's in your room. You'll love it!
 	text_far UnknownText_0x1bc6c7
-	db "@"
+	text_end
 
 	db 0 ; unused
 
--- a/engine/events/move_deleter.asm
+++ b/engine/events/move_deleter.asm
@@ -62,42 +62,42 @@
 .OnlyOneMoveText:
 	; That #MON knows only one move.
 	text_far UnknownText_0x1c5eba
-	db "@"
+	text_end
 
 .ConfirmDeleteText:
 	; Oh, make it forget @ ?
 	text_far UnknownText_0x1c5eda
-	db "@"
+	text_end
 
 .MoveDeletedText:
 	; Done! Your #MON forgot the move.
 	text_far UnknownText_0x1c5ef5
-	db "@"
+	text_end
 
 .EggText:
 	; An EGG doesn't know any moves!
 	text_far UnknownText_0x1c5f17
-	db "@"
+	text_end
 
 .DeclinedDeletionText:
 	; No? Come visit me again.
 	text_far UnknownText_0x1c5f36
-	db "@"
+	text_end
 
 .AskWhichMoveText:
 	; Which move should it forget, then?
 	text_far UnknownText_0x1c5f50
-	db "@"
+	text_end
 
 .IntroText:
 	; Um… Oh, yes, I'm the MOVE DELETER. I can make #MON forget moves. Shall I make a #MON forget?
 	text_far UnknownText_0x1c5f74
-	db "@"
+	text_end
 
 .AskWhichMonText:
 	; Which #MON?
 	text_far UnknownText_0x1c5fd1
-	db "@"
+	text_end
 
 .DeleteMove:
 	ld a, b
--- a/engine/events/name_rater.asm
+++ b/engine/events/name_rater.asm
@@ -183,12 +183,12 @@
 	; I rate the names of #MON.
 	; Would you like me to rate names?
 	text_far UnknownText_0x1c0043
-	db "@"
+	text_end
 
 NameRaterWhichMonText:
 	; Which #MON's nickname should I rate for you?
 	text_far UnknownText_0x1c00a0
-	db "@"
+	text_end
 
 NameRaterIsGoodText:
 	; Hm… @ … That's a fairly decent name.
@@ -195,41 +195,41 @@
 	; But, how about a slightly better nickname?
 	; Want me to give it a better name?
 	text_far UnknownText_0x1c00cd
-	db "@"
+	text_end
 
 NameRaterWhichNameText:
 	; All right. What name should we give it, then?
 	text_far UnknownText_0x1c0142
-	db "@"
+	text_end
 
 NameRaterEvenBetterText:
 	; That's a better name than before! Well done!
 	text_far UnknownText_0x1c0171
-	db "@"
+	text_end
 
 NameRaterCancelText:
 	; OK, then. Come again sometime.
 	text_far UnknownText_0x1c019e
-	db "@"
+	text_end
 
 NameRaterTradedText:
 	; Hm… @ ? What a great name! It's perfect.
 	; Treat @ with loving care.
 	text_far UnknownText_0x1c01be
-	db "@"
+	text_end
 
 NameRaterEggText:
 	; Whoa… That's just an EGG.
 	text_far UnknownText_0x1c0208
-	db "@"
+	text_end
 
 NameRaterSameAsBeforeText:
 	; It might look the different as before,
 	; but this new name is much better! Well done!
 	text_far UnknownText_0x1c0222
-	db "@"
+	text_end
 
 NameRaterDoneText:
 	; All right. This #MON is now named @ .
 	text_far UnknownText_0x1c0272
-	db "@"
+	text_end
--- a/engine/events/npc_trade.asm
+++ b/engine/events/npc_trade.asm
@@ -433,12 +433,12 @@
 ConnectLinkCableText:
 	; OK, connect the Game Link Cable.
 	text_far UnknownText_0x1bd407
-	db "@"
+	text_end
 
 TradedForText:
 	; traded givemon for getmon
 	text_far UnknownText_0x1bd429
-	start_asm
+	text_asm
 	ld de, MUSIC_NONE
 	call PlayMusic
 	call DelayFrame
@@ -447,94 +447,94 @@
 
 .done
 	; sound_dex_fanfare_80_109
-	; interpret_data
+	; text_pause
 	text_far UnknownText_0x1bd445
-	db "@"
+	text_end
 
 TradeIntroText1:
 	; I collect #MON. Do you have @ ? Want to trade it for my @ ?
 	text_far UnknownText_0x1bd449
-	db "@"
+	text_end
 
 TradeCancelText1:
 	; You don't want to trade? Aww…
 	text_far UnknownText_0x1bd48c
-	db "@"
+	text_end
 
 TradeWrongText1:
 	; Huh? That's not @ .  What a letdown…
 	text_far UnknownText_0x1bd4aa
-	db "@"
+	text_end
 
 TradeCompleteText1:
 	; Yay! I got myself @ ! Thanks!
 	text_far UnknownText_0x1bd4d2
-	db "@"
+	text_end
 
 TradeAfterText1:
 	; Hi, how's my old @  doing?
 	text_far UnknownText_0x1bd4f4
-	db "@"
+	text_end
 
 TradeIntroText2:
 TradeIntroText3:
 	; Hi, I'm looking for this #MON. If you have @ , would you trade it for my @ ?
 	text_far UnknownText_0x1bd512
-	db "@"
+	text_end
 
 TradeCancelText2:
 TradeCancelText3:
 	; You don't have one either? Gee, that's really disappointing…
 	text_far UnknownText_0x1bd565
-	db "@"
+	text_end
 
 TradeWrongText2:
 TradeWrongText3:
 	; You don't have @ ? That's too bad, then.
 	text_far UnknownText_0x1bd5a1
-	db "@"
+	text_end
 
 TradeCompleteText2:
 	; Great! Thank you! I finally got @ .
 	text_far UnknownText_0x1bd5cc
-	db "@"
+	text_end
 
 TradeAfterText2:
 	; Hi! The @ you traded me is doing great!
 	text_far UnknownText_0x1bd5f4
-	db "@"
+	text_end
 
 TradeIntroText4:
 	; 's cute, but I don't have it. Do you have @ ? Want to trade it for my @ ?
 	text_far UnknownText_0x1bd621
-	db "@"
+	text_end
 
 TradeCancelText4:
 	; You don't want to trade? Oh, darn…
 	text_far UnknownText_0x1bd673
-	db "@"
+	text_end
 
 TradeWrongText4:
 	; That's not @ . Please trade with me if you get one.
 	text_far UnknownText_0x1bd696
-	db "@"
+	text_end
 
 TradeCompleteText4:
 	; Wow! Thank you! I always wanted @ !
 	text_far UnknownText_0x1bd6cd
-	db "@"
+	text_end
 
 TradeAfterText4:
 	; How is that @  I traded you doing? Your @ 's so cute!
 	text_far UnknownText_0x1bd6f5
-	db "@"
+	text_end
 
 TradeCompleteText3:
 	; Uh? What happened?
 	text_far UnknownText_0x1bd731
-	db "@"
+	text_end
 
 TradeAfterText3:
 	; Trading is so odd… I still have a lot to learn about it.
 	text_far UnknownText_0x1bd745
-	db "@"
+	text_end
--- a/engine/events/overworld.asm
+++ b/engine/events/overworld.asm
@@ -61,7 +61,7 @@
 	; Sorry! A new BADGE
 	; is required.
 	text_far _BadgeRequiredText
-	db "@"
+	text_end
 
 CheckPartyMove:
 ; Check if a monster in your party has move d.
@@ -115,7 +115,7 @@
 .CantUseHere:
 	; Can't use that here.
 	text_far UnknownText_0x1c05c8
-	db "@"
+	text_end
 
 CutFunction:
 	call FieldMoveJumptableReset
@@ -164,12 +164,12 @@
 Text_UsedCut:
 	; used CUT!
 	text_far UnknownText_0x1c05dd
-	db "@"
+	text_end
 
 Text_NothingToCut:
 	; There's nothing to CUT here.
 	text_far UnknownText_0x1c05ec
-	db "@"
+	text_end
 
 CheckMapForSomethingToCut:
 	; Does the collision data of the facing tile permit cutting?
@@ -324,7 +324,7 @@
 
 UnknownText_0xc8f3:
 	text_far UnknownText_0x1c0609
-	start_asm
+	text_asm
 	call WaitSFX
 	ld de, SFX_FLASH
 	call PlaySFX
@@ -333,7 +333,7 @@
 	ret
 
 .BlankText:
-	db "@"
+	text_end
 
 SurfFunction:
 	call FieldMoveJumptableReset
@@ -430,15 +430,15 @@
 
 UsedSurfText:
 	text_far _UsedSurfText
-	db "@"
+	text_end
 
 CantSurfText:
 	text_far _CantSurfText
-	db "@"
+	text_end
 
 AlreadySurfingText:
 	text_far _AlreadySurfingText
-	db "@"
+	text_end
 
 GetSurfType:
 ; Surfing on Pikachu uses an alternate sprite.
@@ -545,8 +545,9 @@
 	end
 
 AskSurfText:
-	text_far _AskSurfText ; The water is calm.
-	db "@"              ; Want to SURF?
+	; The water is calm. Want to SURF?
+	text_far _AskSurfText
+	text_end
 
 FlyFunction:
 	call FieldMoveJumptableReset
@@ -710,7 +711,7 @@
 .Text_UsedWaterfall:
 	; used WATERFALL!
 	text_far UnknownText_0x1c068e
-	db "@"
+	text_end
 
 TryWaterfallOW::
 	ld d, WATERFALL
@@ -740,7 +741,7 @@
 .Text_CantDoWaterfall:
 	; Wow, it's a huge waterfall.
 	text_far UnknownText_0x1c06a3
-	db "@"
+	text_end
 
 Script_AskWaterfall:
 	opentext
@@ -753,7 +754,7 @@
 .AskUseWaterfall:
 	; Do you want to use WATERFALL?
 	text_far UnknownText_0x1c06bf
-	db "@"
+	text_end
 
 EscapeRopeFunction:
 	call FieldMoveJumptableReset
@@ -840,17 +841,17 @@
 .Text_UsedDig:
 	; used DIG!
 	text_far UnknownText_0x1c06de
-	db "@"
+	text_end
 
 .Text_UsedEscapeRope:
 	; used an ESCAPE ROPE.
 	text_far UnknownText_0x1c06ed
-	db "@"
+	text_end
 
 .Text_CantUseHere:
 	; Can't use that here.
 	text_far UnknownText_0x1c0705
-	db "@"
+	text_end
 
 .UsedEscapeRopeScript:
 	reloadmappart
@@ -939,12 +940,12 @@
 .Text_ReturnToLastMonCenter:
 	; Return to the last #MON CENTER.
 	text_far UnknownText_0x1c071a
-	db "@"
+	text_end
 
 .Text_CantUseHere:
 	; Can't use that here.
 	text_far UnknownText_0x1c073b
-	db "@"
+	text_end
 
 .TeleportScript:
 	reloadmappart
@@ -992,7 +993,7 @@
 
 .JumpText:
 	text_far UnknownText_0x1c0751
-	db "@"
+	text_end
 
 .Failed:
 	ld a, $80
@@ -1033,11 +1034,11 @@
 
 .UsedStrength:
 	text_far UnknownText_0x1c0774
-	db "@"
+	text_end
 
 .StrengthAllowedItToMoveBoulders:
 	text_far UnknownText_0x1c0788
-	db "@"
+	text_end
 
 AskStrengthScript:
 	callasm TryStrengthOW
@@ -1062,17 +1063,17 @@
 UnknownText_0xcd69:
 	; A #MON may be able to move this. Want to use STRENGTH?
 	text_far UnknownText_0x1c07a0
-	db "@"
+	text_end
 
 UnknownText_0xcd6e:
 	; Boulders may now be moved!
 	text_far UnknownText_0x1c07d8
-	db "@"
+	text_end
 
 UnknownText_0xcd73:
 	; A #MON may be able to move this.
 	text_far UnknownText_0x1c07f4
-	db "@"
+	text_end
 
 TryStrengthOW:
 	ld d, STRENGTH
@@ -1148,7 +1149,7 @@
 Text_UsedWhirlpool:
 	; used WHIRLPOOL!
 	text_far UnknownText_0x1c0816
-	db "@"
+	text_end
 
 TryWhirlpoolMenu:
 	call GetFacingTileCoord
@@ -1235,7 +1236,7 @@
 
 .MightyWhirlpoolText:
 	text_far UnknownText_0x1c082b
-	db "@"
+	text_end
 
 Script_AskWhirlpoolOW:
 	opentext
@@ -1247,7 +1248,7 @@
 
 UnknownText_0xce78:
 	text_far UnknownText_0x1c0864
-	db "@"
+	text_end
 
 HeadbuttFunction:
 	call TryHeadbuttFromMenu
@@ -1273,12 +1274,12 @@
 UnknownText_0xce9d:
 	; did a HEADBUTT!
 	text_far UnknownText_0x1c0897
-	db "@"
+	text_end
 
 UnknownText_0xcea2:
 	; Nope. Nothing…
 	text_far UnknownText_0x1c08ac
-	db "@"
+	text_end
 
 HeadbuttFromMenuScript:
 	reloadmappart
@@ -1331,7 +1332,7 @@
 UnknownText_0xcee6:
 	; A #MON could be in this tree. Want to HEADBUTT it?
 	text_far UnknownText_0x1c08bc
-	db "@"
+	text_end
 
 RockSmashFunction:
 	call TryRockSmashFromMenu
@@ -1407,7 +1408,7 @@
 
 UnknownText_0xcf58:
 	text_far UnknownText_0x1c08f0
-	db "@"
+	text_end
 
 AskRockSmashScript:
 	callasm HasRockSmash
@@ -1425,12 +1426,12 @@
 UnknownText_0xcf72:
 	; Maybe a #MON can break this.
 	text_far UnknownText_0x1c0906
-	db "@"
+	text_end
 
 UnknownText_0xcf77:
 	; This rock looks breakable. Want to use ROCK SMASH?
 	text_far UnknownText_0x1c0924
-	db "@"
+	text_end
 
 HasRockSmash:
 	ld d, ROCK_SMASH
@@ -1633,17 +1634,17 @@
 UnknownText_0xd0a4:
 	; Oh! A bite!
 	text_far UnknownText_0x1c0958
-	db "@"
+	text_end
 
 UnknownText_0xd0a9:
 	; Not even a nibble!
 	text_far UnknownText_0x1c0965
-	db "@"
+	text_end
 
 UnknownText_0xd0ae: ; unused
 	; Looks like there's nothing here.
 	text_far UnknownText_0x1c0979
-	db "@"
+	text_end
 
 BikeFunction:
 	call .TryBike
@@ -1777,17 +1778,17 @@
 .CantGetOffBikeText:
 	; You can't get off here!
 	text_far UnknownText_0x1c099a
-	db "@"
+	text_end
 
 GotOnTheBikeText:
 	; got on the @ .
 	text_far UnknownText_0x1c09b2
-	db "@"
+	text_end
 
 GotOffTheBikeText:
 	; got off the @ .
 	text_far UnknownText_0x1c09c7
-	db "@"
+	text_end
 
 TryCutOW::
 	ld d, CUT
@@ -1833,7 +1834,7 @@
 
 UnknownText_0xd1c8:
 	text_far UnknownText_0x1c09dd
-	db "@"
+	text_end
 
 CantCutScript:
 	jumptext UnknownText_0xd1d0
@@ -1840,4 +1841,4 @@
 
 UnknownText_0xd1d0:
 	text_far UnknownText_0x1c0a05
-	db "@"
+	text_end
--- a/engine/events/poisonstep.asm
+++ b/engine/events/poisonstep.asm
@@ -147,8 +147,8 @@
 
 .PoisonFaintText:
 	text_far UnknownText_0x1c0acc
-	db "@"
+	text_end
 
 .PoisonWhiteOutText:
 	text_far UnknownText_0x1c0ada
-	db "@"
+	text_end
--- a/engine/events/poke_seer.asm
+++ b/engine/events/poke_seer.asm
@@ -299,42 +299,42 @@
 SeerIntroText:
 	; I see all. I know all… Certainly, I know of your #MON!
 	text_far UnknownText_0x1c475f
-	db "@"
+	text_end
 
 SeerCantTellText:
 	; Whaaaat? I can't tell a thing! How could I not know of this?
 	text_far UnknownText_0x1c4797
-	db "@"
+	text_end
 
 SeerMetAtText:
 	; Hm… I see you met @  here: @ !
 	text_far UnknownText_0x1c47d4
-	db "@"
+	text_end
 
 SeerTimeLevelText:
 	; The time was @ ! Its level was @ ! Am I good or what?
 	text_far UnknownText_0x1c47fa
-	db "@"
+	text_end
 
 SeerTradedText:
 	; Hm… @ came from @ in a trade? @ was where @ met @ !
 	text_far UnknownText_0x1c4837
-	db "@"
+	text_end
 
 SeerLevelOnlyText:
 	; What!? Incredible! I don't understand how, but it is incredible! You are special. I can't tell where you met it, but it was at level @ . Am I good or what?
 	text_far UnknownText_0x1c487f
-	db "@"
+	text_end
 
 SeerEggText:
 	; Hey! That's an EGG! You can't say that you've met it yet…
 	text_far UnknownText_0x1c491d
-	db "@"
+	text_end
 
 SeerCancelText:
 	; Fufufu! I saw that you'd do nothing!
 	text_far UnknownText_0x1c4955
-	db "@"
+	text_end
 
 SeerAdvice:
 	ld a, MON_LEVEL
@@ -374,27 +374,27 @@
 SeerAdvice1:
 	; Incidentally… It would be wise to raise your #MON with a little more care.
 	text_far UnknownText_0x1c497a
-	db "@"
+	text_end
 
 SeerAdvice2:
 	; Incidentally… It seems to have grown a little. @  seems to be becoming more confident.
 	text_far UnknownText_0x1c49c6
-	db "@"
+	text_end
 
 SeerAdvice3:
 	; Incidentally… @  has grown. It's gained much strength.
 	text_far UnknownText_0x1c4a21
-	db "@"
+	text_end
 
 SeerAdvice4:
 	; Incidentally… It certainly has grown mighty! This @ must have come through numerous #MON battles. It looks brimming with confidence.
 	text_far UnknownText_0x1c4a5b
-	db "@"
+	text_end
 
 SeerAdvice5:
 	; Incidentally… I'm impressed by your dedication. It's been a long time since I've seen a #MON as mighty as this @ . I'm sure that seeing @ in battle would excite anyone.
 	text_far UnknownText_0x1c4ae5
-	db "@"
+	text_end
 
 GetCaughtGender:
 	ld hl, MON_CAUGHTGENDER
--- a/engine/events/pokecenter_pc.asm
+++ b/engine/events/pokecenter_pc.asm
@@ -112,7 +112,7 @@
 .MustHavePokemonToUse:
 	; Bzzzzt! You must have a #MON to use this!
 	text_far UnknownText_0x1c1328
-	db "@"
+	text_end
 
 BillsPC:
 	call PC_PlayChoosePCSound
@@ -202,7 +202,7 @@
 UnknownText_0x156ff:
 	; turned on the PC.
 	text_far UnknownText_0x1c1353
-	db "@"
+	text_end
 
 _PlayersPC:
 	ld a, b
@@ -306,7 +306,7 @@
 UnknownText_0x157cc:
 	; What do you want to do?
 	text_far UnknownText_0x1c1368
-	db "@"
+	text_end
 
 PlayerWithdrawItemMenu:
 	call LoadStandardMenuHeader
@@ -374,15 +374,15 @@
 
 .HowManyText:
 	text_far _PlayersPCHowManyWithdrawText
-	db "@"
+	text_end
 
 .WithdrewText:
 	text_far _PlayersPCWithdrewItemsText
-	db "@"
+	text_end
 
 .NoRoomText:
 	text_far _PlayersPCNoRoomWithdrawText
-	db "@"
+	text_end
 
 PlayerTossItemMenu:
 	call LoadStandardMenuHeader
@@ -445,7 +445,7 @@
 .NoItemsInBag:
 	; No items here!
 	text_far UnknownText_0x1c13df
-	db "@"
+	text_end
 
 .TryDepositItem:
 	ld a, [wSpriteUpdatesEnabled]
@@ -534,15 +534,15 @@
 
 .HowManyText:
 	text_far _PlayersPCHowManyDepositText
-	db "@"
+	text_end
 
 .DepositText:
 	text_far _PlayersPCDepositItemsText
-	db "@"
+	text_end
 
 .NoRoomText:
 	text_far _PlayersPCNoRoomDepositText
-	db "@"
+	text_end
 
 PlayerMailBoxMenu:
 	farcall _PlayerMailBoxMenu
@@ -641,29 +641,29 @@
 PokecenterPCText_BootedUpPC:
 	; turned on the PC.
 	text_far UnknownText_0x1c144d
-	db "@"
+	text_end
 
 PokecenterPCText_AccessWhosePC:
 	; Access whose PC?
 	text_far UnknownText_0x1c1462
-	db "@"
+	text_end
 
 PokecenterPCText_AccessedBillsPC:
 	; BILL's PC accessed. #MON Storage System opened.
 	text_far UnknownText_0x1c1474
-	db "@"
+	text_end
 
 PokecenterPCText_AccessedOwnPC:
 	; Accessed own PC. Item Storage System opened.
 	text_far UnknownText_0x1c14a4
-	db "@"
+	text_end
 
 PokecenterPCText_AccessedOaksPC:
 	; PROF.OAK's PC accessed. #DEX Rating System opened.
 	text_far UnknownText_0x1c14d2
-	db "@"
+	text_end
 
 PokecenterPCText_LinkClosed:
 	; … Link closed…
 	text_far UnknownText_0x1c1505
-	db "@"
+	text_end
--- a/engine/events/print_photo.asm
+++ b/engine/events/print_photo.asm
@@ -32,24 +32,24 @@
 .Text_AskWhichMon:
 	; Which #MON should I photo- graph?
 	text_far UnknownText_0x1be024
-	db "@"
+	text_end
 
 .Text_HoldStill:
 	; All righty. Hold still for a bit.
 	text_far UnknownText_0x1be047
-	db "@"
+	text_end
 
 .Text_Presto:
 	; Presto! All done. Come again, OK?
 	text_far UnknownText_0x1be06a
-	db "@"
+	text_end
 
 .Text_NoPicture:
 	; Oh, no picture? Come again, OK?
 	text_far UnknownText_0x1c0000
-	db "@"
+	text_end
 
 .Text_Egg:
 	; An EGG? My talent is worth more…
 	text_far UnknownText_0x1c0021
-	db "@"
+	text_end
--- a/engine/events/prof_oaks_pc.asm
+++ b/engine/events/prof_oaks_pc.asm
@@ -102,92 +102,92 @@
 
 OakPCText1:
 	text_far _OakPCText1
-	db "@"
+	text_end
 
 OakPCText2:
 	text_far _OakPCText2
-	db "@"
+	text_end
 
 OakPCText3:
 	text_far _OakPCText3
-	db "@"
+	text_end
 
 OakRating01:
 	text_far _OakRating01
-	db "@"
+	text_end
 
 OakRating02:
 	text_far _OakRating02
-	db "@"
+	text_end
 
 OakRating03:
 	text_far _OakRating03
-	db "@"
+	text_end
 
 OakRating04:
 	text_far _OakRating04
-	db "@"
+	text_end
 
 OakRating05:
 	text_far _OakRating05
-	db "@"
+	text_end
 
 OakRating06:
 	text_far _OakRating06
-	db "@"
+	text_end
 
 OakRating07:
 	text_far _OakRating07
-	db "@"
+	text_end
 
 OakRating08:
 	text_far _OakRating08
-	db "@"
+	text_end
 
 OakRating09:
 	text_far _OakRating09
-	db "@"
+	text_end
 
 OakRating10:
 	text_far _OakRating10
-	db "@"
+	text_end
 
 OakRating11:
 	text_far _OakRating11
-	db "@"
+	text_end
 
 OakRating12:
 	text_far _OakRating12
-	db "@"
+	text_end
 
 OakRating13:
 	text_far _OakRating13
-	db "@"
+	text_end
 
 OakRating14:
 	text_far _OakRating14
-	db "@"
+	text_end
 
 OakRating15:
 	text_far _OakRating15
-	db "@"
+	text_end
 
 OakRating16:
 	text_far _OakRating16
-	db "@"
+	text_end
 
 OakRating17:
 	text_far _OakRating17
-	db "@"
+	text_end
 
 OakRating18:
 	text_far _OakRating18
-	db "@"
+	text_end
 
 OakRating19:
 	text_far _OakRating19
-	db "@"
+	text_end
 
 OakPCText4:
 	text_far _OakPCText4
-	db "@"
+	text_end
--- a/engine/events/sacred_ash.asm
+++ b/engine/events/sacred_ash.asm
@@ -67,4 +67,4 @@
 UnknownText_0x50845:
 	; 's #MON were all healed!
 	text_far UnknownText_0x1c0b65
-	db "@"
+	text_end
--- a/engine/events/specials.asm
+++ b/engine/events/specials.asm
@@ -170,7 +170,7 @@
 .ReceiveItemText:
 	; received item
 	text_far UnknownText_0x1bd3be
-	db "@"
+	text_end
 
 BugContestJudging:
 	farcall _BugContestJudging
@@ -258,12 +258,12 @@
 .NoCoinsText:
 	; You have no coins.
 	text_far UnknownText_0x1bd3d7
-	db "@"
+	text_end
 
 .NoCoinCaseText:
 	; You don't have a COIN CASE.
 	text_far UnknownText_0x1bd3eb
-	db "@"
+	text_end
 
 ClearBGPalettesBufferScreen:
 	call ClearBGPalettes
--- a/engine/events/squirtbottle.asm
+++ b/engine/events/squirtbottle.asm
@@ -18,7 +18,7 @@
 .NothingHappenedText:
 	; sprinkled water. But nothing happened…
 	text_far UnknownText_0x1c0b3b
-	db "@"
+	text_end
 
 .CheckCanUseSquirtbottle:
 	ld a, [wMapGroup]
--- a/engine/events/sweet_scent.asm
+++ b/engine/events/sweet_scent.asm
@@ -60,9 +60,9 @@
 UnknownText_0x50726:
 	; used SWEET SCENT!
 	text_far UnknownText_0x1c0b03
-	db "@"
+	text_end
 
 UnknownText_0x5072b:
 	; Looks like there's nothing here…
 	text_far UnknownText_0x1c0b1a
-	db "@"
+	text_end
--- a/engine/events/whiteout.asm
+++ b/engine/events/whiteout.asm
@@ -27,7 +27,7 @@
 .WhitedOutText:
 	; is out of useable #MON!  whited out!
 	text_far UnknownText_0x1c0a4e
-	db "@"
+	text_end
 
 OverworldBGMap:
 	call ClearPalettes
--- a/engine/games/card_flip.asm
+++ b/engine/games/card_flip.asm
@@ -118,7 +118,7 @@
 .PlayWithThreeCoinsText:
 	; Play with three coins?
 	text_far UnknownText_0x1c5793
-	db "@"
+	text_end
 
 .DeductCoins:
 	ld a, [wCoins]
@@ -158,7 +158,7 @@
 .NotEnoughCoinsText:
 	; Not enough coins…
 	text_far UnknownText_0x1c57ab
-	db "@"
+	text_end
 
 .ChooseACard:
 	xor a
@@ -235,7 +235,7 @@
 .ChooseACardText:
 	; Choose a card.
 	text_far UnknownText_0x1c57be
-	db "@"
+	text_end
 
 .PlaceYourBet:
 	ld hl, .PlaceYourBetText
@@ -257,7 +257,7 @@
 .PlaceYourBetText:
 	; Place your bet.
 	text_far UnknownText_0x1c57ce
-	db "@"
+	text_end
 
 .CheckTheCard:
 	xor a
@@ -328,12 +328,12 @@
 .PlayAgainText:
 	; Want to play again?
 	text_far UnknownText_0x1c57df
-	db "@"
+	text_end
 
 .CardsShuffledText:
 	; The cards have been shuffled.
 	text_far UnknownText_0x1c57f4
-	db "@"
+	text_end
 
 .Quit:
 	ld hl, wJumptableIndex
@@ -1115,12 +1115,12 @@
 .Text_Yeah:
 	; Yeah!
 	text_far UnknownText_0x1c5813
-	db "@"
+	text_end
 
 .Text_Darn:
 	; Darn…
 	text_far UnknownText_0x1c581a
-	db "@"
+	text_end
 
 .AddCoinPlaySFX:
 	ld a, [wCoins]
--- a/engine/games/dummy_game.asm
+++ b/engine/games/dummy_game.asm
@@ -309,7 +309,7 @@
 	ret
 
 .VictoryText:
-	start_asm
+	text_asm
 	push bc
 	hlcoord 2, 13
 	call DummyGame_PlaceCard
@@ -323,12 +323,12 @@
 DummyGameText_Yeah:
 	; , yeah!
 	text_far UnknownText_0x1c1a5b
-	db "@"
+	text_end
 
 DummyGameText_Darn:
 	; Darn…
 	text_far UnknownText_0x1c1a65
-	db "@"
+	text_end
 
 DummyGame_InitBoard:
 	ld hl, wDummyGameCards
--- a/engine/games/slot_machine.asm
+++ b/engine/games/slot_machine.asm
@@ -1750,17 +1750,17 @@
 .Text_BetHowManyCoins:
 	; Bet how many coins?
 	text_far UnknownText_0x1c5049
-	db "@"
+	text_end
 
 .Text_Start:
 	; Start!
 	text_far UnknownText_0x1c505e
-	db "@"
+	text_end
 
 .Text_NotEnoughCoins:
 	; Not enough coins.
 	text_far UnknownText_0x1c5066
-	db "@"
+	text_end
 
 .MenuHeader:
 	db MENU_BACKUP_TILES ; flags
@@ -1806,11 +1806,11 @@
 
 .Text_OutOfCoins:
 	text_far UnknownText_0x1c5079
-	db "@"
+	text_end
 
 .Text_PlayAgain:
 	text_far UnknownText_0x1c5092
-	db "@"
+	text_end
 
 Slots_GetPayout:
 	ld a, [wSlotMatched]
@@ -1887,7 +1887,7 @@
 	dbw "15@@", .LinedUpMonOrCherry
 
 .Text_PrintPayout:
-	start_asm
+	text_asm
 	ld a, [wSlotMatched]
 	add $25
 	ldcoord_a 2, 13
@@ -1908,12 +1908,12 @@
 .Text_LinedUpWonCoins:
 	; lined up! Won @  coins!
 	text_far UnknownText_0x1c509f
-	db "@"
+	text_end
 
 .Text_Darn:
 	; Darn!
 	text_far UnknownText_0x1c50bb
-	db "@"
+	text_end
 
 .LinedUpSevens:
 	ld a, SFX_2ND_PLACE
--- a/engine/items/item_effects.asm
+++ b/engine/items/item_effects.asm
@@ -1064,37 +1064,37 @@
 Text_RBY_CatchMarowak:
 	; It dodged the thrown BALL! This #MON can't be caught!
 	text_far UnknownText_0x1c5a5a
-	db "@"
+	text_end
 
 Text_RBY_NoShake:
 	; You missed the #MON!
 	text_far UnknownText_0x1c5a90
-	db "@"
+	text_end
 
 Text_NoShake:
 	; Oh no! The #MON broke free!
 	text_far UnknownText_0x1c5aa6
-	db "@"
+	text_end
 
 Text_OneShake:
 	; Aww! It appeared to be caught!
 	text_far UnknownText_0x1c5ac3
-	db "@"
+	text_end
 
 Text_TwoShakes:
 	; Aargh! Almost had it!
 	text_far UnknownText_0x1c5ae3
-	db "@"
+	text_end
 
 Text_ThreeShakes:
 	; Shoot! It was so close too!
 	text_far UnknownText_0x1c5afa
-	db "@"
+	text_end
 
 Text_GotchaMonWasCaught:
 	; Gotcha! @ was caught!@ @
 	text_far UnknownText_0x1c5b17
-	start_asm
+	text_asm
 	call WaitSFX
 	push bc
 	ld de, MUSIC_NONE
@@ -1109,22 +1109,22 @@
 TextJump_Waitbutton:
 	; @
 	text_far Text_Waitbutton_2
-	db "@"
+	text_end
 
 Text_SentToBillsPC:
 	; was sent to BILL's PC.
 	text_far UnknownText_0x1c5b38
-	db "@"
+	text_end
 
 Text_AddedToPokedex:
 	; 's data was newly added to the #DEX.@ @
 	text_far UnknownText_0x1c5b53
-	db "@"
+	text_end
 
 Text_AskNicknameNewlyCaughtMon:
 	; Give a nickname to @ ?
 	text_far UnknownText_0x1c5b7f
-	db "@"
+	text_end
 
 ReturnToBattle_UseBall:
 	farcall _ReturnToBattle_UseBall
@@ -1235,7 +1235,7 @@
 Text_StatRose:
 	; 's @  rose.
 	text_far UnknownText_0x1c5b9a
-	db "@"
+	text_end
 
 StatStrings:
 	dw .health
@@ -2063,7 +2063,7 @@
 .Text_CantBeUsed:
 	; That can't be used on this #MON.
 	text_far UnknownText_0x1c5bac
-	db "@"
+	text_end
 
 EscapeRopeEffect:
 	xor a
@@ -2099,7 +2099,7 @@
 TextJump_RepelUsedEarlierIsStillInEffect:
 	; The REPEL used earlier is still in effect.
 	text_far Text_RepelUsedEarlierIsStillInEffect
-	db "@"
+	text_end
 
 XAccuracyEffect:
 	ld hl, wPlayerSubStatus4
@@ -2240,17 +2240,17 @@
 .CatchyTune:
 	; Played the # FLUTE. Now, that's a catchy tune!
 	text_far UnknownText_0x1c5bf9
-	db "@"
+	text_end
 
 .AllSleepingMonWokeUp:
 	; All sleeping #MON woke up.
 	text_far UnknownText_0x1c5c28
-	db "@"
+	text_end
 
 .PlayedTheFlute:
 	; played the # FLUTE.@ @
 	text_far UnknownText_0x1c5c44
-	start_asm
+	text_asm
 	ld a, [wBattleMode]
 	and a
 	jr nz, .battle
@@ -2270,7 +2270,7 @@
 
 .bluecardtext
 	text_far UnknownText_0x1c5c5e
-	db "@"
+	text_end
 
 CoinCaseEffect:
 	ld hl, .coincasetext
@@ -2278,7 +2278,7 @@
 
 .coincasetext
 	text_far UnknownText_0x1c5c7b
-	db "@"
+	text_end
 
 OldRodEffect:
 	ld e, $0
@@ -2533,27 +2533,27 @@
 TextJump_RaiseThePPOfWhichMove:
 	; Raise the PP of which move?
 	text_far Text_RaiseThePPOfWhichMove
-	db "@"
+	text_end
 
 TextJump_RestoreThePPOfWhichMove:
 	; Restore the PP of which move?
 	text_far Text_RestoreThePPOfWhichMove
-	db "@"
+	text_end
 
 TextJump_PPIsMaxedOut:
 	; 's PP is maxed out.
 	text_far Text_PPIsMaxedOut
-	db "@"
+	text_end
 
 TextJump_PPsIncreased:
 	; 's PP increased.
 	text_far Text_PPsIncreased
-	db "@"
+	text_end
 
 UnknownText_0xf739:
 	; PP was restored.
 	text_far UnknownText_0x1c5cf1
-	db "@"
+	text_end
 
 SquirtbottleEffect:
 	farcall _Squirtbottle
@@ -2592,7 +2592,7 @@
 .text
 	; There was a trophy inside!
 	text_far UnknownText_0x1c5d03
-	db "@"
+	text_end
 
 NoEffect:
 	jp IsntTheTimeMessage
@@ -2687,67 +2687,67 @@
 LooksBitterText:
 	; It looks bitter…
 	text_far UnknownText_0x1c5d3e
-	db "@"
+	text_end
 
 CantUseOnEggText:
 	; That can't be used on an EGG.
 	text_far UnknownText_0x1c5d50
-	db "@"
+	text_end
 
 IsntTheTimeText:
 	; OAK:  ! This isn't the time to use that!
 	text_far UnknownText_0x1c5d6e
-	db "@"
+	text_end
 
 BelongsToSomeoneElseText:
 	; That belongs to someone else!
 	text_far UnknownText_0x1c5d97
-	db "@"
+	text_end
 
 WontHaveAnyEffectText:
 	; It won't have any effect.
 	text_far UnknownText_0x1c5db6
-	db "@"
+	text_end
 
 BlockedTheBallText:
 	; The trainer blocked the BALL!
 	text_far UnknownText_0x1c5dd0
-	db "@"
+	text_end
 
 DontBeAThiefText:
 	; Don't be a thief!
 	text_far UnknownText_0x1c5def
-	db "@"
+	text_end
 
 CyclingIsntAllowedText:
 	; Cycling isn't allowed here.
 	text_far UnknownText_0x1c5e01
-	db "@"
+	text_end
 
 CantGetOnYourBikeText:
 	; Can't get on your @  now.
 	text_far UnknownText_0x1c5e1d
-	db "@"
+	text_end
 
 Ball_BoxIsFullText:
 	; The #MON BOX is full. That can't be used now.
 	text_far UnknownText_0x1c5e3a
-	db "@"
+	text_end
 
 UsedItemText:
 	; used the@ .
 	text_far UnknownText_0x1c5e68
-	db "@"
+	text_end
 
 GotOnTheItemText:
 	; got on the@ .
 	text_far UnknownText_0x1c5e7b
-	db "@"
+	text_end
 
 GotOffTheItemText:
 	; got off@ the @ .
 	text_far UnknownText_0x1c5e90
-	db "@"
+	text_end
 
 ApplyPPUp:
 	ld a, MON_MOVES
--- a/engine/items/mart.asm
+++ b/engine/items/mart.asm
@@ -582,12 +582,12 @@
 Text_Mart_HowMany:
 	; How many?
 	text_far UnknownText_0x1c4bfd
-	db "@"
+	text_end
 
 Text_Mart_CostsThisMuch:
 	; @ (S) will be ¥@ .
 	text_far UnknownText_0x1c4c08
-	db "@"
+	text_end
 
 MenuHeader_Buy:
 	db MENU_BACKUP_TILES ; flags
@@ -625,107 +625,107 @@
 Text_HerbShop_Intro:
 	; Hello, dear. I sell inexpensive herbal medicine. They're good, but a trifle bitter. Your #MON may not like them. Hehehehe…
 	text_far UnknownText_0x1c4c28
-	db "@"
+	text_end
 
 Text_HerbShop_HowMany:
 	; How many?
 	text_far UnknownText_0x1c4ca3
-	db "@"
+	text_end
 
 Text_HerbShop_CostsThisMuch:
 	; @ (S) will be ¥@ .
 	text_far UnknownText_0x1c4cae
-	db "@"
+	text_end
 
 Text_HerbShop_HereYouGo:
 	; Thank you, dear. Hehehehe…
 	text_far UnknownText_0x1c4cce
-	db "@"
+	text_end
 
 Text_HerbShop_BagFull:
 	; Oh? Your PACK is full, dear.
 	text_far UnknownText_0x1c4cea
-	db "@"
+	text_end
 
 Text_HerbShop_InsufficientFunds:
 	; Hehehe… You don't have the money.
 	text_far UnknownText_0x1c4d08
-	db "@"
+	text_end
 
 Text_HerbShop_ComeAgain:
 	; Come again, dear. Hehehehe…
 	text_far UnknownText_0x1c4d2a
-	db "@"
+	text_end
 
 Text_BargainShop_Intro:
 	; Hiya! Care to see some bargains? I sell rare items that nobody else carries--but only one of each item.
 	text_far UnknownText_0x1c4d47
-	db "@"
+	text_end
 
 Text_BargainShop_CostsThisMuch:
 	; costs ¥@ . Want it?
 	text_far UnknownText_0x1c4db0
-	db "@"
+	text_end
 
 Text_BargainShop_HereYouGo:
 	; Thanks.
 	text_far UnknownText_0x1c4dcd
-	db "@"
+	text_end
 
 Text_BargainShop_BagFull:
 	; Uh-oh, your PACK is chock-full.
 	text_far UnknownText_0x1c4dd6
-	db "@"
+	text_end
 
 Text_BargainShop_SoldOut:
 	; You bought that already. I'm all sold out of it.
 	text_far UnknownText_0x1c4df7
-	db "@"
+	text_end
 
 Text_BargainShop_InsufficientFunds:
 	; Uh-oh, you're short on funds.
 	text_far UnknownText_0x1c4e28
-	db "@"
+	text_end
 
 Text_BargainShop_ComeAgain:
 	; Come by again sometime.
 	text_far UnknownText_0x1c4e46
-	db "@"
+	text_end
 
 Text_Pharmacist_Intro:
 	; What's up? Need some medicine?
 	text_far UnknownText_0x1c4e5f
-	db "@"
+	text_end
 
 Text_Pharmacy_HowMany:
 	; How many?
 	text_far UnknownText_0x1c4e7e
-	db "@"
+	text_end
 
 Text_Pharmacy_CostsThisMuch:
 	; @ (S) will cost ¥@ .
 	text_far UnknownText_0x1c4e89
-	db "@"
+	text_end
 
 Text_Pharmacy_HereYouGo:
 	; Thanks much!
 	text_far UnknownText_0x1c4eab
-	db "@"
+	text_end
 
 Text_Pharmacy_BagFull:
 	; You don't have any more space.
 	text_far UnknownText_0x1c4eb9
-	db "@"
+	text_end
 
 Text_Pharmacy_InsufficientFunds:
 	; Huh? That's not enough money.
 	text_far UnknownText_0x1c4ed8
-	db "@"
+	text_end
 
 Text_Pharmacist_ComeAgain:
 	; All right. See you around.
 	text_far UnknownText_0x1c4ef6
-	db "@"
+	text_end
 
 SellMenu:
 	call DisableSpriteUpdates
@@ -752,7 +752,7 @@
 .NothingToSellText:
 	; You don't have anything to sell.
 	text_far UnknownText_0x1c4f12
-	db "@"
+	text_end
 
 .TryToSellItem:
 	farcall CheckItemMenu
@@ -821,12 +821,12 @@
 Text_Mart_SellHowMany:
 	; How many?
 	text_far UnknownText_0x1c4f33
-	db "@"
+	text_end
 
 Text_Mart_ICanPayThisMuch:
 	; I can pay you ¥@ . Is that OK?
 	text_far UnknownText_0x1c4f3e
-	db "@"
+	text_end
 
 .UnusedString15f7d:
 	db "!ダミー!@"
@@ -834,7 +834,7 @@
 Text_Mart_HowMayIHelpYou:
 	; Welcome! How may I help you?
 	text_far UnknownText_0x1c4f62
-	db "@"
+	text_end
 
 MenuHeader_BuySell:
 	db MENU_BACKUP_TILES ; flags
@@ -852,35 +852,35 @@
 Text_Mart_HereYouGo:
 	; Here you are. Thank you!
 	text_far UnknownText_0x1c4f80
-	db "@"
+	text_end
 
 Text_Mart_InsufficientFunds:
 	; You don't have enough money.
 	text_far UnknownText_0x1c4f9a
-	db "@"
+	text_end
 
 Text_Mart_BagFull:
 	; You can't carry any more items.
 	text_far UnknownText_0x1c4fb7
-	db "@"
+	text_end
 
 TextMart_CantBuyFromYou:
 	; Sorry, I can't buy that from you.
 	text_far UnknownText_0x1c4fd7
-	db "@"
+	text_end
 
 Text_Mart_ComeAgain:
 	; Please come again!
 	text_far UnknownText_0x1c4ff9
-	db "@"
+	text_end
 
 Text_Mart_AnythingElse:
 	text_far UnknownText_0x1c500d
-	db "@"
+	text_end
 
 Text_Mart_SoldForAmount:
 	text_far UnknownText_0x1c502e
-	db "@"
+	text_end
 
 PlayTransactionSound:
 	call WaitSFX
--- a/engine/items/pack.asm
+++ b/engine/items/pack.asm
@@ -617,7 +617,7 @@
 .Egg:
 	; An EGG can't hold an item.
 	text_far Text_AnEGGCantHoldAnItem
-	db "@"
+	text_end
 
 QuitItemSubmenu:
 	ret
@@ -1549,58 +1549,58 @@
 Text_PackNoItems:
 	; No items.
 	text_far UnknownText_0x1c0b9a
-	db "@"
+	text_end
 
 Text_ThrowAwayHowMany:
 	; Throw away how many?
 	text_far UnknownText_0x1c0ba5
-	db "@"
+	text_end
 
 Text_ConfirmThrowAway:
 	; Throw away @ @ (S)?
 	text_far UnknownText_0x1c0bbb
-	db "@"
+	text_end
 
 Text_ThrewAway:
 	; Threw away @ (S).
 	text_far UnknownText_0x1c0bd8
-	db "@"
+	text_end
 
 Text_ThisIsntTheTime:
 	; OAK:  ! This isn't the time to use that!
 	text_far UnknownText_0x1c0bee
-	db "@"
+	text_end
 
 TextJump_YouDontHaveAMon:
 	; You don't have a #MON!
 	text_far Text_YouDontHaveAMon
-	db "@"
+	text_end
 
 Text_RegisteredItem:
 	; Registered the @ .
 	text_far UnknownText_0x1c0c2e
-	db "@"
+	text_end
 
 Text_CantRegister:
 	; You can't register that item.
 	text_far UnknownText_0x1c0c45
-	db "@"
+	text_end
 
 Text_MoveItemWhere:
 	; Where should this be moved to?
 	text_far UnknownText_0x1c0c63
-	db "@"
+	text_end
 
 Text_PackEmptyString:
 	;
 	text_far UnknownText_0x1c0c83
-	db "@"
+	text_end
 
 TextJump_YouCantUseItInABattle:
 	; Doesn't seem to be used anywhere
 	; "You can't use it in a battle."
 	text_far Text_YouCantUseItInABattle
-	db "@"
+	text_end
 
 PackMenuGFX:
 INCBIN "gfx/pack/pack_menu.2bpp"
--- a/engine/items/tmhm.asm
+++ b/engine/items/tmhm.asm
@@ -169,22 +169,22 @@
 Text_BootedTM:
 	; Booted up a TM.
 	text_far UnknownText_0x1c0373
-	db "@"
+	text_end
 
 Text_BootedHM:
 	; Booted up an HM.
 	text_far UnknownText_0x1c0384
-	db "@"
+	text_end
 
 Text_ItContained:
 	; It contained @ . Teach @ to a #MON?
 	text_far UnknownText_0x1c0396
-	db "@"
+	text_end
 
 Text_TMHMNotCompatible:
 	; is not compatible with @ . It can't learn @ .
 	text_far UnknownText_0x1c03c2
-	db "@"
+	text_end
 
 TMHM_PocketLoop:
 	xor a
@@ -500,12 +500,12 @@
 .NoRoomText:
 	; You have no room for any more @ S.
 	text_far UnknownText_0x1c03fa
-	db "@"
+	text_end
 
 .ReceivedText:
 	; You received @ !
 	text_far UnknownText_0x1c0421
-	db "@"
+	text_end
 
 .CheckHaveRoomForTMHM:
 	ld a, [wTempTMHM]
--- a/engine/link/link.asm
+++ b/engine/link/link.asm
@@ -508,7 +508,7 @@
 .TooMuchTimeHasElapsed:
 	; Too much time has elapsed. Please try again.
 	text_far UnknownText_0x1c4183
-	db "@"
+	text_end
 
 ExchangeBytes:
 	ld a, TRUE
@@ -1490,7 +1490,7 @@
 .Text_CantTradeLastMon:
 	; If you trade that #MON, you won't be able to battle.
 	text_far UnknownText_0x1c41b1
-	db "@"
+	text_end
 
 .String_Stats_Trade:
 	db "STATS     TRADE@"
@@ -1498,7 +1498,7 @@
 .Text_Abnormal:
 	; Your friend's @  appears to be abnormal!
 	text_far UnknownText_0x1c41e6
-	db "@"
+	text_end
 
 Function28ac9:
 	ld a, [wMenuCursorY]
@@ -1951,7 +1951,7 @@
 UnknownText_0x28eb8:
 	; Trade @ for @ ?
 	text_far UnknownText_0x1c4212
-	db "@"
+	text_end
 
 String28ebd:
 	db   "Trade completed!@"
--- a/engine/link/mystery_gift.asm
+++ b/engine/link/mystery_gift.asm
@@ -129,35 +129,35 @@
 
 .Text_LinkCanceled:
 	text_far UnknownText_0x1c0436
-	db "@"
+	text_end
 
 .Text_CommunicationError:
 	text_far UnknownText_0x1c0454
-	db "@"
+	text_end
 
 .Text_ReceiveGiftAtCounter:
 	text_far UnknownText_0x1c046a
-	db "@"
+	text_end
 
 .Text_FriendNotReady:
 	text_far UnknownText_0x1c048e
-	db "@"
+	text_end
 
 .Text_MaxFiveGifts:
 	text_far UnknownText_0x1c04a7
-	db "@"
+	text_end
 
 .Text_MaxOneGiftPerPerson:
 	text_far UnknownText_0x1c04c6
-	db "@"
+	text_end
 
 .Text_Sent:
 	text_far UnknownText_0x1c04e9
-	db "@"
+	text_end
 
 .Text_SentToHome:
 	text_far UnknownText_0x1c04fa
-	db "@"
+	text_end
 
 .CheckAlreadyGotFiveGiftsToday:
 	call GetMysteryGiftBank
@@ -1491,23 +1491,23 @@
 
 Text_ReceivedCard:
 	text_far UnknownText_0x1c051a
-	db "@"
+	text_end
 
 Text_ListedCardAsNumber:
 	text_far UnknownText_0x1c0531
-	db "@"
+	text_end
 
 Text_CardNotRegistered:
 	text_far UnknownText_0x1c0555
-	db "@"
+	text_end
 
 Text_MGLinkCanceled:
 	text_far UnknownText_0x1c0573
-	db "@"
+	text_end
 
 Text_MGCommError:
 	text_far UnknownText_0x1c0591
-	db "@"
+	text_end
 
 Function105777:
 	call ClearSprites
--- a/engine/menus/delete_save.asm
+++ b/engine/menus/delete_save.asm
@@ -21,7 +21,7 @@
 .Text_ClearAllSaveData:
 	; Clear all save data?
 	text_far UnknownText_0x1c564a
-	db "@"
+	text_end
 
 .NoYesMenuHeader:
 	db 0 ; flags
--- a/engine/menus/init_gender.asm
+++ b/engine/menus/init_gender.asm
@@ -56,7 +56,7 @@
 TextJump_AreYouABoyOrAreYouAGirl:
 	; Are you a boy? Or are you a girl?
 	text_far Text_AreYouABoyOrAreYouAGirl
-	db "@"
+	text_end
 
 InitGenderScreen:
 	ld a, $10
--- a/engine/menus/intro_menu.asm
+++ b/engine/menus/intro_menu.asm
@@ -704,11 +704,11 @@
 
 OakText1:
 	text_far _OakText1
-	db "@"
+	text_end
 
 OakText2:
 	text_far _OakText2
-	start_asm
+	text_asm
 	ld a, WOOPER
 	call PlayMonCry
 	call WaitSFX
@@ -717,23 +717,23 @@
 
 OakText3:
 	text_far _OakText3
-	db "@"
+	text_end
 
 OakText4:
 	text_far _OakText4
-	db "@"
+	text_end
 
 OakText5:
 	text_far _OakText5
-	db "@"
+	text_end
 
 OakText6:
 	text_far _OakText6
-	db "@"
+	text_end
 
 OakText7:
 	text_far _OakText7
-	db "@"
+	text_end
 
 NamePlayer:
 	farcall MovePlayerPicRight
--- a/engine/menus/main_menu.asm
+++ b/engine/menus/main_menu.asm
@@ -283,7 +283,7 @@
 .UnusedText:
 	; Clock time unknown
 	text_far UnknownText_0x1c5182
-	db "@"
+	text_end
 
 .PlaceCurrentDay:
 	push de
--- a/engine/menus/menu.asm
+++ b/engine/menus/menu.asm
@@ -733,7 +733,7 @@
 
 .Text_NoWindowsAvailableForPopping:
 	text_far UnknownText_0x1c46b7
-	db "@"
+	text_end
 
 _InitVerticalMenuCursor::
 	ld a, [wMenuDataFlags]
--- a/engine/menus/save.asm
+++ b/engine/menus/save.asm
@@ -1098,39 +1098,39 @@
 Text_WouldYouLikeToSaveTheGame:
 	; Would you like to save the game?
 	text_far UnknownText_0x1c454b
-	db "@"
+	text_end
 
 Text_SavingDontTurnOffThePower:
 	; SAVING… DON'T TURN OFF THE POWER.
 	text_far UnknownText_0x1c456d
-	db "@"
+	text_end
 
 Text_PlayerSavedTheGame:
 	; saved the game.
 	text_far UnknownText_0x1c4590
-	db "@"
+	text_end
 
 Text_AlreadyASaveFile:
 	; There is already a save file. Is it OK to overwrite?
 	text_far UnknownText_0x1c45a3
-	db "@"
+	text_end
 
 Text_AnotherSaveFile:
 	; There is another save file. Is it OK to overwrite?
 	text_far UnknownText_0x1c45d9
-	db "@"
+	text_end
 
 Text_SaveFileCorrupted:
 	; The save file is corrupted!
 	text_far UnknownText_0x1c460d
-	db "@"
+	text_end
 
 Text_SaveOnBoxSwitch:
 	; When you change a #MON BOX, data will be saved. OK?
 	text_far UnknownText_0x1c462a
-	db "@"
+	text_end
 
 Text_SaveOnMoveMonWOMail:
 	; Each time you move a #MON, data will be saved. OK?
 	text_far UnknownText_0x1c465f
-	db "@"
+	text_end
--- a/engine/menus/start_menu.asm
+++ b/engine/menus/start_menu.asm
@@ -426,7 +426,7 @@
 
 .EndTheContestText:
 	text_far UnknownText_0x1c1a6c
-	db "@"
+	text_end
 
 StartMenu_Save:
 ; Save the game.
--- a/engine/menus/trainer_card.asm
+++ b/engine/menus/trainer_card.asm
@@ -294,7 +294,9 @@
 
 .Dex_PlayTime:
 	db   "#DEX"
-	next "PLAY TIME@@"
+	next "PLAY TIME@"
+
+	db "@" ; unused
 
 .Badges:
 	db "  BADGES▶@"
--- a/engine/movie/init_hof_credits.asm
+++ b/engine/movie/init_hof_credits.asm
@@ -26,7 +26,7 @@
 .SavingRecordDontTurnOff:
 	; SAVING RECORD… DON'T TURN OFF!
 	text_far UnknownText_0x1bd39e
-	db "@"
+	text_end
 
 InitDisplayForRedCredits:
 	call ClearBGPalettes
--- a/engine/movie/trade_animation.asm
+++ b/engine/movie/trade_animation.asm
@@ -1192,12 +1192,12 @@
 .Text_WasSentTo:
 	; was sent to @ .
 	text_far UnknownText_0x1bc6e9
-	db "@"
+	text_end
 
 .Text_MonName:
 	;
 	text_far UnknownText_0x1bc701
-	db "@"
+	text_end
 
 TradeAnim_OTBidsFarewell:
 	ld hl, .Text_BidsFarewellToMon
@@ -1212,12 +1212,12 @@
 .Text_BidsFarewellToMon:
 	; bids farewell to
 	text_far UnknownText_0x1bc703
-	db "@"
+	text_end
 
 .Text_MonName:
 	; .
 	text_far UnknownText_0x1bc719
-	db "@"
+	text_end
 
 TradeAnim_TakeCareOfText:
 	call WaitTop
@@ -1235,7 +1235,7 @@
 .Text_TakeGoodCareOfMon:
 	; Take good care of @ .
 	text_far UnknownText_0x1bc71f
-	db "@"
+	text_end
 
 TradeAnim_OTSendsText1:
 	ld hl, .Text_ForYourMon
@@ -1252,12 +1252,12 @@
 .Text_ForYourMon:
 	; For @ 's @ ,
 	text_far UnknownText_0x1bc739
-	db "@"
+	text_end
 
 .Text_OTSends:
 	; sends @ .
 	text_far UnknownText_0x1bc74c
-	db "@"
+	text_end
 
 TradeAnim_OTSendsText2:
 	ld hl, .Text_WillTrade
@@ -1274,12 +1274,12 @@
 .Text_WillTrade:
 	; will trade @ @
 	text_far UnknownText_0x1bc75e
-	db "@"
+	text_end
 
 .Text_ForYourMon:
 	; for @ 's @ .
 	text_far UnknownText_0x1bc774
-	db "@"
+	text_end
 
 TradeAnim_Wait80Frames:
 	ld c, 80
--- a/engine/overworld/decorations.asm
+++ b/engine/overworld/decorations.asm
@@ -385,7 +385,7 @@
 .Text_nothing_to_choose:
 	; There's nothing to choose.
 	text_far UnknownText_0x1bc471
-	db "@"
+	text_end
 
 .NonscrollingMenuHeader:
 	db MENU_BACKUP_TILES ; flags
@@ -807,7 +807,7 @@
 UnknownText_0x26e41:
 	; Which side do you want to put it on?
 	text_far UnknownText_0x1bc48c
-	db "@"
+	text_end
 
 DecoAction_PutItAway_Ornament:
 	ld a, [wSelectedDecoration]
@@ -833,7 +833,7 @@
 DecoText_WhichSide:
 	; Which side do you want to put away?
 	text_far UnknownText_0x1bc4b2
-	db "@"
+	text_end
 
 DecoAction_AskWhichSide:
 	call MenuTextBox
@@ -886,27 +886,27 @@
 DecoText_PutAwayTheDeco:
 	; Put away the @ .
 	text_far UnknownText_0x1bc4d7
-	db "@"
+	text_end
 
 DecoText_NothingToPutAway:
 	; There's nothing to put away.
 	text_far UnknownText_0x1bc4ec
-	db "@"
+	text_end
 
 DecoText_SetUpTheDeco:
 	; Set up the @ .
 	text_far UnknownText_0x1bc509
-	db "@"
+	text_end
 
 DecoText_PutAwayAndSetUp:
 	; Put away the @ and set up the @ .
 	text_far UnknownText_0x1bc51c
-	db "@"
+	text_end
 
 DecoText_AlreadySetUp:
 	; That's already set up.
 	text_far UnknownText_0x1bc546
-	db "@"
+	text_end
 
 GetDecorationName_c_de:
 	ld a, c
@@ -1014,7 +1014,7 @@
 .TownMapText:
 	; It's the TOWN MAP.
 	text_far UnknownText_0x1bc55d
-	db "@"
+	text_end
 
 DecorationDesc_PikachuPoster:
 	jumptext .PikaPosterText
@@ -1022,7 +1022,7 @@
 .PikaPosterText:
 	; It's a poster of a cute PIKACHU.
 	text_far UnknownText_0x1bc570
-	db "@"
+	text_end
 
 DecorationDesc_ClefairyPoster:
 	jumptext .ClefairyPosterText
@@ -1030,7 +1030,7 @@
 .ClefairyPosterText:
 	; It's a poster of a cute CLEFAIRY.
 	text_far UnknownText_0x1bc591
-	db "@"
+	text_end
 
 DecorationDesc_JigglypuffPoster:
 	jumptext .JigglypuffPosterText
@@ -1038,7 +1038,7 @@
 .JigglypuffPosterText:
 	; It's a poster of a cute JIGGLYPUFF.
 	text_far UnknownText_0x1bc5b3
-	db "@"
+	text_end
 
 DecorationDesc_NullPoster:
 	end
@@ -1069,7 +1069,7 @@
 .OrnamentConsoleText:
 	; It's an adorable @ .
 	text_far UnknownText_0x1bc5d7
-	db "@"
+	text_end
 
 DecorationDesc_GiantOrnament:
 	ld b, BANK(.BigDollScript)
@@ -1082,7 +1082,7 @@
 .BigDollText:
 	; A giant doll! It's fluffy and cuddly.
 	text_far UnknownText_0x1bc5ef
-	db "@"
+	text_end
 
 ToggleMaptileDecorations:
 	; tile coordinates work the same way as for changeblock
--- a/engine/overworld/scripting.asm
+++ b/engine/overworld/scripting.asm
@@ -537,7 +537,7 @@
 
 ReceivedItemText:
 	text_far UnknownText_0x1c4719
-	db "@"
+	text_end
 
 Script_verbosegiveitem2:
 ; script command 0x9f
@@ -629,11 +629,11 @@
 
 PutItemInPocketText:
 	text_far UnknownText_0x1c472c
-	db "@"
+	text_end
 
 PocketIsFullText:
 	text_far UnknownText_0x1c474b
-	db "@"
+	text_end
 
 Script_pokemart:
 ; script command 0x94
--- a/engine/overworld/select_menu.asm
+++ b/engine/overworld/select_menu.asm
@@ -13,7 +13,7 @@
 
 ItemMayBeRegisteredText:
 	text_far UnknownText_0x1c1cf3
-	db "@"
+	text_end
 
 CheckRegisteredItem:
 	ld a, [wWhichRegisteredItem]
--- a/engine/overworld/wildmons.asm
+++ b/engine/overworld/wildmons.asm
@@ -835,7 +835,7 @@
 .SawRareMonText:
 	; I just saw some rare @  in @ . I'll call you if I see another rare #MON, OK?
 	text_far UnknownText_0x1bd34b
-	db "@"
+	text_end
 
 RandomPhoneWildMon:
 	farcall GetCallerLocation
--- a/engine/phone/phone.asm
+++ b/engine/phone/phone.asm
@@ -417,7 +417,7 @@
 .text
 	; Huh? Sorry, wrong number!
 	text_far UnknownText_0x1c5565
-	db "@"
+	text_end
 
 Script_ReceivePhoneCall:
 	refreshscreen
@@ -542,7 +542,7 @@
 
 UnknownText_0x9032a:
 	text_far UnknownText_0x1c5580
-	db "@"
+	text_end
 
 HangUp_BoopOn:
 	ld hl, UnknownText_0x90336
@@ -551,7 +551,7 @@
 
 UnknownText_0x90336:
 	text_far UnknownText_0x1c5588
-	db "@"
+	text_end
 
 HangUp_BoopOff:
 	call SpeechTextBox
@@ -711,7 +711,7 @@
 UnknownText_0x9065b:
 	; That number is out of the area.
 	text_far UnknownText_0x1c558b
-	db "@"
+	text_end
 
 PhoneScript_JustTalkToThem:
 	writetext UnknownText_0x90664
@@ -720,7 +720,7 @@
 UnknownText_0x90664:
 	; Just go talk to that person!
 	text_far UnknownText_0x1c55ac
-	db "@"
+	text_end
 
 UnknownScript_0x90669:
 	writetext UnknownText_0x9066d
@@ -729,4 +729,4 @@
 UnknownText_0x9066d:
 	; Thank you!
 	text_far UnknownText_0x1c55ca
-	db "@"
+	text_end
--- a/engine/pokedex/pokedex.asm
+++ b/engine/pokedex/pokedex.asm
@@ -1204,7 +1204,7 @@
 	db   "NEW #DEX MODE"
 	next "OLD #DEX MODE"
 	next "A to Z MODE"
-	db "@"
+	db   "@"
 
 .UnownMode:
 	db "UNOWN MODE@"
--- a/engine/pokegear/pokegear.asm
+++ b/engine/pokegear/pokegear.asm
@@ -533,7 +533,7 @@
 
 .DayText:
 	text_far UnknownText_0x1c5821
-	db "@"
+	text_end
 
 PokegearMap_CheckRegion:
 	ld a, [wPokegearMapPlayerIconLandmark]
@@ -937,12 +937,12 @@
 .dotdotdot
 	;
 	text_far UnknownText_0x1c5824
-	db "@"
+	text_end
 
 .OutOfServiceArea:
 	; You're out of the service area.
 	text_far UnknownText_0x1c5827
-	db "@"
+	text_end
 
 PokegearPhone_FinishPhoneCall:
 	ldh a, [hJoyPressed]
@@ -1354,17 +1354,17 @@
 PokegearText_WhomToCall:
 	; Whom do you want to call?
 	text_far UnknownText_0x1c5847
-	db "@"
+	text_end
 
 PokegearText_PressAnyButtonToExit:
 	; Press any button to exit.
 	text_far UnknownText_0x1c5862
-	db "@"
+	text_end
 
 PokegearText_DeleteStoredNumber:
 	; Delete this stored phone number?
 	text_far UnknownText_0x1c587d
-	db "@"
+	text_end
 
 PokegearSpritesGFX:
 INCBIN "gfx/pokegear/pokegear_sprites.2bpp.lz"
--- a/engine/pokegear/radio.asm
+++ b/engine/pokegear/radio.asm
@@ -306,32 +306,32 @@
 OPT_IntroText1:
 	; MARY: PROF.OAK'S
 	text_far _OPT_IntroText1
-	db "@"
+	text_end
 
 OPT_IntroText2:
 	; #MON TALK!
 	text_far _OPT_IntroText2
-	db "@"
+	text_end
 
 OPT_IntroText3:
 	; With me, MARY!
 	text_far _OPT_IntroText3
-	db "@"
+	text_end
 
 OPT_OakText1:
 	; OAK: @ @
 	text_far _OPT_OakText1
-	db "@"
+	text_end
 
 OPT_OakText2:
 	; may be seen around
 	text_far _OPT_OakText2
-	db "@"
+	text_end
 
 OPT_OakText3:
 	; @ .
 	text_far _OPT_OakText3
-	db "@"
+	text_end
 
 OaksPKMNTalk7:
 	ld a, [wCurPartySpecies]
@@ -344,7 +344,7 @@
 OPT_MaryText1:
 	; MARY: @ 's
 	text_far _OPT_MaryText1
-	db "@"
+	text_end
 
 OaksPKMNTalk8:
 	; 0-15 are all valid indexes into .Adverbs,
@@ -384,82 +384,82 @@
 .sweetadorably
 	; sweet and adorably
 	text_far OPT_SweetAdorably
-	db "@"
+	text_end
 
 .wigglyslickly
 	; wiggly and slickly
 	text_far OPT_WigglySlickly
-	db "@"
+	text_end
 
 .aptlynamed
 	; aptly named and
 	text_far OPT_AptlyNamed
-	db "@"
+	text_end
 
 .undeniablykindof
 	; undeniably kind of
 	text_far OPT_UndeniablyKindOf
-	db "@"
+	text_end
 
 .unbearably
 	; so, so unbearably
 	text_far OPT_Unbearably
-	db "@"
+	text_end
 
 .wowimpressively
 	; wow, impressively
 	text_far OPT_WowImpressively
-	db "@"
+	text_end
 
 .almostpoisonously
 	; almost poisonously
 	text_far OPT_AlmostPoisonously
-	db "@"
+	text_end
 
 .sensually
 	; ooh, so sensually
 	text_far OPT_Sensually
-	db "@"
+	text_end
 
 .mischievously
 	; so mischievously
 	text_far OPT_Mischievously
-	db "@"
+	text_end
 
 .topically
 	; so very topically
 	text_far OPT_Topically
-	db "@"
+	text_end
 
 .addictively
 	; sure addictively
 	text_far OPT_Addictively
-	db "@"
+	text_end
 
 .looksinwater
 	; looks in water is
 	text_far OPT_LooksInWater
-	db "@"
+	text_end
 
 .evolutionmustbe
 	; evolution must be
 	text_far OPT_EvolutionMustBe
-	db "@"
+	text_end
 
 .provocatively
 	; provocatively
 	text_far OPT_Provocatively
-	db "@"
+	text_end
 
 .flippedout
 	; so flipped out and
 	text_far OPT_FlippedOut
-	db "@"
+	text_end
 
 .heartmeltingly
 	; heart-meltingly
 	text_far OPT_HeartMeltingly
-	db "@"
+	text_end
 
 OaksPKMNTalk9:
 	; 0-15 are all valid indexes into .Adjectives,
@@ -507,82 +507,82 @@
 .cute
 	; cute.
 	text_far OPT_Cute
-	db "@"
+	text_end
 
 .weird
 	; weird.
 	text_far OPT_Weird
-	db "@"
+	text_end
 
 .pleasant
 	; pleasant.
 	text_far OPT_Pleasant
-	db "@"
+	text_end
 
 .boldsortof
 	; bold, sort of.
 	text_far OPT_BoldSortOf
-	db "@"
+	text_end
 
 .frightening
 	; frightening.
 	text_far OPT_Frightening
-	db "@"
+	text_end
 
 .suavedebonair
 	; suave & debonair!
 	text_far OPT_SuaveDebonair
-	db "@"
+	text_end
 
 .powerful
 	; powerful.
 	text_far OPT_Powerful
-	db "@"
+	text_end
 
 .exciting
 	; exciting.
 	text_far OPT_Exciting
-	db "@"
+	text_end
 
 .groovy
 	; groovy!
 	text_far OPT_Groovy
-	db "@"
+	text_end
 
 .inspiring
 	; inspiring.
 	text_far OPT_Inspiring
-	db "@"
+	text_end
 
 .friendly
 	; friendly.
 	text_far OPT_Friendly
-	db "@"
+	text_end
 
 .hothothot
 	; hot, hot, hot!
 	text_far OPT_HotHotHot
-	db "@"
+	text_end
 
 .stimulating
 	; stimulating.
 	text_far OPT_Stimulating
-	db "@"
+	text_end
 
 .guarded
 	; guarded.
 	text_far OPT_Guarded
-	db "@"
+	text_end
 
 .lovely
 	; lovely.
 	text_far OPT_Lovely
-	db "@"
+	text_end
 
 .speedy
 	; speedy.
 	text_far OPT_Speedy
-	db "@"
+	text_end
 
 OaksPKMNTalk10:
 	farcall RadioMusicRestartPokemonChannel
@@ -600,10 +600,10 @@
 OPT_PokemonChannelText:
 	; #MON
 	text_far _OPT_PokemonChannelText
-	db "@"
+	text_end
 
 OPT_RestartText:
-	db "@"
+	text_end
 
 OaksPKMNTalk11:
 	ld hl, wRadioTextDelay
@@ -850,7 +850,7 @@
 PokedexShowText:
 	; @ @
 	text_far _PokedexShowText
-	db "@"
+	text_end
 
 BenMonMusic1:
 	call StartPokemonMusicChannel
@@ -922,52 +922,52 @@
 BenIntroText1:
 	; BEN: #MON MUSIC
 	text_far _BenIntroText1
-	db "@"
+	text_end
 
 BenIntroText2:
 	; CHANNEL!
 	text_far _BenIntroText2
-	db "@"
+	text_end
 
 BenIntroText3:
 	; It's me, DJ BEN!
 	text_far _BenIntroText3
-	db "@"
+	text_end
 
 FernIntroText1:
 	; FERN: #MUSIC!
 	text_far _FernIntroText1
-	db "@"
+	text_end
 
 FernIntroMusic2:
 	; With DJ FERN!
 	text_far _FernIntroText2
-	db "@"
+	text_end
 
 BenFernText1:
 	; Today's @ ,
 	text_far _BenFernText1
-	db "@"
+	text_end
 
 BenFernText2A:
 	; so let us jam to
 	text_far _BenFernText2A
-	db "@"
+	text_end
 
 BenFernText2B:
 	; so chill out to
 	text_far _BenFernText2B
-	db "@"
+	text_end
 
 BenFernText3A:
 	; #MON March!
 	text_far _BenFernText3A
-	db "@"
+	text_end
 
 BenFernText3B:
 	; #MON Lullaby!
 	text_far _BenFernText3B
-	db "@"
+	text_end
 
 LuckyNumberShow1:
 	call StartRadioStation
@@ -1063,67 +1063,67 @@
 LC_Text1:
 	; REED: Yeehaw! How
 	text_far _LC_Text1
-	db "@"
+	text_end
 
 LC_Text2:
 	; y'all doin' now?
 	text_far _LC_Text2
-	db "@"
+	text_end
 
 LC_Text3:
 	; Whether you're up
 	text_far _LC_Text3
-	db "@"
+	text_end
 
 LC_Text4:
 	; or way down low,
 	text_far _LC_Text4
-	db "@"
+	text_end
 
 LC_Text5:
 	; don't you miss the
 	text_far _LC_Text5
-	db "@"
+	text_end
 
 LC_Text6:
 	; LUCKY NUMBER SHOW!
 	text_far _LC_Text6
-	db "@"
+	text_end
 
 LC_Text7:
 	; This week's Lucky
 	text_far _LC_Text7
-	db "@"
+	text_end
 
 LC_Text8:
 	; Number is @ !
 	text_far _LC_Text8
-	db "@"
+	text_end
 
 LC_Text9:
 	; I'll repeat that!
 	text_far _LC_Text9
-	db "@"
+	text_end
 
 LC_Text10:
 	; Match it and go to
 	text_far _LC_Text10
-	db "@"
+	text_end
 
 LC_Text11:
 	; the RADIO TOWER!
 	text_far _LC_Text11
-	db "@"
+	text_end
 
 LC_DragText1:
 	; …Repeating myself
 	text_far _LC_DragText1
-	db "@"
+	text_end
 
 LC_DragText2:
 	; gets to be a drag…
 	text_far _LC_DragText2
-	db "@"
+	text_end
 
 PeoplePlaces1:
 	call StartRadioStation
@@ -1149,17 +1149,17 @@
 PnP_Text1:
 	; PLACES AND PEOPLE!
 	text_far _PnP_Text1
-	db "@"
+	text_end
 
 PnP_Text2:
 	; Brought to you by
 	text_far _PnP_Text2
-	db "@"
+	text_end
 
 PnP_Text3:
 	; me, DJ LILY!
 	text_far _PnP_Text3
-	db "@"
+	text_end
 
 PeoplePlaces4: ; People
 	call Random
@@ -1201,7 +1201,7 @@
 PnP_Text4:
 	; @  @ @
 	text_far _PnP_Text4
-	db "@"
+	text_end
 
 PeoplePlaces5:
 	; 0-15 are all valid indexes into .Adjectives,
@@ -1250,82 +1250,82 @@
 PnP_cute:
 	; is cute.
 	text_far _PnP_cute
-	db "@"
+	text_end
 
 PnP_lazy:
 	; is sort of lazy.
 	text_far _PnP_lazy
-	db "@"
+	text_end
 
 PnP_happy:
 	; is always happy.
 	text_far _PnP_happy
-	db "@"
+	text_end
 
 PnP_noisy:
 	; is quite noisy.
 	text_far _PnP_noisy
-	db "@"
+	text_end
 
 PnP_precocious:
 	; is precocious.
 	text_far _PnP_precocious
-	db "@"
+	text_end
 
 PnP_bold:
 	; is somewhat bold.
 	text_far _PnP_bold
-	db "@"
+	text_end
 
 PnP_picky:
 	; is too picky!
 	text_far _PnP_picky
-	db "@"
+	text_end
 
 PnP_sortofok:
 	; is sort of OK.
 	text_far _PnP_sortofok
-	db "@"
+	text_end
 
 PnP_soso:
 	; is just so-so.
 	text_far _PnP_soso
-	db "@"
+	text_end
 
 PnP_great:
 	; is actually great.
 	text_far _PnP_great
-	db "@"
+	text_end
 
 PnP_mytype:
 	; is just my type.
 	text_far _PnP_mytype
-	db "@"
+	text_end
 
 PnP_cool:
 	; is so cool, no?
 	text_far _PnP_cool
-	db "@"
+	text_end
 
 PnP_inspiring:
 	; is inspiring!
 	text_far _PnP_inspiring
-	db "@"
+	text_end
 
 PnP_weird:
 	; is kind of weird.
 	text_far _PnP_weird
-	db "@"
+	text_end
 
 PnP_rightforme:
 	; is right for me?
 	text_far _PnP_rightforme
-	db "@"
+	text_end
 
 PnP_odd:
 	; is definitely odd!
 	text_far _PnP_odd
-	db "@"
+	text_end
 
 PeoplePlaces6: ; Places
 	call Random
@@ -1351,7 +1351,7 @@
 PnP_Text5:
 	; @ @
 	text_far _PnP_Text5
-	db "@"
+	text_end
 
 PeoplePlaces7:
 	; 0-15 are all valid indexes into .Adjectives,
@@ -1452,52 +1452,52 @@
 RocketRadioText1:
 	; … …Ahem, we are
 	text_far _RocketRadioText1
-	db "@"
+	text_end
 
 RocketRadioText2:
 	; TEAM ROCKET!
 	text_far _RocketRadioText2
-	db "@"
+	text_end
 
 RocketRadioText3:
 	; After three years
 	text_far _RocketRadioText3
-	db "@"
+	text_end
 
 RocketRadioText4:
 	; of preparation, we
 	text_far _RocketRadioText4
-	db "@"
+	text_end
 
 RocketRadioText5:
 	; have risen again
 	text_far _RocketRadioText5
-	db "@"
+	text_end
 
 RocketRadioText6:
 	; from the ashes!
 	text_far _RocketRadioText6
-	db "@"
+	text_end
 
 RocketRadioText7:
 	; GIOVANNI! @ Can you
 	text_far _RocketRadioText7
-	db "@"
+	text_end
 
 RocketRadioText8:
 	; hear?@  We did it!
 	text_far _RocketRadioText8
-	db "@"
+	text_end
 
 RocketRadioText9:
 	; @ Where is our boss?
 	text_far _RocketRadioText9
-	db "@"
+	text_end
 
 RocketRadioText10:
 	; @ Is he listening?
 	text_far _RocketRadioText10
-	db "@"
+	text_end
 
 PokeFluteRadio:
 	call StartRadioStation
@@ -1809,92 +1809,92 @@
 BuenaRadioText1:
 	; BUENA: BUENA here!
 	text_far _BuenaRadioText1
-	db "@"
+	text_end
 
 BuenaRadioText2:
 	; Today's password!
 	text_far _BuenaRadioText2
-	db "@"
+	text_end
 
 BuenaRadioText3:
 	; Let me think… It's
 	text_far _BuenaRadioText3
-	db "@"
+	text_end
 
 BuenaRadioText4:
 	; @ !
 	text_far _BuenaRadioText4
-	db "@"
+	text_end
 
 BuenaRadioText5:
 	; Don't forget it!
 	text_far _BuenaRadioText5
-	db "@"
+	text_end
 
 BuenaRadioText6:
 	; I'm in GOLDENROD's
 	text_far _BuenaRadioText6
-	db "@"
+	text_end
 
 BuenaRadioText7:
 	; RADIO TOWER!
 	text_far _BuenaRadioText7
-	db "@"
+	text_end
 
 BuenaRadioMidnightText1:
 	; BUENA: Oh my…
 	text_far _BuenaRadioMidnightText1
-	db "@"
+	text_end
 
 BuenaRadioMidnightText2:
 	; It's midnight! I
 	text_far _BuenaRadioMidnightText2
-	db "@"
+	text_end
 
 BuenaRadioMidnightText3:
 	; have to shut down!
 	text_far _BuenaRadioMidnightText3
-	db "@"
+	text_end
 
 BuenaRadioMidnightText4:
 	; Thanks for tuning
 	text_far _BuenaRadioMidnightText4
-	db "@"
+	text_end
 
 BuenaRadioMidnightText5:
 	; in to the end! But
 	text_far _BuenaRadioMidnightText5
-	db "@"
+	text_end
 
 BuenaRadioMidnightText6:
 	; don't stay up too
 	text_far _BuenaRadioMidnightText6
-	db "@"
+	text_end
 
 BuenaRadioMidnightText7:
 	; late! Presented to
 	text_far _BuenaRadioMidnightText7
-	db "@"
+	text_end
 
 BuenaRadioMidnightText8:
 	; you by DJ BUENA!
 	text_far _BuenaRadioMidnightText8
-	db "@"
+	text_end
 
 BuenaRadioMidnightText9:
 	; I'm outta here!
 	text_far _BuenaRadioMidnightText9
-	db "@"
+	text_end
 
 BuenaRadioMidnightText10:
 	; …
 	text_far _BuenaRadioMidnightText10
-	db "@"
+	text_end
 
 BuenaOffTheAirText:
 	;
 	text_far _BuenaOffTheAirText
-	db "@"
+	text_end
 
 CopyRadioTextToRAM:
 	ld a, [hl]
--- a/engine/pokemon/bills_pc_top.asm
+++ b/engine/pokemon/bills_pc_top.asm
@@ -17,7 +17,7 @@
 .Text_GottaHavePokemon:
 	; You gotta have #MON to call!
 	text_far UnknownText_0x1c1006
-	db "@"
+	text_end
 
 .LogIn:
 	xor a
@@ -38,7 +38,7 @@
 .Text_What:
 	; What?
 	text_far UnknownText_0x1c1024
-	db "@"
+	text_end
 
 .LogOut:
 	call CloseSubmenu
@@ -131,7 +131,7 @@
 .Text_MonHoldingMail:
 	; There is a #MON holding MAIL. Please remove the MAIL.
 	text_far UnknownText_0x1c102b
-	db "@"
+	text_end
 
 BillsPC_DepositMenu:
 	call LoadStandardMenuHeader
@@ -166,12 +166,12 @@
 .Text_NoMon:
 	; You don't have a single #MON!
 	text_far UnknownText_0x1c1062
-	db "@"
+	text_end
 
 .Text_ItsYourLastMon:
 	; You can't deposit your last #MON!
 	text_far UnknownText_0x1c1080
-	db "@"
+	text_end
 
 CheckCurPartyMonFainted:
 	ld hl, wPartyMon1HP
@@ -227,7 +227,7 @@
 UnknownText_0xe57e:
 	; You can't take any more #MON.
 	text_far UnknownText_0x1c10a2
-	db "@"
+	text_end
 
 BillsPC_ChangeBoxMenu:
 	farcall _ChangeBox
--- a/engine/pokemon/breeding.asm
+++ b/engine/pokemon/breeding.asm
@@ -357,7 +357,7 @@
 .Text_HatchEgg:
 	; Huh? @ @
 	text_far UnknownText_0x1c0db0
-	start_asm
+	text_asm
 	ld hl, wVramState
 	res 0, [hl]
 	push hl
@@ -379,17 +379,17 @@
 .ClearTextbox:
 	;
 	text_far UnknownText_0x1c0db8
-	db "@"
+	text_end
 
 .CameOutOfItsEgg:
 	; came out of its EGG!@ @
 	text_far UnknownText_0x1c0dba
-	db "@"
+	text_end
 
 .Text_NicknameHatchling:
 	; Give a nickname to @ ?
 	text_far UnknownText_0x1c0dd8
-	db "@"
+	text_end
 
 InitEggMoves:
 	call GetHeritableMoves
@@ -896,12 +896,12 @@
 DayCareMon2Text:
 	; It's @ that was left with the DAY-CARE LADY.
 	text_far UnknownText_0x1c0df3
-	db "@"
+	text_end
 
 DayCareMon1Text:
 	; It's @ that was left with the DAY-CARE MAN.
 	text_far UnknownText_0x1c0e24
-	db "@"
+	text_end
 
 DayCareMonCompatibilityText:
 	push bc
@@ -931,27 +931,27 @@
 .AllAlone:
 	; It's brimming with energy.
 	text_far UnknownText_0x1c0e54
-	db "@"
+	text_end
 
 .Incompatible:
 	; It has no interest in @ .
 	text_far UnknownText_0x1c0e6f
-	db "@"
+	text_end
 
 .HighCompatibility:
 	; It appears to care for @ .
 	text_far UnknownText_0x1c0e8d
-	db "@"
+	text_end
 
 .ModerateCompatibility:
 	; It's friendly with @ .
 	text_far UnknownText_0x1c0eac
-	db "@"
+	text_end
 
 .SlightCompatibility:
 	; It shows interest in @ .
 	text_far UnknownText_0x1c0ec6
-	db "@"
+	text_end
 
 Unreferenced_DayCareMonPrintEmptyString:
 	ld hl, .string
--- a/engine/pokemon/caught_data.asm
+++ b/engine/pokemon/caught_data.asm
@@ -159,7 +159,7 @@
 TextJump_GiveANickname:
 	; Give a nickname to the @  you received?
 	text_far UnknownText_0x1c12fc
-	db "@"
+	text_end
 
 SetCaughtData:
 	ld a, [wPartyCount]
--- a/engine/pokemon/evolve.asm
+++ b/engine/pokemon/evolve.asm
@@ -397,22 +397,22 @@
 Text_CongratulationsYourPokemon:
 	; Congratulations! Your @ @
 	text_far UnknownText_0x1c4b92
-	db "@"
+	text_end
 
 Text_EvolvedIntoPKMN:
 	; evolved into @ !
 	text_far UnknownText_0x1c4baf
-	db "@"
+	text_end
 
 Text_StoppedEvolving:
 	; Huh? @ stopped evolving!
 	text_far UnknownText_0x1c4bc5
-	db "@"
+	text_end
 
 Text_WhatEvolving:
 	; What? @ is evolving!
 	text_far UnknownText_0x1c4be3
-	db "@"
+	text_end
 
 LearnLevelMoves:
 	ld a, [wTempSpecies]
--- a/engine/pokemon/knows_move.asm
+++ b/engine/pokemon/knows_move.asm
@@ -22,4 +22,4 @@
 .Text_knows:
 	; knows @ .
 	text_far UnknownText_0x1c5ea8
-	db "@"
+	text_end
--- a/engine/pokemon/learn.asm
+++ b/engine/pokemon/learn.asm
@@ -203,32 +203,32 @@
 Text_LearnedMove:
 ; <MON> learned <MOVE>!
 	text_far UnknownText_0x1c5660
-	db "@"
+	text_end
 
 Text_ForgetWhich:
 ; Which move should be forgotten?
 	text_far UnknownText_0x1c5678
-	db "@"
+	text_end
 
 Text_StopLearning:
 ; Stop learning <MOVE>?
 	text_far UnknownText_0x1c5699
-	db "@"
+	text_end
 
 Text_DidNotLearn:
 ; <MON> did not learn <MOVE>.
 	text_far UnknownText_0x1c56af
-	db "@"
+	text_end
 
 Text_TryingToLearn:
 ; <MON> is trying to learn <MOVE>. But <MON> can't learn more than
 ; four moves. Delete an older move to make room for <MOVE>?
 	text_far UnknownText_0x1c56c9
-	db "@"
+	text_end
 
 Text_1_2_and_Poof:
 	text_far UnknownText_0x1c5740 ; 1, 2 and…
-	start_asm
+	text_asm
 	push de
 	ld de, SFX_SWITCH_POKEMON
 	call PlaySFX
@@ -239,9 +239,9 @@
 .PoofForgot:
 ; Poof! <MON> forgot <MOVE>. And…
 	text_far UnknownText_0x1c574e
-	db "@"
+	text_end
 
 Text_CantForgetHM:
 ; HM moves can't be forgotten now.
 	text_far UnknownText_0x1c5772
-	db "@"
+	text_end
--- a/engine/pokemon/mail.asm
+++ b/engine/pokemon/mail.asm
@@ -311,7 +311,7 @@
 
 .EmptyMailboxText:
 	text_far _EmptyMailboxText
-	db "@"
+	text_end
 
 InitMail:
 ; initialize wMailboxCount and beyond with incrementing values, one per mail
@@ -454,15 +454,15 @@
 
 .PutAwayText:
 	text_far ClearedMailPutAwayText
-	db "@"
+	text_end
 
 .PackFullText:
 	text_far MailPackFullText
-	db "@"
+	text_end
 
 .MessageLostText:
 	text_far MailMessageLostText
-	db "@"
+	text_end
 
 .GetMailType:
 	push af
@@ -522,15 +522,15 @@
 
 .HoldingMailText:
 	text_far MailAlreadyHoldingItemText
-	db "@"
+	text_end
 
 .EggText:
 	text_far MailEggText
-	db "@"
+	text_end
 
 .MailMovedText:
 	text_far MailMovedFromBoxText
-	db "@"
+	text_end
 
 .Cancel:
 	ret
--- a/engine/pokemon/mon_menu.asm
+++ b/engine/pokemon/mon_menu.asm
@@ -64,17 +64,17 @@
 .TossHowMany:
 	; Toss out how many @ (S)?
 	text_far UnknownText_0x1c1a90
-	db "@"
+	text_end
 
 .ConfirmToss:
 	; Throw away @ @ (S)?
 	text_far UnknownText_0x1c1aad
-	db "@"
+	text_end
 
 .TossedThisMany:
 	; Discarded @ (S).
 	text_far UnknownText_0x1c1aca
-	db "@"
+	text_end
 
 .CantToss:
 	ld hl, .TooImportantToToss
@@ -84,7 +84,7 @@
 .TooImportantToToss:
 	; That's too impor- tant to toss out!
 	text_far UnknownText_0x1c1adf
-	db "@"
+	text_end
 
 CantUseItem:
 	ld hl, CantUseItemText
@@ -93,7 +93,7 @@
 
 CantUseItemText:
 	text_far UnknownText_0x1c1b03
-	db "@"
+	text_end
 
 PartyMonItemName:
 	ld a, [wCurItem]
@@ -392,35 +392,35 @@
 
 TookAndMadeHoldText:
 	text_far UnknownText_0x1c1b2c
-	db "@"
+	text_end
 
 MadeHoldText:
 	text_far UnknownText_0x1c1b57
-	db "@"
+	text_end
 
 PleaseRemoveMailText:
 	text_far UnknownText_0x1c1b6f
-	db "@"
+	text_end
 
 IsntHoldingAnythingText:
 	text_far UnknownText_0x1c1b8e
-	db "@"
+	text_end
 
 ItemStorageIsFullText:
 	text_far UnknownText_0x1c1baa
-	db "@"
+	text_end
 
 TookFromText:
 	text_far UnknownText_0x1c1bc4
-	db "@"
+	text_end
 
 SwitchAlreadyHoldingText:
 	text_far UnknownText_0x1c1bdc
-	db "@"
+	text_end
 
 CantBeHeldText:
 	text_far UnknownText_0x1c1c09
-	db "@"
+	text_end
 
 GetPartyItemLocation:
 	push af
@@ -563,32 +563,32 @@
 .mailwilllosemessagetext
 ; The MAIL will lose its message. OK?
 	text_far UnknownText_0x1c1c22
-	db "@"
+	text_end
 
 .tookmailfrommontext
 ; MAIL detached from <POKEMON>.
 	text_far UnknownText_0x1c1c47
-	db "@"
+	text_end
 
 .bagfulltext
 ; There's no space for removing MAIL.
 	text_far UnknownText_0x1c1c62
-	db "@"
+	text_end
 
 .sendmailtopctext
 ; Send the removed MAIL to your PC?
 	text_far UnknownText_0x1c1c86
-	db "@"
+	text_end
 
 .mailboxfulltext
 ; Your PC's MAILBOX is full.
 	text_far UnknownText_0x1c1ca9
-	db "@"
+	text_end
 
 .sentmailtopctext
 ; The MAIL was sent to your PC.
 	text_far UnknownText_0x1c1cc4
-	db "@"
+	text_end
 
 OpenPartyStats:
 	call LoadStandardMenuHeader
@@ -750,7 +750,7 @@
 .Text_NotEnoughHP:
 	; Not enough HP!
 	text_far UnknownText_0x1c1ce3
-	db "@"
+	text_end
 
 .CheckMonHasEnoughHP:
 ; Need to have at least (MaxHP / 5) HP left.
--- a/engine/pokemon/move_mon.asm
+++ b/engine/pokemon/move_mon.asm
@@ -1801,7 +1801,7 @@
 TextJump_WasSentToBillsPC:
 	; was sent to BILL's PC.
 	text_far Text_WasSentToBillsPC
-	db "@"
+	text_end
 
 InitNickname:
 	push de
--- a/engine/pokemon/party_menu.asm
+++ b/engine/pokemon/party_menu.asm
@@ -806,52 +806,52 @@
 .Text_RecoveredSomeHP:
 	; recovered @ HP!
 	text_far UnknownText_0x1bc0a2
-	db "@"
+	text_end
 
 .Text_CuredOfPoison:
 	; 's cured of poison.
 	text_far UnknownText_0x1bc0bb
-	db "@"
+	text_end
 
 .Text_RidOfParalysis:
 	; 's rid of paralysis.
 	text_far UnknownText_0x1bc0d2
-	db "@"
+	text_end
 
 .Text_BurnWasHealed:
 	; 's burn was healed.
 	text_far UnknownText_0x1bc0ea
-	db "@"
+	text_end
 
 .Text_Defrosted:
 	; was defrosted.
 	text_far UnknownText_0x1bc101
-	db "@"
+	text_end
 
 .Text_WokeUp:
 	; woke up.
 	text_far UnknownText_0x1bc115
-	db "@"
+	text_end
 
 .Text_HealthReturned:
 	; 's health returned.
 	text_far UnknownText_0x1bc123
-	db "@"
+	text_end
 
 .Text_Revitalized:
 	; is revitalized.
 	text_far UnknownText_0x1bc13a
-	db "@"
+	text_end
 
 .Text_GrewToLevel:
 	; grew to level @ !@ @
 	text_far UnknownText_0x1bc14f
-	db "@"
+	text_end
 
 .Text_CameToItsSenses:
 	; came to its senses.
 	text_far UnknownText_0x1bc16e
-	db "@"
+	text_end
 
 .PrintText:
 	ld e, a
--- a/engine/rtc/reset_password.asm
+++ b/engine/rtc/reset_password.asm
@@ -34,17 +34,17 @@
 .text_okay
 	; Password OK. Select CONTINUE & reset settings.
 	text_far UnknownText_0x1c55db
-	db "@"
+	text_end
 
 .text_wrong
 	; Wrong password!
 	text_far UnknownText_0x1c560b
-	db "@"
+	text_end
 
 .text_askreset
 	; Reset the clock?
 	text_far UnknownText_0x1c561c
-	db "@"
+	text_end
 
 .NoYes_MenuHeader:
 	db 0 ; flags
@@ -104,7 +104,7 @@
 .pleaseenterpasswordtext
 	; Please enter the password.
 	text_far UnknownText_0x1c562e
-	db "@"
+	text_end
 
 .updateIDdisplay
 	hlcoord 14, 15
--- a/engine/rtc/restart_clock.asm
+++ b/engine/rtc/restart_clock.asm
@@ -50,12 +50,12 @@
 .Text_ClockTimeMayBeWrong:
 	; The clock's time may be wrong. Please reset the time.
 	text_far UnknownText_0x1c40e6
-	db "@"
+	text_end
 
 .Text_SetWithControlPad:
 	; Set with the Control Pad. Confirm: A Button Cancel:  B Button
 	text_far UnknownText_0x1c411c
-	db "@"
+	text_end
 
 .SetClock:
 	ld a, 1
@@ -104,12 +104,12 @@
 .Text_IsThisOK:
 	; Is this OK?
 	text_far UnknownText_0x1c415b
-	db "@"
+	text_end
 
 .Text_ClockReset:
 	; The clock has been reset.
 	text_far UnknownText_0x1c4168
-	db "@"
+	text_end
 
 .joy_loop
 	call JoyTextDelay_ForcehJoyDown
--- a/engine/rtc/timeset.asm
+++ b/engine/rtc/timeset.asm
@@ -292,12 +292,12 @@
 Text_WokeUpOak:
 	; Zzz… Hm? Wha…? You woke me up! Will you check the clock for me?
 	text_far UnknownText_0x1bc29c
-	db "@"
+	text_end
 
 Text_WhatTimeIsIt:
 	; What time is it?
 	text_far UnknownText_0x1bc2eb
-	db "@"
+	text_end
 
 String_oclock:
 	db "o'clock@"
@@ -305,7 +305,7 @@
 Text_WhatHrs:
 	; What?@ @
 	text_far UnknownText_0x1bc2fd
-	start_asm
+	text_asm
 	hlcoord 1, 16
 	call DisplayHourOClock
 	ld hl, .QuestionMark
@@ -314,12 +314,12 @@
 .QuestionMark:
 	; ?
 	text_far UnknownText_0x1bc305
-	db "@"
+	text_end
 
 Text_HowManyMinutes:
 	; How many minutes?
 	text_far UnknownText_0x1bc308
-	db "@"
+	text_end
 
 String_min:
 	db "min.@"
@@ -327,7 +327,7 @@
 Text_WhoaMins:
 	; Whoa!@ @
 	text_far UnknownText_0x1bc31b
-	start_asm
+	text_asm
 	hlcoord 7, 14
 	call DisplayMinutesWithMinString
 	ld hl, .QuestionMark
@@ -336,10 +336,10 @@
 .QuestionMark:
 	; ?
 	text_far UnknownText_0x1bc323
-	db "@"
+	text_end
 
 OakText_ResponseToSetTime:
-	start_asm
+	text_asm
 	decoord 1, 14
 	ld a, [wInitHourBuffer]
 	ld c, a
@@ -371,17 +371,17 @@
 .overslept
 	; ! I overslept!
 	text_far UnknownText_0x1bc326
-	db "@"
+	text_end
 
 .yikes
 	; ! Yikes! I over- slept!
 	text_far UnknownText_0x1bc336
-	db "@"
+	text_end
 
 .sodark
 	; ! No wonder it's so dark!
 	text_far UnknownText_0x1bc34f
-	db "@"
+	text_end
 
 TimeSetBackgroundGFX:
 INCBIN "gfx/new_game/timeset_bg.1bpp"
@@ -535,10 +535,10 @@
 .WhatDayIsItText:
 	; What day is it?
 	text_far UnknownText_0x1bc369
-	db "@"
+	text_end
 
 .ConfirmWeekdayText:
-	start_asm
+	text_asm
 	hlcoord 1, 14
 	call .PlaceWeekdayString
 	ld hl, .IsIt
@@ -547,7 +547,7 @@
 .IsIt:
 	; , is it?
 	text_far UnknownText_0x1bc37a
-	db "@"
+	text_end
 
 InitialSetDSTFlag:
 	ld a, [wDST]
@@ -561,7 +561,7 @@
 	ret
 
 .Text:
-	start_asm
+	text_asm
 	call UpdateTime
 	ldh a, [hHours]
 	ld b, a
@@ -575,7 +575,7 @@
 .DSTIsThatOK:
 	; DST, is that OK?
 	text_far Text_DSTIsThatOK
-	db "@"
+	text_end
 
 InitialClearDSTFlag:
 	ld a, [wDST]
@@ -589,7 +589,7 @@
 	ret
 
 .Text:
-	start_asm
+	text_asm
 	call UpdateTime
 	ldh a, [hHours]
 	ld b, a
@@ -603,7 +603,7 @@
 .IsThatOK:
 	; , is that OK?
 	text_far UnknownText_0x1c5ff1
-	db "@"
+	text_end
 
 DebugDisplayTime:
 	hlcoord 1, 14
@@ -614,7 +614,7 @@
 	ret
 
 .Text:
-	start_asm
+	text_asm
 	call UpdateTime
 
 	hlcoord 1, 14
--- a/home/map.asm
+++ b/home/map.asm
@@ -1108,7 +1108,7 @@
 
 ObjectEventText::
 	text_far _ObjectEventText
-	db "@"
+	text_end
 
 BGEvent::
 	jumptext BGEventText
@@ -1115,7 +1115,7 @@
 
 BGEventText::
 	text_far UnknownText_0x1c46fc
-	db "@"
+	text_end
 
 CoordinatesEvent::
 	jumptext CoordinatesEventText
@@ -1122,7 +1122,7 @@
 
 CoordinatesEventText::
 	text_far UnknownText_0x1c4706
-	db "@"
+	text_end
 
 CheckObjectMask::
 	ldh a, [hMapObjectIndexBuffer]
--- a/home/text.asm
+++ b/home/text.asm
@@ -135,8 +135,10 @@
 RadioTerminator::
 	ld hl, .stop
 	ret
-.stop	db "@"
 
+.stop:
+	text_end
+
 PrintText::
 	call SetUpTextBox
 BuenaPrintText::
@@ -557,7 +559,8 @@
 	dec de
 	ret
 
-.stop: db "@"
+.stop:
+	text_end
 
 NullChar::
 	ld a, "?"
@@ -641,7 +644,8 @@
 	ld hl, .stop
 	ret
 
-.stop: db "@"
+.stop:
+	text_end
 
 PlaceHLTextAtBC::
 	ld a, [wTextBoxFlags]
@@ -657,7 +661,7 @@
 
 DoTextUntilTerminator::
 	ld a, [hli]
-	cp "@"
+	cp TX_END
 	ret z
 	call .TextCommand
 	jr DoTextUntilTerminator
@@ -692,7 +696,7 @@
 	dw TextCommand_SCROLL           ; TX_SCROLL
 	dw TextCommand_START_ASM        ; TX_START_ASM
 	dw TextCommand_NUM              ; TX_NUM
-	dw TextCommand_EXIT             ; TX_EXIT
+	dw TextCommand_PAUSE            ; TX_PAUSE
 	dw TextCommand_SOUND            ; TX_SOUND_DEX_FANFARE_50_79
 	dw TextCommand_DOTS             ; TX_DOTS
 	dw TextCommand_LINK_WAIT_BUTTON ; TX_LINK_WAIT_BUTTON
@@ -722,7 +726,7 @@
 	ret
 
 TextCommand_RAM::
-; text_from_ram
+; text_ram
 ; write text from a ram address
 ; little endian
 ; [$01][addr]
@@ -864,7 +868,7 @@
 	ret
 
 TextCommand_START_ASM::
-; start_asm
+; text_asm
 
 	bit 7, h
 	jr nz, .not_rom
@@ -871,12 +875,12 @@
 	jp hl
 
 .not_rom
-	ld a, "@"
+	ld a, TX_END
 	ld [hl], a
 	ret
 
 TextCommand_NUM::
-; deciram
+; text_decimal
 ; [$09][addr][hi:bytes lo:digits]
 	ld a, [hli]
 	ld e, a
@@ -900,8 +904,8 @@
 	pop hl
 	ret
 
-TextCommand_EXIT::
-; interpret_data
+TextCommand_PAUSE::
+; text_pause
 	push hl
 	push bc
 	call GetJoypad
@@ -951,7 +955,7 @@
 	ret
 
 Unreferenced_Function1522::
-; play_cry
+; sound_cry
 	push de
 	ld e, [hl]
 	inc hl
@@ -973,7 +977,7 @@
 	db -1
 
 TextCommand_DOTS::
-; limited_interpret_data
+; text_dots
 ; [$0C][num]
 	ld a, [hli]
 	ld d, a
@@ -1002,7 +1006,7 @@
 	ret
 
 TextCommand_LINK_WAIT_BUTTON::
-; link_wait_button
+; text_linkwaitbutton
 ; wait for key down
 ; display arrow
 	push hl
@@ -1042,7 +1046,7 @@
 	ret
 
 TextCommand_DAY::
-; current_day
+; text_today
 
 	call GetWeekday
 	push hl
--- a/macros/legacy.asm
+++ b/macros/legacy.asm
@@ -166,4 +166,11 @@
 step_sleep_8 EQUS "step_sleep 8"
 
 ; macros/scripts/text.asm
-text_jump EQUS "text_far"
+text_from_ram          EQUS "text_ram"
+start_asm              EQUS "text_asm"
+deciram                EQUS "text_decimal"
+interpret_data         EQUS "text_pause"
+limited_interpret_data EQUS "text_dots"
+link_wait_button       EQUS "text_linkwaitbutton"
+current_day            EQUS "text_today"
+text_jump              EQUS "text_far"
--- a/macros/scripts/text.asm
+++ b/macros/scripts/text.asm
@@ -16,7 +16,7 @@
 ENDM
 
 	enum TX_RAM ; $01
-text_from_ram: MACRO
+text_ram: MACRO
 	db TX_RAM
 	dw \1
 ENDM
@@ -57,20 +57,20 @@
 ENDM
 
 	enum TX_START_ASM ; $08
-start_asm: MACRO
+text_asm: MACRO
 	db TX_START_ASM
 ENDM
 
 	enum TX_NUM ; $09
-deciram: MACRO
+text_decimal: MACRO
 	db TX_NUM
 	dw \1 ; address
 	dn \2, \3 ; bytes, digits
 ENDM
 
-	enum TX_EXIT ; $0a
-interpret_data: MACRO
-	db TX_EXIT
+	enum TX_PAUSE ; $0a
+text_pause: MACRO
+	db TX_PAUSE
 ENDM
 
 	enum TX_SOUND_DEX_FANFARE_50_79 ; $0b
@@ -79,13 +79,13 @@
 ENDM
 
 	enum TX_DOTS ; $0c
-limited_interpret_data: MACRO
+text_dots: MACRO
 	db TX_DOTS
 	db \1
 ENDM
 
 	enum TX_LINK_WAIT_BUTTON ; $0d
-link_wait_button: MACRO
+text_linkwaitbutton: MACRO
 	db TX_LINK_WAIT_BUTTON
 ENDM
 
@@ -126,7 +126,7 @@
 ENDM
 
 	enum TX_DAY ; $15
-current_day: MACRO
+text_today: MACRO
 	db TX_DAY
 ENDM
 
@@ -135,4 +135,11 @@
 	db TX_FAR
 	dw \1
 	db BANK(\1)
+ENDM
+
+	enum_set $50
+
+	enum TX_END ; $50
+text_end: MACRO
+	db TX_END
 ENDM
--- a/maps/BattleTower1F.asm
+++ b/maps/BattleTower1F.asm
@@ -525,11 +525,11 @@
 Text_PlayerGotFive:
 	text "<PLAYER> got five"
 	line "@"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text "!@"
 	sound_item
 	text_waitbutton
-	db "@"
+	text_end
 
 Text_YourPackIsStuffedFull:
 	text "Oops, your PACK is"
@@ -635,7 +635,7 @@
 Text_NextUpOpponentNo:
 	text "Next up, opponent"
 	line "no.@"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text ". Ready?"
 	done
 
@@ -734,12 +734,12 @@
 	text "One or more of"
 	line "your #MON's"
 	cont "levels exceeds @"
-	deciram wScriptVar, 1, 3
+	text_decimal wScriptVar, 1, 3
 	text "."
 	done
 
 Text_MayNotEnterABattleRoomUnderL70:
-	text_from_ram wcd49
+	text_ram wcd49
 	text " may not"
 	line "enter a BATTLE"
 	cont "ROOM under L70."
@@ -746,7 +746,7 @@
 
 	para "This BATTLE ROOM"
 	line "is for L@"
-	deciram wScriptVar, 1, 3
+	text_decimal wScriptVar, 1, 3
 	text "."
 	done
 
--- a/maps/BillsHouse.asm
+++ b/maps/BillsHouse.asm
@@ -239,7 +239,7 @@
 BillsGrandpaShownPokemonText:
 	text "Ah, so that is"
 	line "@"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "?"
 
 	para "Isn't it cute!"
--- a/maps/BluesHouse.asm
+++ b/maps/BluesHouse.asm
@@ -104,7 +104,7 @@
 	done
 
 GroomedMonLooksContentText:
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text " looks"
 	line "content."
 	done
--- a/maps/CeladonCafe.asm
+++ b/maps/CeladonCafe.asm
@@ -196,7 +196,7 @@
 FoundLeftoversText:
 	text "<PLAYER> found"
 	line "@"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "!"
 	done
 
--- a/maps/CeladonDeptStore6F.asm
+++ b/maps/CeladonDeptStore6F.asm
@@ -107,7 +107,7 @@
 	text "Clang!"
 
 	para "@"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text_start
 	line "popped out."
 	done
--- a/maps/CeladonGameCornerPrizeRoom.asm
+++ b/maps/CeladonGameCornerPrizeRoom.asm
@@ -233,7 +233,7 @@
 CeladonPrizeRoom_ConfirmPurchaseText:
 	text "OK, so you wanted"
 	line "a @"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "?"
 	done
 
--- a/maps/DragonsDenB1F.asm
+++ b/maps/DragonsDenB1F.asm
@@ -393,7 +393,7 @@
 Text_FoundDragonFang:
 	text "<PLAYER> found"
 	line "@"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "!"
 	done
 
--- a/maps/ElmsLab.asm
+++ b/maps/ElmsLab.asm
@@ -891,7 +891,7 @@
 ReceivedStarterText:
 	text "<PLAYER> received"
 	line "@"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "!"
 	done
 
--- a/maps/GoldenrodDeptStore6F.asm
+++ b/maps/GoldenrodDeptStore6F.asm
@@ -100,7 +100,7 @@
 GoldenrodClangText:
 	text "Clang! A can of"
 	line "@"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text_start
 	cont "popped out!"
 	done
--- a/maps/GoldenrodGameCorner.asm
+++ b/maps/GoldenrodGameCorner.asm
@@ -326,7 +326,7 @@
 	done
 
 GoldenrodGameCornerPrizeVendorConfirmPrizeText:
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "."
 	line "Is that right?"
 	done
--- a/maps/GoldenrodHappinessRater.asm
+++ b/maps/GoldenrodHappinessRater.asm
@@ -78,7 +78,7 @@
 
 	para "Oh? Let me see"
 	line "your @"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "…"
 	done
 
--- a/maps/GoldenrodPokecenter1F.asm
+++ b/maps/GoldenrodPokecenter1F.asm
@@ -180,10 +180,10 @@
 	line "to trade your"
 
 	para "@"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text " for"
 	line "@"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text "."
 
 	para "We'll have to hold"
@@ -200,7 +200,7 @@
 	line "to trade your"
 
 	para "@"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text " for a"
 	line "#MON that you"
 	cont "have never seen."
--- a/maps/GoldenrodUnderground.asm
+++ b/maps/GoldenrodUnderground.asm
@@ -617,19 +617,19 @@
 	done
 
 HaircutBrosText_SlightlyHappier:
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text " looks a"
 	line "little happier."
 	done
 
 HaircutBrosText_Happier:
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text " looks"
 	line "happy."
 	done
 
 HaircutBrosText_MuchHappier:
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text " looks"
 	line "delighted!"
 	done
--- a/maps/LakeOfRageMagikarpHouse.asm
+++ b/maps/LakeOfRageMagikarpHouse.asm
@@ -199,11 +199,13 @@
 	text "CURRENT RECORD"
 
 	para "@"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text " caught by"
 	line "@"
-	text_from_ram wStringBuffer4
-	db "@@"
+	text_ram wStringBuffer4
+	text_end
+
+	text_end ; unused
 
 LakeOfRageMagikarpHouse_MapEvents:
 	db 0, 0 ; filler
--- a/maps/Pokecenter2F.asm
+++ b/maps/Pokecenter2F.asm
@@ -912,7 +912,7 @@
 
 Text_RejectNewMon:
 	text "Sorry--@"
-	text_from_ram wStringBuffer1
+	text_ram wStringBuffer1
 	text_start
 	line "can't be taken."
 	prompt
@@ -920,10 +920,10 @@
 Text_RejectMonWithNewMove:
 	text "You can't take the"
 	line "@"
-	text_from_ram wStringBuffer1
+	text_ram wStringBuffer1
 	text " with a"
 	cont "@"
-	text_from_ram wStringBuffer2
+	text_ram wStringBuffer2
 	text "."
 	prompt
 
@@ -930,7 +930,7 @@
 Text_RejectMonWithMail:
 	text "You can't take the"
 	line "@"
-	text_from_ram wStringBuffer1
+	text_ram wStringBuffer1
 	text " that"
 	cont "has MAIL with you."
 	prompt
--- a/maps/RadioTower1F.asm
+++ b/maps/RadioTower1F.asm
@@ -237,7 +237,7 @@
 UnknownText_0x5cf3a:
 	text "This week's ID"
 	line "number is @"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "."
 	done
 
--- a/maps/Route35NationalParkGate.asm
+++ b/maps/Route35NationalParkGate.asm
@@ -224,7 +224,7 @@
 
 UnknownText_0x6a2eb:
 	text "Today's @"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "."
 	line "That means the"
 
@@ -287,7 +287,7 @@
 
 	para "You'll have to use"
 	line "@"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text ", the"
 
 	para "first #MON in"
@@ -371,7 +371,7 @@
 
 UnknownText_0x6a79a:
 	text "You still have @"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text_start
 	line "minute(s) left."
 
--- a/maps/Route36NationalParkGate.asm
+++ b/maps/Route36NationalParkGate.asm
@@ -475,7 +475,7 @@
 
 UnknownText_0x6add5:
 	text "Today's @"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "."
 	line "That means the"
 
@@ -538,7 +538,7 @@
 
 	para "You'll have to use"
 	line "@"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text ", the"
 
 	para "first #MON in"
@@ -622,7 +622,7 @@
 
 UnknownText_0x6b284:
 	text "You still have @"
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text_start
 	line "minute(s) left."
 
--- a/maps/TrainerHouseB1F.asm
+++ b/maps/TrainerHouseB1F.asm
@@ -119,7 +119,7 @@
 	done
 
 TrainerHouseB1FYourOpponentIsText:
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text " is your"
 	line "opponent today."
 	done
--- a/mobile/mobile_12_2.asm
+++ b/mobile/mobile_12_2.asm
@@ -242,7 +242,7 @@
 UnknownText_0x4a9be:
 	; Pick three #MON for battle.
 	text_far UnknownText_0x1c51d7
-	db "@"
+	text_end
 
 Function4a9c3:
 	ld hl, wd002
@@ -295,7 +295,7 @@
 UnknownText_0x4aa1d:
 	; , @  and @ . Use these three?
 	text_far UnknownText_0x1c51f4
-	db "@"
+	text_end
 
 Function4aa22:
 	call ClearBGPalettes
@@ -795,7 +795,7 @@
 UnknownText_0x4ad51:
 	; Only three #MON may enter.
 	text_far UnknownText_0x1c521c
-	db "@"
+	text_end
 
 Function4ad56:
 	farcall OpenPartyStats
--- a/mobile/mobile_22.asm
+++ b/mobile/mobile_22.asm
@@ -2637,22 +2637,22 @@
 UnknownText_0x8a102:
 	; The CARD FOLDER stores your and your friends' CARDS. A CARD contains information like the person's name, phone number and profile.
 	text_far UnknownText_0x1c5238
-	db "@"
+	text_end
 
 UnknownText_0x8a107:
 	; This is your CARD. Once you've entered your phone number, you can trade CARDS with your friends.
 	text_far UnknownText_0x1c52bc
-	db "@"
+	text_end
 
 UnknownText_0x8a10c:
 	; If you have your friend's CARD, you can use it to make a call from a mobile phone on the 2nd floor of a #MON CENTER.
 	text_far UnknownText_0x1c531e
-	db "@"
+	text_end
 
 UnknownText_0x8a111:
 	; To safely store your collection of CARDS, you must set a PASSCODE for your CARD FOLDER.
 	text_far UnknownText_0x1c5394
-	db "@"
+	text_end
 
 Function8a116:
 	ld a, $1
@@ -2781,17 +2781,17 @@
 UnknownText_0x8a232:
 	; If the CARD FOLDER is deleted, all its CARDS and the PASSCODE will also be deleted. Beware--a deleted CARD FOLDER can't be restored. Want to delete your CARD FOLDER?
 	text_far UnknownText_0x1c53ee
-	db "@"
+	text_end
 
 UnknownText_0x8a237:
 	; Are you sure you want to delete it?
 	text_far UnknownText_0x1c5494
-	db "@"
+	text_end
 
 UnknownText_0x8a23c:
 	; The CARD FOLDER has been deleted.
 	text_far UnknownText_0x1c54b9
-	db "@"
+	text_end
 
 Function8a241:
 	call LoadStandardMenuHeader
@@ -2876,12 +2876,12 @@
 UnknownText_0x8a2f4:
 	; There is an older CARD FOLDER from a previous journey. Do you want to open it?
 	text_far UnknownText_0x1c54dd
-	db "@"
+	text_end
 
 UnknownText_0x8a2f9:
 	; Delete the old CARD FOLDER?
 	text_far UnknownText_0x1c552d
-	db "@"
+	text_end
 
 Function8a2fe:
 	call Function8a313
@@ -4154,7 +4154,7 @@
 UnknownText_0x8ad06:
 	; Finish registering CARDS?
 	text_far UnknownText_0x1c554a
-	db "@"
+	text_end
 
 Function8ad0b:
 .asm_8ad0b
--- a/mobile/mobile_22_2.asm
+++ b/mobile/mobile_22_2.asm
@@ -460,27 +460,27 @@
 UnknownText_0x8b5ce:
 	; Please enter any four-digit number.
 	text_far UnknownText_0x1bc187
-	db "@"
+	text_end
 
 UnknownText_0x8b5d3:
 	; Enter the same number to confirm.
 	text_far UnknownText_0x1bc1ac
-	db "@"
+	text_end
 
 UnknownText_0x8b5d8:
 	; That's not the same number.
 	text_far UnknownText_0x1bc1cf
-	db "@"
+	text_end
 
 UnknownText_0x8b5dd:
 	; Your PASSCODE has been set. Enter this number next time to open the CARD FOLDER.
 	text_far UnknownText_0x1bc1eb
-	db "@"
+	text_end
 
 UnknownText_0x8b5e2:
 	; 0000 is invalid!
 	text_far UnknownText_0x1bc23e
-	db "@"
+	text_end
 
 Function8b5e7:
 	ld bc, wd013
@@ -525,17 +525,17 @@
 UnknownText_0x8b642:
 	; Enter the CARD FOLDER PASSCODE.
 	text_far UnknownText_0x1bc251
-	db "@"
+	text_end
 
 UnknownText_0x8b647:
 	; Incorrect PASSCODE!
 	text_far UnknownText_0x1bc272
-	db "@"
+	text_end
 
 UnknownText_0x8b64c:
 	; CARD FOLDER open.@ @
 	text_far UnknownText_0x1bc288
-	start_asm
+	text_asm
 	ld de, SFX_TWINKLE
 	call PlaySFX
 	call WaitSFX
@@ -543,8 +543,9 @@
 	call DelayFrames
 	ld hl, .string_8b663
 	ret
+
 .string_8b663
-	db "@"
+	text_end
 
 Function8b664:
 	push bc
--- a/mobile/mobile_40.asm
+++ b/mobile/mobile_40.asm
@@ -4803,15 +4803,15 @@
 
 UnknownText_0x1021d1:
 	text_far UnknownText_0x1bd19a
-	db "@"
+	text_end
 
 UnknownText_0x1021d6:
 	text_far UnknownText_0x1bd1ba
-	db "@"
+	text_end
 
 UnknownText_0x1021db:
 	text_far UnknownText_0x1bd1dd
-	db "@"
+	text_end
 
 Function1021e0:
 	call MenuTextBox
@@ -4821,15 +4821,15 @@
 
 UnknownText_0x1021ea:
 	text_far UnknownText_0x1bd201
-	db "@"
+	text_end
 
 UnknownText_0x1021ef:
 	text_far UnknownText_0x1bd211
-	db "@"
+	text_end
 
 UnknownText_0x1021f4:
 	text_far UnknownText_0x1bd223
-	db "@"
+	text_end
 
 Function1021f9:
 	call Function102233
@@ -6578,7 +6578,7 @@
 
 UnknownText_0x102ee2:
 	text_far UnknownText_0x1bd286
-	db "@"
+	text_end
 
 Function102ee7:
 	call Function102dc3
@@ -7497,25 +7497,31 @@
 
 UnknownText_0x10375d:
 	text_far UnknownText_0x1c422a
-	db "@"
+	text_end
+
 UnknownText_0x103762:
 	text_far UnknownText_0x1c4275
-	db "@"
+	text_end
+
 UnknownText_0x103767:
 	text_far UnknownText_0x1c4298
-	db "@"
+	text_end
+
 UnknownText_0x10376c:
 	text_far UnknownText_0x1c439c
-	db "@"
+	text_end
+
 UnknownText_0x103771:
 	text_far UnknownText_0x1c43dc
-	db "@"
+	text_end
+
 UnknownText_0x103776:
 	text_far UnknownText_0x1c4419
-	db "@"
+	text_end
+
 UnknownText_0x10377b:
 	text_far UnknownText_0x1c445a
-	db "@"
+	text_end
 
 Function103780:
 	ld a, [wChosenCableClubRoom]
@@ -7579,7 +7585,7 @@
 
 UnknownText_0x1037e6:
 	text_far UnknownText_0x1c449c
-	db "@"
+	text_end
 
 Function1037eb:
 	call Function103823
@@ -7609,11 +7615,11 @@
 
 UnknownText_0x103819:
 	text_far UnknownText_0x1c44c0
-	db "@"
+	text_end
 
 UnknownText_0x10381e:
 	text_far UnknownText_0x1c44e7
-	db "@"
+	text_end
 
 Function103823:
 	farcall Mobile_AlwaysReturnNotCarry
@@ -7661,7 +7667,7 @@
 
 UnknownText_0x103876:
 	text_far UnknownText_0x1c4508
-	db "@"
+	text_end
 
 Function10387b:
 	farcall Mobile_AlwaysReturnNotCarry
@@ -7677,4 +7683,4 @@
 
 UnknownText_0x103898:
 	text_far UnknownText_0x1c4525
-	db "@"
+	text_end
--- a/mobile/mobile_42.asm
+++ b/mobile/mobile_42.asm
@@ -1551,15 +1551,15 @@
 
 .PlayerWillTradeMon:
 	text_far UnknownText_0x1bc787
-	db "@"
+	text_end
 
 .ForPartnersMon:
 	text_far UnknownText_0x1bc79d
-	db "@"
+	text_end
 
 .UnusedTextPlayersMonTrade:
 	text_far UnknownText_0x1bc7b0
-	db "@"
+	text_end
 
 Function108c16:
 	ld a, $90
@@ -1572,7 +1572,7 @@
 
 .TakeGoodCareOfMon:
 	text_far UnknownText_0x1bc7c3
-	db "@"
+	text_end
 
 Function108c2b:
 	ld a, $90
@@ -1585,7 +1585,7 @@
 
 .PlayersMonTrade:
 	text_far UnknownText_0x1bc7dd
-	db "@"
+	text_end
 
 Function108c40:
 	ld a, $90
@@ -1608,11 +1608,11 @@
 
 .TakeGoodCareOf:
 	text_far UnknownText_0x1bc7f0
-	db "@"
+	text_end
 
 .CameBack:
 	text_far UnknownText_0x1bc80a
-	db "@"
+	text_end
 
 Function108c6d:
 	ld hl, LZ_108fe7
--- a/mobile/mobile_45.asm
+++ b/mobile/mobile_45.asm
@@ -7425,11 +7425,11 @@
 
 MobileStadiumEntryText:
 	text_far _MobileStadiumEntryText
-	db "@"
+	text_end
 
 MobileStadiumSuccessText:
 	text_far _MobileStadiumSuccessText
-	db "@"
+	text_end
 
 MobileStudium_JumptableIncrement:
 	ld hl, wJumptableIndex
--- a/mobile/mobile_46.asm
+++ b/mobile/mobile_46.asm
@@ -5451,7 +5451,7 @@
 	done
 
 Text_UberRestriction:
-	text_from_ram wcd49
+	text_ram wcd49
 	text " may go"
 	line "only to BATTLE"
 
@@ -5494,10 +5494,10 @@
 	done
 
 Text_ThisBattleRoomPleaseWait:
-	text_from_ram wStringBuffer3
+	text_ram wStringBuffer3
 	text "'s ROOM"
 	line "@"
-	text_from_ram wStringBuffer4
+	text_ram wStringBuffer4
 	text "?"
 	cont "Please wait…"
 	done
--- a/mobile/mobile_5f.asm
+++ b/mobile/mobile_5f.asm
@@ -178,33 +178,33 @@
 .loop
 	ld a, [de]
 	inc de
-	and a
+	and a ; "<NULL>"
 	jr z, .NextChar
-	cp $60
+	cp FIRST_REGULAR_TEXT_CHAR
 	jr nc, .NextChar
-	cp $4e
+	cp "<NEXT>"
 	jr z, .NextChar
 	cp "@"
 	jr z, .Done
-	cp $5
+	cp "ガ"
 	jr c, .Fail
 	cp "<PLAY_G>"
 	jr c, .NextChar
-	cp $19
+	cp "<JP_18>" + 1
 	jr c, .Fail
-	cp $1d
+	cp "<NI>"
 	jr c, .NextChar
-	cp $26
+	cp "<NO>" + 1
 	jr c, .Fail
-	cp $35
+	cp "<ROUTE>"
 	jr c, .NextChar
-	cp $3a
+	cp "<GREEN>" + 1
 	jr c, .Fail
-	cp $3f
+	cp "<ENEMY>"
 	jr c, .NextChar
-	cp $40
+	cp "<ENEMY>" + 1
 	jr c, .Fail
-	cp $49
+	cp "<MOM>"
 	jr c, .NextChar
 
 .Fail:
--- a/mobile/mobile_menu.asm
+++ b/mobile/mobile_menu.asm
@@ -458,12 +458,12 @@
 UnknownText_0x4a358:
 	; Delete the saved LOG-IN PASSWORD?
 	text_far UnknownText_0x1c5196
-	db "@"
+	text_end
 
 UnknownText_0x4a35d:
 	; Deleted the LOG-IN PASSWORD.
 	text_far UnknownText_0x1c51b9
-	db "@"
+	text_end
 
 DeletePassword_YesNo_MenuHeader:
 	db MENU_BACKUP_TILES ; flags