shithub: pokecrystal

Download patch

ref: 5337d0159ecabe97b57809331a1bd506a5892fa2
parent: ffdc3e4c12d32ccee1fdb1e72083238caea78a87
author: yenatch <[email protected]>
date: Thu Aug 14 19:50:39 EDT 2014

Recomment the text engine.

--- a/home/text.asm
+++ b/home/text.asm
@@ -1,20 +1,35 @@
+BORDER_WIDTH   EQU 2
+TEXTBOX_WIDTH  EQU SCREEN_WIDTH
+TEXTBOX_INNERW EQU TEXTBOX_WIDTH - BORDER_WIDTH
+TEXTBOX_HEIGHT EQU 6
+TEXTBOX_INNERH EQU TEXTBOX_HEIGHT - BORDER_WIDTH
+TEXTBOX_X      EQU 0
+TEXTBOX_INNERX EQU TEXTBOX_X + 1
+TEXTBOX_Y      EQU SCREEN_HEIGHT - TEXTBOX_HEIGHT
+TEXTBOX_INNERY EQU TEXTBOX_Y + 2
+
+TEXTBOX_PAL EQU 7
+
+
 ClearBox:: ; fb6
 ; Fill a c*b box at hl with blank tiles.
 
 	ld a, " "
+
 Functionfb8::
+.col
 	push bc
 	push hl
-.x
+.row
 	ld [hli], a
 	dec c
-	jr nz, .x
+	jr nz, .row
 	pop hl
-	ld bc, 20 ; screen width
+	ld bc, SCREEN_WIDTH
 	add hl, bc
 	pop bc
 	dec b
-	jr nz, Functionfb8
+	jr nz, .col
 	ret
 ; fc8
 
@@ -24,10 +39,10 @@
 
 	ld hl, TileMap
 	ld a, " "
-	ld bc, 360 ; screen dimensions 20*18
+	ld bc, TileMapEnd - TileMap
 	call ByteFill
 	
-; We aren't done if the LCD is on.
+	; Update the BG Map.
 	ld a, [rLCDC]
 	bit 7, a
 	ret z
@@ -35,10 +50,10 @@
 ; fdb
 
 
-Functionfdb:: ; fdb
-	ld a, $7
+ClearScreen:: ; fdb
+	ld a, TEXTBOX_PAL
 	ld hl, AttrMap
-	ld bc, $0168
+	ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
 	call ByteFill
 	jr ClearTileMap
 ; fe8
@@ -46,7 +61,7 @@
 
 
 TextBox:: ; fe8
-; Draw a text box width c height b at hl
+; Draw a text box width c height b at hl.
 ; Dimensions do not include the border.
 	push bc
 	push hl
@@ -59,48 +74,48 @@
 
 TextBoxBorder:: ; ff1
 
-; Top
+	; Top
 	push hl
 	ld a, "┌"
 	ld [hli], a
 	inc a ; "─"
-	call NPlaceChar
+	call .PlaceChars
 	inc a ; "┐"
 	ld [hl], a
-
-; Middle
 	pop hl
-	ld de, 20 ; screen width
+
+	; Middle
+	ld de, SCREEN_WIDTH
 	add hl, de
-.PlaceRow
+.row
 	push hl
 	ld a, "│"
 	ld [hli], a
 	ld a, " "
-	call NPlaceChar
+	call .PlaceChars
 	ld [hl], "│"
 	pop hl
-	ld de, 20 ; screen width
+
+	ld de, SCREEN_WIDTH
 	add hl, de
 	dec b
-	jr nz, .PlaceRow
+	jr nz, .row
 
-; Bottom
+	; Bottom
 	ld a, "└"
 	ld [hli], a
 	ld a, "─"
-	call NPlaceChar
+	call .PlaceChars
 	ld [hl], "┘"
 
 	ret
 ; 101e
 
-
-NPlaceChar:: ; 101e
-; Place char a c times
-	ld d,c
+.PlaceChars: ; 101e
+; Place char a c times.
+	ld d, c
 .loop
-	ld [hli],a
+	ld [hli], a
 	dec d
 	jr nz, .loop
 	ret
@@ -115,20 +130,20 @@
 	inc b
 	inc c
 	inc c
-	ld a, 7 ; pal
-.gotoy
+	ld a, TEXTBOX_PAL
+.col
 	push bc
 	push hl
-.gotox
+.row
 	ld [hli], a
 	dec c
-	jr nz, .gotox
+	jr nz, .row
 	pop hl
-	ld de, 20 ; screen width
+	ld de, SCREEN_WIDTH
 	add hl, de
 	pop bc
 	dec b
-	jr nz, .gotoy
+	jr nz, .col
 	ret
 ; 103e
 
@@ -135,21 +150,21 @@
 
 SpeechTextBox:: ; 103e
 ; Standard textbox.
-	hlcoord 0, 12
-	ld b, 4 ; height
-	ld c, 18 ; screen width - 2 (border)
+	hlcoord TEXTBOX_X, TEXTBOX_Y
+	ld b, TEXTBOX_INNERH
+	ld c, TEXTBOX_INNERW
 	jp TextBox
 ; 1048
 
-UnknownText_0x1048:: ; 1048
-	db $0, "ゲームフりーク!", $57
+TestText:: ; 1048
+	text "ゲームフりーク!"
+	done
 ; 1052
 
 Function1052:: ; 1052
-	ld hl, .text_1056
+	ld hl, .stop
 	ret
-.text_1056
-	db "@"
+.stop	db "@"
 ; 1057
 
 
@@ -157,18 +172,17 @@
 	call Function106c
 Function105a:: ; 105a
 	push hl
-	hlcoord 1, 14
-	ld bc, 18 + 3<<8
+	hlcoord TEXTBOX_INNERX, TEXTBOX_INNERY
+	lb bc, TEXTBOX_INNERH - 1, TEXTBOX_INNERW
 	call ClearBox
 	pop hl
 
 PrintTextBoxText:: ; 1065
-	bccoord 1, 14
+	bccoord TEXTBOX_INNERX, TEXTBOX_INNERY
 	call Function13e5
 	ret
 ; 106c
 
-
 Function106c:: ; 106c
 	push hl
 	call SpeechTextBox
@@ -179,7 +193,6 @@
 ; 1078
 
 
-
 PlaceString:: ; 1078
 	push hl
 
@@ -198,114 +211,95 @@
 	jp PlaceNextChar
 
 CheckDict:: ; 1087
-	cp $15
-	jp z, Function117b
-	cp $4f
-	jp z, Char4F
-	cp $4e
-	jp z, Function12a7
-	cp $16
-	jp z, Function12b9
+dict: macro
+if \1 == 0
 	and a
-	jp z, Function1383
-	cp $4c
-	jp z, Function1337
-	cp $4b
-	jp z, Char4B
-	cp $51 ; Player name
-	jp z, Function12f2
-	cp $49
-	jp z, Function1186
-	cp $52 ; Mother name
-	jp z, Function118d
-	cp $53
-	jp z, Function1194
-	cp $35
-	jp z, Function11e8
-	cp $36
-	jp z, Function11ef
-	cp $37
-	jp z, Function11f6
-	cp $38
-	jp z, Function119b
-	cp $39
-	jp z, Function11a2
-	cp $54
-	jp z, Function11c5
-	cp $5b
-	jp z, Function11b7
-	cp $5e
-	jp z, Function11be
-	cp $5c
-	jp z, Function11b0
-	cp $5d
-	jp z, Function11a9
-	cp $23
-	jp z, Function11cc
-	cp $22
-	jp z, Function12b0
-	cp $55
-	jp z, Char55
-	cp $56
-	jp z, Function11d3
-	cp $57
-	jp z, Function137c
-	cp $58
-	jp z, Function135a
-	cp $4a
-	jp z, Function11da
-	cp $24
-	jp z, Function11e1
-	cp $25
-	jp z, NextChar
+else
+	cp \1
+endc
+	jp z, \2
+endm
+	dict $15, Char15
+	dict $4f, Line
+	dict $4e, NextLine
+	dict $16, Char16
+	dict $00, NullChar
+	dict $4c, Function1337
+	dict $4b, Char4B
+	dict $51, Paragraph
+	dict $49, PrintMomsName
+	dict $52, PrintPlayerName
+	dict $53, PrintRivalName
+	dict $35, Char35
+	dict $36, Char36
+	dict $37, Char37
+	dict $38, PrintRedsName
+	dict $39, PrintGreensName
+	dict $54, Char54
+	dict $5b, Char5B
+	dict $5e, Char5E
+	dict $5c, Char5C
+	dict $5d, Char5D
+	dict $23, Char23
+	dict $22, Char22
+	dict $55, ContText
+	dict $56, Char56
+	dict $57, DoneText
+	dict $58, PromptText
+	dict $4a, Char4A
+	dict $24, Char24
+	dict $25, NextChar
 	cp $1f
-	jr nz, .asm_1122
+	jr nz, .ok
 	ld a, $7f
-.asm_1122
-	cp $5f
-	jp z, Char5F
-	cp $59
-	jp z, Function11fd
-	cp $5a
-	jp z, Char5D
-	cp $3f
-	jp z, Function121b
-	cp $14
-	jp z, Function1252
-	cp $e4
-	jr z, .asm_1174 ; 0x113d $35
-	cp $e5
-	jr z, .asm_1174 ; 0x1141 $31
-	jr .asm_114c ; 0x1143 $7
+.ok
+	dict $5f, Char5F
+	dict $59, Char59
+	dict $5a, Char5A
+	dict $3f, Char3F
+	dict $14, Char14
+	cp $e4 ; handakuten
+	jr z, .place
+	cp $e5 ; dakuten
+	jr z, .place
+
+	jr .nope
 	ld b, a
-	call Function13c6
+	call Diacritic
 	jp NextChar
-.asm_114c
+.nope
+
 	cp $60
-	jr nc, .asm_1174 ; 0x114e $24
+	jr nc, .place
+
 	cp $40
-	jr nc, .asm_1165 ; 0x1152 $11
+	jr nc, .handakuten
+
+.dakuten
+
 	cp $20
-	jr nc, .asm_115c ; 0x1156 $4
+	jr nc, .daku1
 	add $80
-	jr .asm_115e ; 0x115a $2
-.asm_115c
+	jr .daku2
+.daku1
 	add $90
-.asm_115e
-	ld b, $e5
-	call Function13c6
-	jr .asm_1174 ; 0x1163 $f
-.asm_1165
-	cp $44
-	jr nc, .asm_116d ; 0x1167 $4
-	add $59
-	jr .asm_116f ; 0x116b $2
-.asm_116d
-	add $86
-.asm_116f
-	ld b, $e4
-	call Function13c6
-.asm_1174
+.daku2
+	ld b, $e5 ; dakuten
+	call Diacritic
+	jr .place
+
+.handakuten
+	cp "ぱ"
+	jr nc, .han1
+	add "ハ" - "パ"
+	jr .han2
+.han1
+	add "は" - "ぱ"
+.han2
+	ld b, $e4 ; handakuten
+	call Diacritic
+
+.place
 	ld [hli], a
 	call PrintLetterDelay
 	jp NextChar
@@ -312,7 +306,7 @@
 ; 0x117b
 
 
-Function117b:: ; 117b
+Char15:: ; 117b
 	ld c, l
 	ld b, h
 	callba Function17f036
@@ -319,144 +313,72 @@
 	jp PlaceNextChar
 ; 1186
 
-Function1186:: ; 1186
-	push de
-	ld de, MomsName
-	jp Function126a
-; 118d
 
-Function118d:: ; 118d
+print_name: macro
 	push de
-	ld de, PlayerName
+	ld de, \1
 	jp Function126a
-; 1194
+endm
 
-Function1194:: ; 1194
-	push de
-	ld de, RivalName
-	jp Function126a
-; 119b
-
-Function119b:: ; 119b
-	push de
-	ld de, RedsName
-	jp Function126a
-; 11a2
-
-Function11a2:: ; 11a2
-	push de
-	ld de, GreensName
-	jp Function126a
-; 11a9
-
-Function11a9:: ; 11a9
-	push de
-	ld de, Char5DText
-	jp Function126a
-; 11b0
-
-Function11b0:: ; 11b0
-	push de
-	ld de, Char5CText
-	jp Function126a
-; 11b7
-
-Function11b7:: ; 11b7
-	push de
-	ld de, Char5BText
-	jp Function126a
-; 11be
-
-Function11be:: ; 11be
-	push de
-	ld de, Char5EText
-	jp Function126a
-; 11c5
-
-Function11c5:: ; 11c5
-	push de
-	ld de, Char54Text
-	jp Function126a
-; 11cc
-
-Function11cc:: ; 11cc
-	push de
-	ld de, Char23Text
-	jp Function126a
-; 11d3
-
-Function11d3:: ; 11d3
-	push de
-	ld de, Char56Text
-	jp Function126a
-; 11da
-
-Function11da:: ; 11da
-	push de
-	ld de, Char4AText
-	jp Function126a
-; 11e1
-
-Function11e1:: ; 11e1
-	push de
-	ld de, Char24Text
-	jp Function126a
-; 11e8
+PrintMomsName:   print_name MomsName   ; 1186
+PrintPlayerName: print_name PlayerName ; 118d
+PrintRivalName:  print_name RivalName  ; 1194
+PrintRedsName:   print_name RedsName   ; 119b
+PrintGreensName: print_name GreensName ; 11a2
 
-Function11e8:: ; 11e8
-	push de
-	ld de, Char37Text
-	jp Function126a
-; 11ef
+Char5D: print_name Char5DText ; 11a9
+Char5C: print_name Char5CText ; 11b0
+Char5B: print_name Char5BText ; 11b7
+Char5E: print_name Char5EText ; 11be
+Char54: print_name Char54Text ; 11c5
+Char23: print_name Char23Text ; 11cc
+Char56: print_name Char56Text ; 11d3
+Char4A: print_name Char4AText ; 11da
+Char24: print_name Char24Text ; 11e1
+Char35: print_name Char35Text ; 11e8
+Char36: print_name Char36Text ; 11ef
+Char37: print_name Char37Text ; 11f6
 
-Function11ef:: ; 11ef
-	push de
-	ld de, Char37Text
-	jp Function126a
-; 11f6
 
-Function11f6:: ; 11f6
-	push de
-	ld de, Char37Text
-	jp Function126a
-; 11fd
-
-
-Function11fd:: ; 11fd
+Char59:: ; 11fd
 	ld a, [hBattleTurn]
-	xor $1
-	jr Function1205
-; 1203
+	xor 1
+	jr Char59_5A
 
-Char5D:: ; 1203
+Char5A:: ; 1203
 	ld a, [hBattleTurn]
-; 1205
 
-Function1205:: ; 1205
+Char59_5A: ; 1205
 	push de
 	and a
-	jr nz, .asm_120e ; 0x1207 $5
+	jr nz, .enemy
+
 	ld de, BattleMonNick
-	jr Function126a ; 0x120c $5c
-.asm_120e
+	jr Function126a
+
+.enemy
 	ld de, Char5AText ; Enemy
 	call PlaceString
 	ld h, b
 	ld l, c
 	ld de, EnemyMonNick
-	jr Function126a ; 0x1219 $4f
+	jr Function126a
 
-Function121b:: ; 121b
+
+Char3F:: ; 121b
 	push de
+
 	ld a, [InLinkBattle]
 	and a
 	jr nz, .linkbattle
+
 	ld a, [TrainerClass]
 	cp RIVAL1
-	jr z, .asm_1248 ; 0x1227 $1f
+	jr z, .rival
 	cp RIVAL2
-	jr z, .asm_1248 ; 0x122b $1b
-	ld de, $c656
+	jr z, .rival
+
+	ld de, OTName
 	call PlaceString
 	ld h, b
 	ld l, c
@@ -466,15 +388,18 @@
 	callab Function39939
 	pop hl
 	ld de, StringBuffer1
-	jr Function126a ; 0x1246 $22
-.asm_1248
+	jr Function126a
+
+.rival
 	ld de, RivalName
-	jr Function126a ; 0x124b $1d
+	jr Function126a
+
 .linkbattle
-	ld de, $c656
-	jr Function126a ; 0x1250 $18
+	ld de, OTName
+	jr Function126a
 
-Function1252:: ; 1252
+
+Char14:: ; 1252
 	push de
 	ld de, PlayerName
 	call PlaceString
@@ -483,10 +408,11 @@
 	ld a, [PlayerGender]
 	bit 0, a
 	ld de, String12a5
-	jr z, Function126a ; 0x1263 $5
+	jr z, Function126a
 	ld de, String12a6
-	jr Function126a ; 0x1268 $0
+	jr Function126a
 
+
 Function126a:: ; 126a
 	call PlaceString
 	ld h, b
@@ -495,67 +421,53 @@
 	jp NextChar
 ; 0x1273
 
-Char5CText:: ; 1273
-	db "TM@"
-Char5DText:: ; 1276
-	db "TRAINER@"
-Char5BText:: ; 127e
-	db "PC@"
-Char5EText:: ; 1281
-	db "ROCKET@"
-Char54Text:: ; 1288
-	db "POKé@"
-Char23Text:: ; 128d
-	db "こうげき@"
-Char56Text::; 1292
-	db "……@"
-Char5AText:: ; 1295
-	db "Enemy @"
-Char4AText:: ; 129c
-	db $e1, $e2, "@" ; PK MN
-Char24Text:: ; 129f
-	db $70, $71, "@" ; PO KE
-String12a2:: ; 12a2
-	db " @"
+Char5CText:: db "TM@" ; 1273
+Char5DText:: db "TRAINER@" ; 1276
+Char5BText:: db "PC@" ; 127e
+Char5EText:: db "ROCKET@" ; 1281
+Char54Text:: db "POKé@" ; 1288
+Char23Text:: db "こうげき@" ; 128d
+Char56Text:: db "……@" ; 1292
+Char5AText:: db "Enemy @" ; 1295
+Char4AText:: db $e1, $e2, "@" ; PK MN ; 129c
+Char24Text:: db $70, $71, "@" ; PO KE ; 129f
+String12a2:: db " @" ; 12a2
 Char35Text::
 Char36Text::
-Char37Text:: ; 12a4
-	db "@"
-String12a5:: ; 12a5
-	db "@"
-String12a6:: ; 12a6
-	db "@"
+Char37Text:: db "@" ; 12a4
+String12a5:: db "@" ; 12a5
+String12a6:: db "@" ; 12a6
 ; 12a7
 
-Function12a7:: ; 12a7
+NextLine:: ; 12a7
 	pop hl
-	ld bc, $0028
+	ld bc, SCREEN_WIDTH * 2
 	add hl, bc
 	push hl
 	jp NextChar
 ; 12b0
 
-Function12b0:: ; 12b0
+Char22:: ; 12b0
 	pop hl
-	ld bc, $0014
+	ld bc, SCREEN_WIDTH
 	add hl, bc
 	push hl
 	jp NextChar
 ; 12b9
 
-Function12b9:: ; 12b9
+Char16:: ; 12b9
 	pop hl
 	push de
-	ld bc, $3b60
+	ld bc, -TileMap + $10000
 	add hl, bc
-	ld de, $ffec
-	ld c, $1
+	ld de, -SCREEN_WIDTH
+	ld c, 1
 .asm_12c4
 	ld a, h
 	and a
 	jr nz, .asm_12cd
 	ld a, l
-	cp $14
+	cp SCREEN_WIDTH
 	jr c, .asm_12d1
 
 .asm_12cd
@@ -565,7 +477,7 @@
 
 .asm_12d1
 	ld hl, TileMap
-	ld de, $0014
+	ld de, SCREEN_WIDTH
 	ld a, c
 .asm_12d8
 	and a
@@ -579,7 +491,7 @@
 	inc de
 	ld a, [de]
 	ld c, a
-	ld b, $0
+	ld b, 0
 	add hl, bc
 	push hl
 	jp NextChar
@@ -586,15 +498,16 @@
 ; 12ea
 
 
-Char4F:: ; 12ea
+Line:: ; 12ea
 	pop hl
-	hlcoord 1, 16
+	hlcoord TEXTBOX_INNERX, TEXTBOX_INNERY + 2
 	push hl
 	jp NextChar
 ; 0x12f2
 
-Function12f2:: ; 12f2
+Paragraph:: ; 12f2
 	push de
+
 	ld a, [InLinkBattle]
 	cp $3
 	jr z, .asm_1301
@@ -601,17 +514,17 @@
 	cp $4
 	jr z, .asm_1301
 	call Function13c7
-
 .asm_1301
+
 	call Function13b6
 	call Functionaaf
-	hlcoord 1, 14
-	ld bc, $0312
+	hlcoord TEXTBOX_INNERX, TEXTBOX_INNERY
+	lb bc, TEXTBOX_INNERH - 1, TEXTBOX_INNERW
 	call ClearBox
 	call Function13cd
-	ld c, $14
+	ld c, 20
 	call DelayFrames
-	hlcoord 1, 14
+	hlcoord TEXTBOX_INNERX, TEXTBOX_INNERY
 	pop de
 	jp NextChar
 ; 131f
@@ -622,8 +535,8 @@
 	or a
 	jr nz, .asm_1328
 	call Function13c7
-
 .asm_1328
+
 	call Function13b6
 
 	push de
@@ -638,15 +551,15 @@
 	push de
 	call Function138c
 	call Function138c
-	hlcoord 1, 16
+	hlcoord TEXTBOX_INNERX, TEXTBOX_INNERY + 2
 	pop de
 	jp NextChar
 ; 1345
 
 
-Char55:: ; 1345
+ContText:: ; 1345
 	push de
-	ld de, Text_1354
+	ld de, .cont
 	ld b, h
 	ld c, l
 	call PlaceString
@@ -654,50 +567,47 @@
 	ld l, c
 	pop de
 	jp NextChar
-; 1354
 
-Text_1354:: ; 1354
-	db $4b, "@"
+.cont	db $4b, "@"
 ; 1356
 
 
 Char5F:: ; 1356
-; ends a Pokédex entry
+; Legacy: ends a Pokédex entry (Red).
+; Dex entries are now regular strings.
 	ld [hl], "."
 	pop hl
 	ret
 ; 135a
 
-Function135a:: ; 135a
+PromptText:: ; 135a
 	ld a, [InLinkBattle]
 	cp $3
-	jr z, .asm_1368
+	jr z, .ok
 	cp $4
-	jr z, .asm_1368
+	jr z, .ok
 	call Function13c7
+.ok
 
-.asm_1368
 	call Function13b6
 	call Functionaaf
 	ld a, [InLinkBattle]
 	cp $3
-	jr z, Function137c
+	jr z, DoneText
 	cp $4
-	jr z, Function137c
+	jr z, DoneText
 	call Function13cd
 
-Function137c:: ; 137c
+DoneText:: ; 137c
 	pop hl
-	ld de, .string_1382
+	ld de, .stop
 	dec de
 	ret
-
-.string_1382
-	db "@"
+.stop	db "@"
 ; 1383
 
-Function1383:: ; 1383
-	ld a, $e6
+NullChar:: ; 1383
+	ld a, "?"
 	ld [hli], a
 	call PrintLetterDelay
 	jp NextChar
@@ -704,18 +614,18 @@
 ; 138c
 
 Function138c:: ; 138c
-	hlcoord 1, 14
-	decoord 1, 13
-	ld a, $3
-.asm_1394
+	hlcoord TEXTBOX_INNERX, TEXTBOX_INNERY
+	decoord TEXTBOX_INNERX, TEXTBOX_INNERY - 1
+	ld a, TEXTBOX_INNERH - 1
+.col
 	push af
-	ld c, $12
-.asm_1397
+	ld c, TEXTBOX_INNERW
+.row
 	ld a, [hli]
 	ld [de], a
 	inc de
 	dec c
-	jr nz, .asm_1397
+	jr nz, .row
 	inc de
 	inc de
 	inc hl
@@ -722,12 +632,12 @@
 	inc hl
 	pop af
 	dec a
-	jr nz, .asm_1394
-	hlcoord 1, 16
-	ld a, $7f
-	ld bc, $0012
+	jr nz, .col
+	hlcoord TEXTBOX_INNERX, TEXTBOX_INNERY + 2
+	ld a, " "
+	ld bc, TEXTBOX_INNERW
 	call ByteFill
-	ld c, $5
+	ld c, 5
 	call DelayFrames
 	ret
 ; 13b6
@@ -736,7 +646,7 @@
 	push bc
 	ld a, [hOAMUpdate]
 	push af
-	ld a, $1
+	ld a, 1
 	ld [hOAMUpdate], a
 	call WaitBGMap
 	pop af
@@ -745,12 +655,12 @@
 	ret
 ; 13c6
 
-Function13c6:: ; 13c6
+Diacritic:: ; 13c6
 	ret
 ; 13c7
 
 Function13c7:: ; 13c7
-	ld a, $ee
+	ld a, "▼"
 	ld [$c606], a
 	ret
 ; 13cd
@@ -761,26 +671,25 @@
 	ret
 ; 13d4
 
-Function13d4:: ; 13d4
+FarString:: ; 13d4
 	ld b, a
 	ld a, [hROMBank]
 	push af
+
 	ld a, b
 	rst Bankswitch
-
 	call PlaceString
+
 	pop af
 	rst Bankswitch
-
 	ret
 ; 13e0
 
 Function13e0:: ; 13e0
-	ld hl, String_13e4
+	ld hl, .stop
 	ret
 
-String_13e4: ; 13e4
-	db "@"
+.stop	db "@"
 ; 13e5
 
 
@@ -789,7 +698,9 @@
 	push af
 	set 1, a
 	ld [$cfcf], a
+
 	call Function13f6
+
 	pop af
 	ld [$cfcf], a
 	ret
@@ -796,15 +707,13 @@
 ; 13f6
 
 Function13f6:: ; 13f6
-.asm_13f6
 	ld a, [hli]
 	cp "@"
 	ret z
-	call Function13ff
-	jr .asm_13f6
-; 13ff
+	call .TextCommand
+	jr Function13f6
 
-Function13ff:: ; 13ff
+.TextCommand:
 	push hl
 	push bc
 	ld c, a
@@ -817,8 +726,8 @@
 	ld d, [hl]
 	pop bc
 	pop hl
-	
-; jp de
+
+	; jp de
 	push de
 	ret
 ; 1410
@@ -914,9 +823,8 @@
 ; 1470
 
 Text_02:: ; 1470
-; TX_NUM
-; write bcdnumber from address, typically ram
-; little endian
+; TX_BCD
+; write bcd from address, typically ram
 ; [$02][addr][flags]
 ; flags: see PrintBCDNumber
 
@@ -939,14 +847,13 @@
 Text_03:: ; 1480
 ; TX_MOVE
 ; move to a new tile
-; little endian
-; [$03][tileaddr]
+; [$03][addr]
 
 	ld a, [hli]
 	ld [$d0e6], a
 	ld c, a
 	ld a, [hli]
-	ld [$d0e7], a
+	ld [$d0e6 + 1], a
 	ld b, a
 	ret
 ; 148b
@@ -955,7 +862,7 @@
 ; TX_BOX
 ; draw a box
 ; little endian
-; [$04][tileaddr][height][width]
+; [$04][addr][height][width]
 
 	ld a, [hli]
 	ld e, a
@@ -978,7 +885,7 @@
 ; write text at (1,16)
 ; [$05]
 
-	bccoord 1, 16
+	bccoord TEXTBOX_INNERX, TEXTBOX_INNERY + 2
 	ret
 ; 149f
 
@@ -993,6 +900,7 @@
 	jp z, Text_0D
 	cp $4
 	jp z, Text_0D
+
 	push hl
 	call Function13c7
 	push bc
@@ -1009,7 +917,7 @@
 	call Function138c
 	call Function138c
 	pop hl
-	bccoord 1, 16
+	bccoord TEXTBOX_INNERX, TEXTBOX_INNERY + 2
 	ret
 ; 14c9
 
@@ -1016,12 +924,11 @@
 Text_08:: ; 14c9
 ; TX_ASM
 
-; rom only?
 	bit 7, h
-	jr nz, .asm_14ce
+	jr nz, .not_rom
 	jp [hl]
 
-.asm_14ce
+.not_rom
 	ld a, "@"
 	ld [hl], a
 	ret
@@ -1028,6 +935,8 @@
 ; 14d2
 
 Text_09:: ; 14d2
+; TX_NUM
+; [$09][addr][hi:bytes lo:digits]
 	ld a, [hli]
 	ld e, a
 	ld a, [hli]
@@ -1057,11 +966,10 @@
 	call GetJoypad
 	ld a, [hJoyDown]
 	and A_BUTTON | B_BUTTON
-	jr nz, .asm_14fd
+	jr nz, .done
 	ld c, 30
 	call DelayFrames
-
-.asm_14fd
+.done
 	pop bc
 	pop hl
 	ret
@@ -1078,17 +986,17 @@
 	ld b, a
 	push hl
 	ld hl, TextSFX
-.asm_1508
+.loop
 	ld a, [hli]
-	cp $ff
-	jr z, .asm_151f
+	cp -1
+	jr z, .done
 	cp b
-	jr z, .asm_1514
+	jr z, .play
 	inc hl
 	inc hl
-	jr .asm_1508
+	jr .loop
 
-.asm_1514
+.play
 	push de
 	ld e, [hl]
 	inc hl
@@ -1097,7 +1005,7 @@
 	call WaitSFX
 	pop de
 
-.asm_151f
+.done
 	pop hl
 	pop bc
 	ret
@@ -1123,16 +1031,17 @@
 	dbw $10, SFX_CAUGHT_MON
 	dbw $11, SFX_DEX_FANFARE_80_109
 	dbw $13, SFX_SLOT_MACHINE_START
-	db $ff ; end
+	db -1
 ; 1543
 
 Text_0C:: ; 1543
+; [$0C][num]
 	ld a, [hli]
 	ld d, a
 	push hl
 	ld h, b
 	ld l, c
-.asm_1548
+.loop
 	push de
 	ld a, "…"
 	ld [hli], a
@@ -1139,13 +1048,13 @@
 	call GetJoypad
 	ld a, [hJoyDown]
 	and A_BUTTON | B_BUTTON
-	jr nz, .asm_155a
+	jr nz, .next
 	ld c, 10
 	call DelayFrames
-.asm_155a
+.next
 	pop de
 	dec d
-	jr nz, .asm_1548
+	jr nz, .loop
 	ld b, h
 	ld c, l
 	pop hl
@@ -1216,7 +1125,6 @@
 	call PlaceString
 	pop hl
 	ret
-; 15a2
 
 .Days ; 15a2
 	dw .Sun
@@ -1236,4 +1144,3 @@
 .Satur  db "SATUR@"
 .Day    db "DAY@"
 ; 15d8
-
--- a/main.asm
+++ b/main.asm
@@ -4763,7 +4763,7 @@
 	ld [rSVBK], a
 	ld hl, rLCDC
 	res 2, [hl]
-	call Functionfdb
+	call ClearScreen
 	call Function3200
 	xor a
 	ld [hLCDStatCustom], a
@@ -8635,7 +8635,7 @@
 .two
 	dec e
 	jr nz, .asm_c583
-	ld a, $f6
+	ld a, "0"
 	ld [$ffb3], a
 .asm_c583
 
@@ -8701,10 +8701,10 @@
 .PrintDigit: ; c5cb (3:45cb)
 	dec e
 	jr nz, .ok
-	ld a, $f6
+	ld a, "0"
 	ld [$ffb3], a
 .ok
-	ld c, $0
+	ld c, 0
 .asm_c5d4
 	ld a, [$ffb7]
 	ld b, a
@@ -8721,7 +8721,7 @@
 	cp b
 	jr nc, .asm_c5f6
 	ld a, [$ffb4]
-	or $0
+	or 0
 	jr z, .asm_c620
 	dec a
 	ld [$ffb4], a
@@ -8772,7 +8772,7 @@
 	ld [hli], a
 	res 5, d
 .asm_c637
-	ld a, $f6
+	ld a, "0"
 	add c
 	ld [hl], a
 	ld [$ffb3], a
@@ -18719,7 +18719,7 @@
 
 Function124fa: ; 124fa
 	call ClearPalettes
-	call Functionfdb
+	call ClearScreen
 	call Function3200
 	call HideSprites
 	call Function4f0
@@ -36020,7 +36020,7 @@
 	call WhiteBGMap
 	ld c, $50
 	call DelayFrames
-	call Functionfdb
+	call ClearScreen
 	call ClearSprites
 	call Function1ad2
 	xor a
@@ -36028,7 +36028,7 @@
 	ld [hSCY], a
 	ld c, $50
 	call DelayFrames
-	call Functionfdb
+	call ClearScreen
 	call Function1ad2
 	call Functione51
 	call Functione58
@@ -36437,7 +36437,7 @@
 	jr nz, .asm_283a9
 	ld a, CAL
 	ld [OtherTrainerClass], a
-	call Functionfdb
+	call ClearScreen
 	callba Function4d354
 	ld hl, Options
 	ld a, [hl]
@@ -36512,7 +36512,7 @@
 	bccoord 1, 14
 	call Function13e5
 	call Function4b6
-	call Functionfdb
+	call ClearScreen
 	ld b, $8
 	call GetSGBLayout
 	call Function3200
@@ -37209,7 +37209,7 @@
 ; 287e3
 
 Function287e3: ; 287e3
-	call Functionfdb
+	call ClearScreen
 	call Function28ef8
 	callba Function16d673
 	xor a
@@ -37599,7 +37599,7 @@
 
 Function28b22: ; 28b22
 	call Function4b6
-	call Functionfdb
+	call ClearScreen
 	ld b, $8
 	call GetSGBLayout
 	call Function3200
@@ -37936,7 +37936,7 @@
 	dec a
 	ld [CurPartyMon], a
 	callab Function421d8
-	call Functionfdb
+	call ClearScreen
 	call Function28ef8
 	call Function28eff
 	callba Function4d354
@@ -47361,7 +47361,7 @@
 	ld a, b
 	push af
 	hlcoord 9, 5
-	call Function13d4
+	call FarString
 	ld h, b
 	ld l, c
 	push de
@@ -47449,7 +47449,7 @@
 	pop af
 	hlcoord 2, 11
 	push af
-	call Function13d4
+	call FarString
 	pop bc
 	ld a, [$cf65]
 	or a
@@ -47475,7 +47475,7 @@
 	inc de
 	pop af
 	hlcoord 2, 11
-	call Function13d4
+	call FarString
 	ret
 ; 44331
 
@@ -50111,7 +50111,7 @@
 Function4925b: ; 4925b
 	call FadeToMenu
 	call WhiteBGMap
-	call Functionfdb
+	call ClearScreen
 	call DelayFrame
 	ld b, $14
 	call GetSGBLayout
@@ -54537,7 +54537,7 @@
 	ld a, [CurPartyMon]
 	inc a
 	ld [$cfa9], a
-	call Functionfdb
+	call ClearScreen
 	call WhiteBGMap
 	call MaxVolume
 	callba Function28ef8
@@ -64590,7 +64590,7 @@
 	ld d, [hl]
 	hlcoord 1, 7
 	ld a, $77
-	call Function13d4
+	call FarString
 	hlcoord 2, 15
 	ld de, String_847f5
 	call PlaceString
@@ -64622,7 +64622,7 @@
 	ld d, [hl]
 	hlcoord 4, 7
 	ld a, BANK(GBPrinterStrings)
-	call Function13d4
+	call FarString
 	hlcoord 4, 15
 	ld de, String_847f5
 	call PlaceString
@@ -107777,7 +107777,7 @@
 .asm_117709
 	callba Function8cf53
 	call WhiteBGMap
-	call Functionfdb
+	call ClearScreen
 	call ClearSprites
 	ret
 
@@ -111076,7 +111076,7 @@
 	call Function11c254
 	call WhiteBGMap
 	call ClearSprites
-	call Functionfdb
+	call ClearScreen
 	call Function11d323
 	call Function32f9
 	call DisableLCD
@@ -113861,7 +113861,7 @@
 Function1704f1: ; 1704f1
 	call WhiteBGMap
 	call ClearSprites
-	call Functionfdb
+	call ClearScreen
 .asm_1704fa
 	call Functiona57
 	ld a, [$cf63]
@@ -115476,7 +115476,7 @@
 	ld [$cd6c], a
 	call WhiteBGMap
 	call ClearSprites
-	call Functionfdb
+	call ClearScreen
 	callba Function104061
 	call DisableLCD
 	ld hl, $8ee0
@@ -116346,9 +116346,9 @@
 	push af
 	ld l, c
 	ld h, b
-	ld bc, $3b60
+	ld bc, -TileMap + $10000
 	add hl, bc
-	ld de, $ffec
+	ld de, -SCREEN_WIDTH
 	ld c, $1
 .asm_17f42c
 	ld a, h
@@ -116355,7 +116355,7 @@
 	and a
 	jr nz, .asm_17f435
 	ld a, l
-	cp $14
+	cp SCREEN_WIDTH
 	jr c, .asm_17f439
 
 .asm_17f435
@@ -116365,7 +116365,7 @@
 
 .asm_17f439
 	ld hl, TileMap
-	ld de, $0014
+	ld de, SCREEN_WIDTH
 	ld a, c
 .asm_17f440
 	and a
@@ -116377,7 +116377,7 @@
 .asm_17f447
 	pop af
 	ld e, a
-	ld d, $0
+	ld d, 0
 	add hl, de
 	pop de
 	and a
@@ -116398,7 +116398,7 @@
 	ld l, c
 	ld h, b
 	ld c, a
-	ld b, $0
+	ld b, 0
 	add hl, bc
 	ld a, [de]
 	cp $50
@@ -116947,7 +116947,7 @@
 	pop af
 	ld a, b
 	ld hl, $cb6d
-	call nz, Function13d4
+	call nz, FarString
 	ld hl, $caa3
 	ld [hl], $35
 	ld de, $0014
@@ -116997,7 +116997,7 @@
 	pop af
 	ld hl, $caa5
 	ld a, b
-	call nz, Function13d4
+	call nz, FarString
 	ret
 ; 1dc26a