shithub: pokecrystal

Download patch

ref: 636a960909c2cad683b73a8fb77cb0305f0b3a7f
parent: c1d0253162e326fc872a81bdc400a1b6b38faa5e
author: yenatch <[email protected]>
date: Tue Aug 20 11:58:08 EDT 2013

split out text engine

--- /dev/null
+++ b/engine/text.asm
@@ -1,0 +1,1229 @@
+ClearBox: ; fb6
+; Fill a c*b box at hl with blank tiles.
+
+	ld a, " "
+.y
+	push bc
+	push hl
+.x
+	ld [hli], a
+	dec c
+	jr nz, .x
+	pop hl
+	ld bc, 20 ; screen width
+	add hl, bc
+	pop bc
+	dec b
+	jr nz, .y
+	ret
+; fc8
+
+
+ClearTileMap: ; fc8
+; Fill TileMap with blank tiles.
+
+	ld hl, TileMap
+	ld a, " "
+	ld bc, 360 ; screen dimensions 20*18
+	call ByteFill
+	
+; We aren't done if the LCD is on.
+	ld a, [rLCDC]
+	bit 7, a
+	ret z
+	jp WaitBGMap
+; fdb
+
+
+Functionfdb: ; fdb
+	ld a, $7
+	ld hl, AttrMap
+	ld bc, $0168
+	call ByteFill
+	jr ClearTileMap
+; fe8
+
+
+
+TextBox: ; fe8
+; Draw a text box width c height b at hl
+; Dimensions do not include the border.
+	push bc
+	push hl
+	call TextBoxBorder
+	pop hl
+	pop bc
+	jr TextBoxPalette
+; ff1
+
+
+TextBoxBorder: ; ff1
+
+; Top
+	push hl
+	ld a, "┌"
+	ld [hli], a
+	inc a ; "─"
+	call NPlaceChar
+	inc a ; "┐"
+	ld [hl], a
+
+; Middle
+	pop hl
+	ld de, 20 ; screen width
+	add hl, de
+.PlaceRow
+	push hl
+	ld a, "│"
+	ld [hli], a
+	ld a, " "
+	call NPlaceChar
+	ld [hl], "│"
+	pop hl
+	ld de, 20 ; screen width
+	add hl, de
+	dec b
+	jr nz, .PlaceRow
+
+; Bottom
+	ld a, "└"
+	ld [hli], a
+	ld a, "─"
+	call NPlaceChar
+	ld [hl], "┘"
+
+	ret
+; 101e
+
+
+NPlaceChar: ; 101e
+; Place char a c times
+	ld d,c
+.loop
+	ld [hli],a
+	dec d
+	jr nz, .loop
+	ret
+; 1024
+
+
+TextBoxPalette: ; 1024
+; Fill text box width c height b at hl with pal 7
+	ld de, AttrMap - TileMap
+	add hl, de
+	inc b
+	inc b
+	inc c
+	inc c
+	ld a, 7 ; pal
+.gotoy
+	push bc
+	push hl
+.gotox
+	ld [hli], a
+	dec c
+	jr nz, .gotox
+	pop hl
+	ld de, 20 ; screen width
+	add hl, de
+	pop bc
+	dec b
+	jr nz, .gotoy
+	ret
+; 103e
+
+
+SpeechTextBox: ; 103e
+; Standard textbox.
+	hlcoord 0, 12
+	ld b, 4 ; height
+	ld c, 18 ; screen width - 2 (border)
+	jp TextBox
+; 1048
+
+UnknownText_0x1048: ; 1048
+	db $0, "ゲームフりーク!", $57
+; 1052
+
+Function1052: ; 1052
+	ld hl, .text_1056
+	ret
+.text_1056
+	db "@"
+; 1057
+
+
+PrintText: ; 1057
+	call Function106c
+	push hl
+	hlcoord 1, 14
+	ld bc, 18 + 3<<8
+	call ClearBox
+	pop hl
+
+PrintTextBoxText: ; 1065
+	bccoord 1, 14
+	call Function13e5
+	ret
+; 106c
+
+
+Function106c: ; 106c
+	push hl
+	call SpeechTextBox
+	call Function1ad2
+	call Function321c
+	pop hl
+	ret
+; 1078
+
+
+
+PlaceString: ; 1078
+	push hl
+
+PlaceNextChar: ; 1079
+	ld a, [de]
+	cp "@"
+	jr nz, CheckDict
+	ld b, h
+	ld c, l
+	pop hl
+	ret
+	pop de
+
+NextChar: ; 1083
+	inc de
+	jp PlaceNextChar
+
+CheckDict: ; 1087
+	cp $15
+	jp z, Function117b
+	cp $4f
+	jp z, Char4F
+	cp $4e
+	jp z, Function12a7
+	cp $16
+	jp z, Function12b9
+	and a
+	jp z, Function1383
+	cp $4c
+	jp z, $1337
+	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, $137c
+	cp $58
+	jp z, Function135a
+	cp $4a
+	jp z, Function11da
+	cp $24
+	jp z, Function11e1
+	cp $25
+	jp z, NextChar
+	cp $1f
+	jr nz, .asm_1122
+	ld a, $7f
+.asm_1122
+	cp $5f
+	jp z, Char5F
+	cp $59
+	jp z, Function11fd
+	cp $5a
+	jp z, Char5D
+	cp $3f
+	jp z, $121b
+	cp $14
+	jp z, $1252
+	cp $e4
+	jr z, .asm_1174 ; 0x113d $35
+	cp $e5
+	jr z, .asm_1174 ; 0x1141 $31
+	jr .asm_114c ; 0x1143 $7
+	ld b, a
+	call Function13c6
+	jp NextChar
+.asm_114c
+	cp $60
+	jr nc, .asm_1174 ; 0x114e $24
+	cp $40
+	jr nc, .asm_1165 ; 0x1152 $11
+	cp $20
+	jr nc, .asm_115c ; 0x1156 $4
+	add $80
+	jr .asm_115e ; 0x115a $2
+.asm_115c
+	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
+	ld [hli], a
+	call PrintLetterDelay
+	jp NextChar
+; 0x117b
+
+
+Function117b: ; 117b
+	ld c, l
+	ld b, h
+	ld a, $5f
+	ld hl, $7036
+	rst FarCall
+	jp PlaceNextChar
+; 1186
+
+Function1186: ; 1186
+	push de
+	ld de, MomsName
+	jp $126a
+; 118d
+
+Function118d: ; 118d
+	push de
+	ld de, PlayerName
+	jp $126a
+; 1194
+
+Function1194: ; 1194
+	push de
+	ld de, RivalName
+	jp $126a
+; 119b
+
+Function119b: ; 119b
+	push de
+	ld de, RedsName
+	jp $126a
+; 11a2
+
+Function11a2: ; 11a2
+	push de
+	ld de, GreensName
+	jp $126a
+; 11a9
+
+Function11a9: ; 11a9
+	push de
+	ld de, Char5DText
+	jp $126a
+; 11b0
+
+Function11b0: ; 11b0
+	push de
+	ld de, Char5CText
+	jp $126a
+; 11b7
+
+Function11b7: ; 11b7
+	push de
+	ld de, Char5BText
+	jp $126a
+; 11be
+
+Function11be: ; 11be
+	push de
+	ld de, Char5EText
+	jp $126a
+; 11c5
+
+Function11c5: ; 11c5
+	push de
+	ld de, Char54Text
+	jp $126a
+; 11cc
+
+Function11cc: ; 11cc
+	push de
+	ld de, Char23Text
+	jp $126a
+; 11d3
+
+Function11d3: ; 11d3
+	push de
+	ld de, $1292
+	jp $126a
+; 11da
+
+Function11da: ; 11da
+	push de
+	ld de, Char4AText
+	jp $126a
+; 11e1
+
+Function11e1: ; 11e1
+	push de
+	ld de, Char24Text
+	jp $126a
+; 11e8
+
+Function11e8: ; 11e8
+	push de
+	ld de, Char37Text
+	jp $126a
+; 11ef
+
+Function11ef: ; 11ef
+	push de
+	ld de, Char37Text
+	jp $126a
+; 11f6
+
+Function11f6: ; 11f6
+	push de
+	ld de, Char37Text
+	jp $126a
+; 11fd
+
+
+Function11fd: ; 11fd
+	ld a, [hBattleTurn]
+	xor $1
+	jr Function1205
+; 1203
+
+Char5D: ; 1203
+	ld a, [hBattleTurn]
+; 1205
+
+Function1205: ; 1205
+	push de
+	and a
+	jr nz, .asm_120e ; 0x1207 $5
+	ld de, BattleMonNick
+	jr .asm_126a ; 0x120c $5c
+.asm_120e
+	ld de, Char5AText ; Enemy
+	call PlaceString
+	ld h, b
+	ld l, c
+	ld de, EnemyMonNick
+	jr .asm_126a ; 0x1219 $4f
+	push de
+	ld a, [InLinkBattle]
+	and a
+	jr nz, .linkbattle
+	ld a, [TrainerClass]
+	cp $9
+	jr z, .asm_1248 ; 0x1227 $1f
+	cp $2a
+	jr z, .asm_1248 ; 0x122b $1b
+	ld de, $c656
+	call PlaceString
+	ld h, b
+	ld l, c
+	ld de, String12a2
+	call PlaceString
+	push bc
+	ld hl, $5939
+	ld a, $e
+	rst FarCall
+	pop hl
+	ld de, StringBuffer1
+	jr .asm_126a ; 0x1246 $22
+.asm_1248
+	ld de, RivalName
+	jr .asm_126a ; 0x124b $1d
+.linkbattle
+	ld de, $c656
+	jr .asm_126a ; 0x1250 $18
+	push de
+	ld de, PlayerName
+	call PlaceString
+	ld h, b
+	ld l, c
+	ld a, [PlayerGender]
+	bit 0, a
+	ld de, String12a5
+	jr z, .asm_126a ; 0x1263 $5
+	ld de, String12a6
+	jr .asm_126a ; 0x1268 $0
+.asm_126a
+	call PlaceString
+	ld h, b
+	ld l, c
+	pop de
+	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 " @"
+Char35Text:
+Char36Text:
+Char37Text: ; 12a4
+	db "@"
+String12a5: ; 12a5
+	db "@"
+String12a6: ; 12a6
+	db "@"
+; 12a7
+
+Function12a7: ; 12a7
+	pop hl
+	ld bc, $0028
+	add hl, bc
+	push hl
+	jp NextChar
+; 12b0
+
+Function12b0: ; 12b0
+	pop hl
+	ld bc, $0014
+	add hl, bc
+	push hl
+	jp NextChar
+; 12b9
+
+Function12b9: ; 12b9
+	pop hl
+	push de
+	ld bc, $3b60
+	add hl, bc
+	ld de, $ffec
+	ld c, $1
+.asm_12c4
+	ld a, h
+	and a
+	jr nz, .asm_12cd
+	ld a, l
+	cp $14
+	jr c, .asm_12d1
+
+.asm_12cd
+	add hl, de
+	inc c
+	jr .asm_12c4
+
+.asm_12d1
+	ld hl, TileMap
+	ld de, $0014
+	ld a, c
+.asm_12d8
+	and a
+	jr z, .asm_12df
+	add hl, de
+	dec a
+	jr .asm_12d8
+
+.asm_12df
+	pop de
+	inc de
+	ld a, [de]
+	ld c, a
+	ld b, $0
+	add hl, bc
+	push hl
+	jp NextChar
+; 12ea
+
+
+Char4F: ; 12ea
+	pop hl
+	hlcoord 1, 16
+	push hl
+	jp NextChar
+; 0x12f2
+
+Function12f2: ; 12f2
+	push de
+	ld a, [InLinkBattle]
+	cp $3
+	jr z, .asm_1301
+	cp $4
+	jr z, .asm_1301
+	call Function13c7
+
+.asm_1301
+	call Function13b6
+	call Functionaaf
+	ld hl, $c5b9
+	ld bc, $0312
+	call ClearBox
+	call Function13cd
+	ld c, $14
+	call DelayFrames
+	ld hl, $c5b9
+	pop de
+	jp NextChar
+; 131f
+
+
+Char4B: ; 131f
+	ld a, [InLinkBattle]
+	or a
+	jr nz, .asm_1328
+	call Function13c7
+
+.asm_1328
+	call Function13b6
+
+	push de
+	call Functionaaf
+	pop de
+
+	ld a, [InLinkBattle]
+	or a
+	call z, Function13cd
+
+	push de
+	call Function138c
+	call Function138c
+	hlcoord 1, 16
+	pop de
+	jp NextChar
+; 1345
+
+
+Char55: ; 1345
+	push de
+	ld de, Text_1354
+	ld b, h
+	ld c, l
+	call PlaceString
+	ld h, b
+	ld l, c
+	pop de
+	jp NextChar
+; 1354
+
+Text_1354: ; 1354
+	db $4b, "@"
+; 1356
+
+
+Char5F: ; 1356
+; ends a Pokédex entry
+	ld [hl], "."
+	pop hl
+	ret
+; 135a
+
+Function135a: ; 135a
+	ld a, [InLinkBattle]
+	cp $3
+	jr z, .asm_1368
+	cp $4
+	jr z, .asm_1368
+	call Function13c7
+
+.asm_1368
+	call Function13b6
+	call Functionaaf
+	ld a, [InLinkBattle]
+	cp $3
+	jr z, .asm_137c
+	cp $4
+	jr z, .asm_137c
+	call Function13cd
+
+.asm_137c
+	pop hl
+	ld de, .string_1382
+	dec de
+	ret
+
+.string_1382
+	db "@"
+; 1383
+
+Function1383: ; 1383
+	ld a, $e6
+	ld [hli], a
+	call PrintLetterDelay
+	jp NextChar
+; 138c
+
+Function138c: ; 138c
+	ld hl, $c5b9
+	ld de, $c5a5
+	ld a, $3
+.asm_1394
+	push af
+	ld c, $12
+.asm_1397
+	ld a, [hli]
+	ld [de], a
+	inc de
+	dec c
+	jr nz, .asm_1397
+	inc de
+	inc de
+	inc hl
+	inc hl
+	pop af
+	dec a
+	jr nz, .asm_1394
+	ld hl, $c5e1
+	ld a, $7f
+	ld bc, $0012
+	call ByteFill
+	ld c, $5
+	call DelayFrames
+	ret
+; 13b6
+
+Function13b6: ; 13b6
+	push bc
+	ld a, [hOAMUpdate]
+	push af
+	ld a, $1
+	ld [hOAMUpdate], a
+	call WaitBGMap
+	pop af
+	ld [hOAMUpdate], a
+	pop bc
+	ret
+; 13c6
+
+Function13c6: ; 13c6
+	ret
+; 13c7
+
+Function13c7: ; 13c7
+	ld a, $ee
+	ld [$c606], a
+	ret
+; 13cd
+
+Function13cd: ; 13cd
+	ld a, [$c605]
+	ld [$c606], a
+	ret
+; 13d4
+
+Function13d4: ; 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, $13e4
+	ret
+
+.string_13e4
+	db "@"
+; 13e5
+
+
+Function13e5: ; 13e5
+	ld a, [$cfcf]
+	push af
+	set 1, a
+	ld [$cfcf], a
+	call Function13f6
+	pop af
+	ld [$cfcf], a
+	ret
+; 13f6
+
+Function13f6: ; 13f6
+.asm_13f6
+	ld a, [hli]
+	cp "@"
+	ret z
+	call Function13ff
+	jr .asm_13f6
+; 13ff
+
+Function13ff: ; 13ff
+	push hl
+	push bc
+	ld c, a
+	ld b, 0
+	ld hl, TextCommands
+	add hl, bc
+	add hl, bc
+	ld e, [hl]
+	inc hl
+	ld d, [hl]
+	pop bc
+	pop hl
+	
+; jp de
+	push de
+	ret
+; 1410
+
+TextCommands: ; 1410
+	dw Text_00
+	dw Text_01
+	dw Text_02
+	dw Text_03
+	dw Text_04
+	dw Text_05
+	dw Text_06
+	dw Text_07
+	dw Text_08
+	dw Text_09
+	dw Text_0A
+	dw Text_PlaySound ; $0b
+	dw Text_0C
+	dw Text_0D
+	dw Text_PlaySound ; $0e
+	dw Text_PlaySound ; $0f
+	dw Text_PlaySound ; $10
+	dw Text_PlaySound ; $11
+	dw Text_PlaySound ; $12
+	dw Text_PlaySound ; $13
+	dw Text_14
+	dw Text_15
+	dw Text_16
+; 143e
+
+Text_00: ; 143e
+; TX
+; write text until "@"
+; [$00]["...@"]
+
+	ld d, h
+	ld e, l
+	ld h, b
+	ld l, c
+	call PlaceString
+	ld h, d
+	ld l, e
+	inc hl
+	ret
+; 1449
+
+Text_01: ; 1449
+; TX_RAM
+; write text from a ram address
+; little endian
+; [$01][addr]
+
+	ld a, [hli]
+	ld e, a
+	ld a, [hli]
+	ld d, a
+	push hl
+	ld h, b
+	ld l, c
+	call PlaceString
+	pop hl
+	ret
+; 1455
+
+Text_16: ; 1455
+; TX_FAR
+; write text from a different bank
+; little endian
+; [$16][addr][bank]
+
+	ld a, [hROMBank]
+	push af
+
+	ld a, [hli]
+	ld e, a
+	ld a, [hli]
+	ld d, a
+	ld a, [hli]
+
+	ld [hROMBank], a
+	ld [MBC3RomBank], a
+
+	push hl
+	ld h, d
+	ld l, e
+	call Function13f6
+	pop hl
+
+	pop af
+	ld [hROMBank], a
+	ld [MBC3RomBank], a
+	ret
+; 1470
+
+Text_02: ; 1470
+; TX_NUM
+; write bcdnumber from address, typically ram
+; little endian
+; [$02][addr][flags]
+; flags: see PrintBCDNumber
+
+	ld a, [hli]
+	ld e, a
+	ld a, [hli]
+	ld d, a
+	ld a, [hli]
+	push hl
+	ld h, b
+	ld l, c
+	ld c, a
+	call PrintBCDNumber
+	ld b, h
+	ld c, l
+	pop hl
+	ret
+; 1480
+
+Text_03: ; 1480
+; TX_MOVE
+; move to a new tile
+; little endian
+; [$03][tileaddr]
+
+	ld a, [hli]
+	ld [$d0e6], a
+	ld c, a
+	ld a, [hli]
+	ld [$d0e7], a
+	ld b, a
+	ret
+; 148b
+
+Text_04: ; 148b
+; TX_BOX
+; draw a box
+; little endian
+; [$04][tileaddr][height][width]
+
+	ld a, [hli]
+	ld e, a
+	ld a, [hli]
+	ld d, a
+	ld a, [hli]
+	ld b, a
+	ld a, [hli]
+	ld c, a
+	push hl
+	ld h, d
+	ld l, e
+	call TextBox
+	pop hl
+	ret
+; 149b
+
+Text_05: ; 149b
+; TX_LOW
+; write text at (1,16)
+; [$05]
+
+	bccoord 1, 16
+	ret
+; 149f
+
+Text_06:: ; 149f
+; TX_WAITBUTTON
+; wait for button press
+; show arrow
+; [06]
+
+	ld a, [InLinkBattle]
+	cp $3
+	jp z, Text_0D
+	cp $4
+	jp z, Text_0D
+	push hl
+	call Function13c7
+	push bc
+	call Functionaaf
+	pop bc
+	call Function13cd
+	pop hl
+	ret
+; 14ba
+
+Text_07: ; 14ba
+	push hl
+	call Function13cd
+	call Function138c
+	call Function138c
+	pop hl
+	bccoord 1, 16
+	ret
+; 14c9
+
+Text_08: ; 14c9
+; TX_ASM
+
+; rom only?
+	bit 7, h
+	jr nz, .asm_14ce
+	jp [hl]
+
+.asm_14ce
+	ld a, "@"
+	ld [hl], a
+	ret
+; 14d2
+
+Text_09: ; 14d2
+	ld a, [hli]
+	ld e, a
+	ld a, [hli]
+	ld d, a
+	ld a, [hli]
+	push hl
+	ld h, b
+	ld l, c
+	ld b, a
+	and $f
+	ld c, a
+	ld a, b
+	and $f0
+	swap a
+	set 6, a
+	ld b, a
+	call PrintNum
+	ld b, h
+	ld c, l
+	pop hl
+	ret
+; 14ed
+
+Text_0A: ; 14ed
+	push hl
+	push bc
+	call GetJoypadPublic
+	ld a, [hJoyDown]
+	and BUTTON_A | BUTTON_B
+	jr nz, .asm_14fd
+	ld c, 30
+	call DelayFrames
+
+.asm_14fd
+	pop bc
+	pop hl
+	ret
+; 1500
+
+Text_PlaySound:: ; 1500
+; chars:
+;   $0b, $0e, $0f, $10, $11, $12, $13
+; see TextSFX
+
+	push bc
+	dec hl
+	ld a, [hli]
+	ld b, a
+	push hl
+	ld hl, TextSFX
+.asm_1508
+	ld a, [hli]
+	cp $ff
+	jr z, .asm_151f
+	cp b
+	jr z, .asm_1514
+	inc hl
+	inc hl
+	jr .asm_1508
+
+.asm_1514
+	push de
+	ld e, [hl]
+	inc hl
+	ld d, [hl]
+	call StartSFX
+	call WaitSFX
+	pop de
+
+.asm_151f
+	pop hl
+	pop bc
+	ret
+; 1522
+
+Function1522: ; 1522
+	push de
+	ld e, [hl]
+	inc hl
+	ld d, [hl]
+	call Function37ce
+	pop de
+	pop hl
+	pop bc
+	ret
+; 152d
+
+TextSFX: ; 152d
+	dbw $0b, SFX_DEX_FANFARE_50_79
+	dbw $12, SFX_FANFARE
+	dbw $0e, SFX_DEX_FANFARE_20_49
+	dbw $0f, SFX_ITEM
+	dbw $10, SFX_CAUGHT_MON
+	dbw $11, SFX_DEX_FANFARE_80_109
+	dbw $13, SFX_SLOT_MACHINE_START
+	db $ff ; end
+; 1543
+
+Text_0C: ; 1543
+	ld a, [hli]
+	ld d, a
+	push hl
+	ld h, b
+	ld l, c
+.asm_1548
+	push de
+	ld a, "…"
+	ld [hli], a
+	call GetJoypadPublic
+	ld a, [hJoyDown]
+	and BUTTON_A | BUTTON_B
+	jr nz, .asm_155a
+	ld c, 10
+	call DelayFrames
+.asm_155a
+	pop de
+	dec d
+	jr nz, .asm_1548
+	ld b, h
+	ld c, l
+	pop hl
+	ret
+; 1562
+
+Text_0D: ; 1562
+; wait for key down
+; display arrow
+	push hl
+	push bc
+	call Functionaaf
+	pop bc
+	pop hl
+	ret
+; 156a
+
+Text_14: ; 156a
+; TX_PREDEF
+; [$14][id]
+
+	ld a, [hli]
+	push hl
+	ld e, a
+	ld d, 0
+	ld hl, $4000
+	add hl, de
+	add hl, de
+	ld a, $9
+	call GetFarHalfword
+	ld d, h
+	ld e, l
+	ld h, b
+	ld l, c
+	call PlaceString
+	pop hl
+	ret
+; 1582
+
+Text_15: ; 1582
+; TX_DAY
+
+	call GetWeekday
+	push hl
+	push bc
+	ld c, a
+	ld b, 0
+	ld hl, .Days
+	add hl, bc
+	add hl, bc
+	ld a, [hli]
+	ld h, [hl]
+	ld l, a
+	ld d, h
+	ld e, l
+	pop hl
+	call PlaceString
+	ld h, b
+	ld l, c
+	ld de, .Day
+	call PlaceString
+	pop hl
+	ret
+; 15a2
+
+.Days ; 15a2
+	dw .Sun
+	dw .Mon
+	dw .Tues
+	dw .Wednes
+	dw .Thurs
+	dw .Fri
+	dw .Satur
+
+.Sun    db "SUN@"
+.Mon    db "MON@"
+.Tues   db "TUES@"
+.Wednes db "WEDNES@"
+.Thurs  db "THURS@"
+.Fri    db "FRI@"
+.Satur  db "SATUR@"
+.Day    db "DAY@"
+; 15d8
+
--- a/main.asm
+++ b/main.asm
@@ -2096,1234 +2096,7 @@
 ; fb6
 
 
-ClearBox: ; fb6
-; Fill a c*b box at hl with blank tiles.
-
-	ld a, " "
-.y
-	push bc
-	push hl
-.x
-	ld [hli], a
-	dec c
-	jr nz, .x
-	pop hl
-	ld bc, 20 ; screen width
-	add hl, bc
-	pop bc
-	dec b
-	jr nz, .y
-	ret
-; fc8
-
-
-ClearTileMap: ; fc8
-; Fill TileMap with blank tiles.
-
-	ld hl, TileMap
-	ld a, " "
-	ld bc, 360 ; screen dimensions 20*18
-	call ByteFill
-	
-; We aren't done if the LCD is on.
-	ld a, [rLCDC]
-	bit 7, a
-	ret z
-	jp WaitBGMap
-; fdb
-
-
-Functionfdb: ; fdb
-	ld a, $7
-	ld hl, AttrMap
-	ld bc, $0168
-	call ByteFill
-	jr ClearTileMap
-; fe8
-
-
-
-TextBox: ; fe8
-; Draw a text box width c height b at hl
-; Dimensions do not include the border.
-	push bc
-	push hl
-	call TextBoxBorder
-	pop hl
-	pop bc
-	jr TextBoxPalette
-; ff1
-
-
-TextBoxBorder: ; ff1
-
-; Top
-	push hl
-	ld a, "┌"
-	ld [hli], a
-	inc a ; "─"
-	call NPlaceChar
-	inc a ; "┐"
-	ld [hl], a
-
-; Middle
-	pop hl
-	ld de, 20 ; screen width
-	add hl, de
-.PlaceRow
-	push hl
-	ld a, "│"
-	ld [hli], a
-	ld a, " "
-	call NPlaceChar
-	ld [hl], "│"
-	pop hl
-	ld de, 20 ; screen width
-	add hl, de
-	dec b
-	jr nz, .PlaceRow
-
-; Bottom
-	ld a, "└"
-	ld [hli], a
-	ld a, "─"
-	call NPlaceChar
-	ld [hl], "┘"
-
-	ret
-; 101e
-
-
-NPlaceChar: ; 101e
-; Place char a c times
-	ld d,c
-.loop
-	ld [hli],a
-	dec d
-	jr nz, .loop
-	ret
-; 1024
-
-
-TextBoxPalette: ; 1024
-; Fill text box width c height b at hl with pal 7
-	ld de, AttrMap - TileMap
-	add hl, de
-	inc b
-	inc b
-	inc c
-	inc c
-	ld a, 7 ; pal
-.gotoy
-	push bc
-	push hl
-.gotox
-	ld [hli], a
-	dec c
-	jr nz, .gotox
-	pop hl
-	ld de, 20 ; screen width
-	add hl, de
-	pop bc
-	dec b
-	jr nz, .gotoy
-	ret
-; 103e
-
-
-SpeechTextBox: ; 103e
-; Standard textbox.
-	hlcoord 0, 12
-	ld b, 4 ; height
-	ld c, 18 ; screen width - 2 (border)
-	jp TextBox
-; 1048
-
-UnknownText_0x1048: ; 1048
-	db $0, "ゲームフりーク!", $57
-; 1052
-
-Function1052: ; 1052
-	ld hl, .text_1056
-	ret
-.text_1056
-	db "@"
-; 1057
-
-
-PrintText: ; 1057
-	call Function106c
-	push hl
-	hlcoord 1, 14
-	ld bc, 18 + 3<<8
-	call ClearBox
-	pop hl
-
-PrintTextBoxText: ; 1065
-	bccoord 1, 14
-	call Function13e5
-	ret
-; 106c
-
-
-Function106c: ; 106c
-	push hl
-	call SpeechTextBox
-	call Function1ad2
-	call Function321c
-	pop hl
-	ret
-; 1078
-
-
-
-PlaceString: ; 1078
-	push hl
-
-PlaceNextChar: ; 1079
-	ld a, [de]
-	cp "@"
-	jr nz, CheckDict
-	ld b, h
-	ld c, l
-	pop hl
-	ret
-	pop de
-
-NextChar: ; 1083
-	inc de
-	jp PlaceNextChar
-
-CheckDict: ; 1087
-	cp $15
-	jp z, Function117b
-	cp $4f
-	jp z, Char4F
-	cp $4e
-	jp z, Function12a7
-	cp $16
-	jp z, Function12b9
-	and a
-	jp z, Function1383
-	cp $4c
-	jp z, $1337
-	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, $137c
-	cp $58
-	jp z, Function135a
-	cp $4a
-	jp z, Function11da
-	cp $24
-	jp z, Function11e1
-	cp $25
-	jp z, NextChar
-	cp $1f
-	jr nz, .asm_1122
-	ld a, $7f
-.asm_1122
-	cp $5f
-	jp z, Char5F
-	cp $59
-	jp z, Function11fd
-	cp $5a
-	jp z, Char5D
-	cp $3f
-	jp z, $121b
-	cp $14
-	jp z, $1252
-	cp $e4
-	jr z, .asm_1174 ; 0x113d $35
-	cp $e5
-	jr z, .asm_1174 ; 0x1141 $31
-	jr .asm_114c ; 0x1143 $7
-	ld b, a
-	call Function13c6
-	jp NextChar
-.asm_114c
-	cp $60
-	jr nc, .asm_1174 ; 0x114e $24
-	cp $40
-	jr nc, .asm_1165 ; 0x1152 $11
-	cp $20
-	jr nc, .asm_115c ; 0x1156 $4
-	add $80
-	jr .asm_115e ; 0x115a $2
-.asm_115c
-	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
-	ld [hli], a
-	call PrintLetterDelay
-	jp NextChar
-; 0x117b
-
-
-Function117b: ; 117b
-	ld c, l
-	ld b, h
-	ld a, $5f
-	ld hl, $7036
-	rst FarCall
-	jp PlaceNextChar
-; 1186
-
-Function1186: ; 1186
-	push de
-	ld de, MomsName
-	jp $126a
-; 118d
-
-Function118d: ; 118d
-	push de
-	ld de, PlayerName
-	jp $126a
-; 1194
-
-Function1194: ; 1194
-	push de
-	ld de, RivalName
-	jp $126a
-; 119b
-
-Function119b: ; 119b
-	push de
-	ld de, RedsName
-	jp $126a
-; 11a2
-
-Function11a2: ; 11a2
-	push de
-	ld de, GreensName
-	jp $126a
-; 11a9
-
-Function11a9: ; 11a9
-	push de
-	ld de, Char5DText
-	jp $126a
-; 11b0
-
-Function11b0: ; 11b0
-	push de
-	ld de, Char5CText
-	jp $126a
-; 11b7
-
-Function11b7: ; 11b7
-	push de
-	ld de, Char5BText
-	jp $126a
-; 11be
-
-Function11be: ; 11be
-	push de
-	ld de, Char5EText
-	jp $126a
-; 11c5
-
-Function11c5: ; 11c5
-	push de
-	ld de, Char54Text
-	jp $126a
-; 11cc
-
-Function11cc: ; 11cc
-	push de
-	ld de, Char23Text
-	jp $126a
-; 11d3
-
-Function11d3: ; 11d3
-	push de
-	ld de, $1292
-	jp $126a
-; 11da
-
-Function11da: ; 11da
-	push de
-	ld de, Char4AText
-	jp $126a
-; 11e1
-
-Function11e1: ; 11e1
-	push de
-	ld de, Char24Text
-	jp $126a
-; 11e8
-
-Function11e8: ; 11e8
-	push de
-	ld de, Char37Text
-	jp $126a
-; 11ef
-
-Function11ef: ; 11ef
-	push de
-	ld de, Char37Text
-	jp $126a
-; 11f6
-
-Function11f6: ; 11f6
-	push de
-	ld de, Char37Text
-	jp $126a
-; 11fd
-
-
-Function11fd: ; 11fd
-	ld a, [hBattleTurn]
-	xor $1
-	jr Function1205
-; 1203
-
-Char5D: ; 1203
-	ld a, [hBattleTurn]
-; 1205
-
-Function1205: ; 1205
-	push de
-	and a
-	jr nz, .asm_120e ; 0x1207 $5
-	ld de, BattleMonNick
-	jr .asm_126a ; 0x120c $5c
-.asm_120e
-	ld de, Char5AText ; Enemy
-	call PlaceString
-	ld h, b
-	ld l, c
-	ld de, EnemyMonNick
-	jr .asm_126a ; 0x1219 $4f
-	push de
-	ld a, [InLinkBattle]
-	and a
-	jr nz, .linkbattle
-	ld a, [TrainerClass]
-	cp $9
-	jr z, .asm_1248 ; 0x1227 $1f
-	cp $2a
-	jr z, .asm_1248 ; 0x122b $1b
-	ld de, $c656
-	call PlaceString
-	ld h, b
-	ld l, c
-	ld de, String12a2
-	call PlaceString
-	push bc
-	ld hl, $5939
-	ld a, $e
-	rst FarCall
-	pop hl
-	ld de, StringBuffer1
-	jr .asm_126a ; 0x1246 $22
-.asm_1248
-	ld de, RivalName
-	jr .asm_126a ; 0x124b $1d
-.linkbattle
-	ld de, $c656
-	jr .asm_126a ; 0x1250 $18
-	push de
-	ld de, PlayerName
-	call PlaceString
-	ld h, b
-	ld l, c
-	ld a, [PlayerGender]
-	bit 0, a
-	ld de, String12a5
-	jr z, .asm_126a ; 0x1263 $5
-	ld de, String12a6
-	jr .asm_126a ; 0x1268 $0
-.asm_126a
-	call PlaceString
-	ld h, b
-	ld l, c
-	pop de
-	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 " @"
-Char35Text:
-Char36Text:
-Char37Text: ; 12a4
-	db "@"
-String12a5: ; 12a5
-	db "@"
-String12a6: ; 12a6
-	db "@"
-; 12a7
-
-Function12a7: ; 12a7
-	pop hl
-	ld bc, $0028
-	add hl, bc
-	push hl
-	jp NextChar
-; 12b0
-
-Function12b0: ; 12b0
-	pop hl
-	ld bc, $0014
-	add hl, bc
-	push hl
-	jp NextChar
-; 12b9
-
-Function12b9: ; 12b9
-	pop hl
-	push de
-	ld bc, $3b60
-	add hl, bc
-	ld de, $ffec
-	ld c, $1
-.asm_12c4
-	ld a, h
-	and a
-	jr nz, .asm_12cd
-	ld a, l
-	cp $14
-	jr c, .asm_12d1
-
-.asm_12cd
-	add hl, de
-	inc c
-	jr .asm_12c4
-
-.asm_12d1
-	ld hl, TileMap
-	ld de, $0014
-	ld a, c
-.asm_12d8
-	and a
-	jr z, .asm_12df
-	add hl, de
-	dec a
-	jr .asm_12d8
-
-.asm_12df
-	pop de
-	inc de
-	ld a, [de]
-	ld c, a
-	ld b, $0
-	add hl, bc
-	push hl
-	jp NextChar
-; 12ea
-
-
-Char4F: ; 12ea
-	pop hl
-	hlcoord 1, 16
-	push hl
-	jp NextChar
-; 0x12f2
-
-Function12f2: ; 12f2
-	push de
-	ld a, [InLinkBattle]
-	cp $3
-	jr z, .asm_1301
-	cp $4
-	jr z, .asm_1301
-	call Function13c7
-
-.asm_1301
-	call Function13b6
-	call Functionaaf
-	ld hl, $c5b9
-	ld bc, $0312
-	call ClearBox
-	call Function13cd
-	ld c, $14
-	call DelayFrames
-	ld hl, $c5b9
-	pop de
-	jp NextChar
-; 131f
-
-
-Char4B: ; 131f
-	ld a, [InLinkBattle]
-	or a
-	jr nz, .asm_1328
-	call Function13c7
-
-.asm_1328
-	call Function13b6
-
-	push de
-	call Functionaaf
-	pop de
-
-	ld a, [InLinkBattle]
-	or a
-	call z, Function13cd
-
-	push de
-	call Function138c
-	call Function138c
-	hlcoord 1, 16
-	pop de
-	jp NextChar
-; 1345
-
-
-Char55: ; 1345
-	push de
-	ld de, Text_1354
-	ld b, h
-	ld c, l
-	call PlaceString
-	ld h, b
-	ld l, c
-	pop de
-	jp NextChar
-; 1354
-
-Text_1354: ; 1354
-	db $4b, "@"
-; 1356
-
-
-Char5F: ; 1356
-; ends a Pokédex entry
-	ld [hl], "."
-	pop hl
-	ret
-; 135a
-
-Function135a: ; 135a
-	ld a, [InLinkBattle]
-	cp $3
-	jr z, .asm_1368
-	cp $4
-	jr z, .asm_1368
-	call Function13c7
-
-.asm_1368
-	call Function13b6
-	call Functionaaf
-	ld a, [InLinkBattle]
-	cp $3
-	jr z, .asm_137c
-	cp $4
-	jr z, .asm_137c
-	call Function13cd
-
-.asm_137c
-	pop hl
-	ld de, .string_1382
-	dec de
-	ret
-
-.string_1382
-	db "@"
-; 1383
-
-Function1383: ; 1383
-	ld a, $e6
-	ld [hli], a
-	call PrintLetterDelay
-	jp NextChar
-; 138c
-
-Function138c: ; 138c
-	ld hl, $c5b9
-	ld de, $c5a5
-	ld a, $3
-.asm_1394
-	push af
-	ld c, $12
-.asm_1397
-	ld a, [hli]
-	ld [de], a
-	inc de
-	dec c
-	jr nz, .asm_1397
-	inc de
-	inc de
-	inc hl
-	inc hl
-	pop af
-	dec a
-	jr nz, .asm_1394
-	ld hl, $c5e1
-	ld a, $7f
-	ld bc, $0012
-	call ByteFill
-	ld c, $5
-	call DelayFrames
-	ret
-; 13b6
-
-Function13b6: ; 13b6
-	push bc
-	ld a, [hOAMUpdate]
-	push af
-	ld a, $1
-	ld [hOAMUpdate], a
-	call WaitBGMap
-	pop af
-	ld [hOAMUpdate], a
-	pop bc
-	ret
-; 13c6
-
-Function13c6: ; 13c6
-	ret
-; 13c7
-
-Function13c7: ; 13c7
-	ld a, $ee
-	ld [$c606], a
-	ret
-; 13cd
-
-Function13cd: ; 13cd
-	ld a, [$c605]
-	ld [$c606], a
-	ret
-; 13d4
-
-Function13d4: ; 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, $13e4
-	ret
-
-.string_13e4
-	db "@"
-; 13e5
-
-
-Function13e5: ; 13e5
-	ld a, [$cfcf]
-	push af
-	set 1, a
-	ld [$cfcf], a
-	call Function13f6
-	pop af
-	ld [$cfcf], a
-	ret
-; 13f6
-
-Function13f6: ; 13f6
-.asm_13f6
-	ld a, [hli]
-	cp "@"
-	ret z
-	call Function13ff
-	jr .asm_13f6
-; 13ff
-
-Function13ff: ; 13ff
-	push hl
-	push bc
-	ld c, a
-	ld b, 0
-	ld hl, TextCommands
-	add hl, bc
-	add hl, bc
-	ld e, [hl]
-	inc hl
-	ld d, [hl]
-	pop bc
-	pop hl
-	
-; jp de
-	push de
-	ret
-; 1410
-
-TextCommands: ; 1410
-	dw Text_00
-	dw Text_01
-	dw Text_02
-	dw Text_03
-	dw Text_04
-	dw Text_05
-	dw Text_06
-	dw Text_07
-	dw Text_08
-	dw Text_09
-	dw Text_0A
-	dw Text_PlaySound ; $0b
-	dw Text_0C
-	dw Text_0D
-	dw Text_PlaySound ; $0e
-	dw Text_PlaySound ; $0f
-	dw Text_PlaySound ; $10
-	dw Text_PlaySound ; $11
-	dw Text_PlaySound ; $12
-	dw Text_PlaySound ; $13
-	dw Text_14
-	dw Text_15
-	dw Text_16
-; 143e
-
-Text_00: ; 143e
-; TX
-; write text until "@"
-; [$00]["...@"]
-
-	ld d, h
-	ld e, l
-	ld h, b
-	ld l, c
-	call PlaceString
-	ld h, d
-	ld l, e
-	inc hl
-	ret
-; 1449
-
-Text_01: ; 1449
-; TX_RAM
-; write text from a ram address
-; little endian
-; [$01][addr]
-
-	ld a, [hli]
-	ld e, a
-	ld a, [hli]
-	ld d, a
-	push hl
-	ld h, b
-	ld l, c
-	call PlaceString
-	pop hl
-	ret
-; 1455
-
-Text_16: ; 1455
-; TX_FAR
-; write text from a different bank
-; little endian
-; [$16][addr][bank]
-
-	ld a, [hROMBank]
-	push af
-
-	ld a, [hli]
-	ld e, a
-	ld a, [hli]
-	ld d, a
-	ld a, [hli]
-
-	ld [hROMBank], a
-	ld [MBC3RomBank], a
-
-	push hl
-	ld h, d
-	ld l, e
-	call Function13f6
-	pop hl
-
-	pop af
-	ld [hROMBank], a
-	ld [MBC3RomBank], a
-	ret
-; 1470
-
-Text_02: ; 1470
-; TX_NUM
-; write bcdnumber from address, typically ram
-; little endian
-; [$02][addr][flags]
-; flags: see PrintBCDNumber
-
-	ld a, [hli]
-	ld e, a
-	ld a, [hli]
-	ld d, a
-	ld a, [hli]
-	push hl
-	ld h, b
-	ld l, c
-	ld c, a
-	call PrintBCDNumber
-	ld b, h
-	ld c, l
-	pop hl
-	ret
-; 1480
-
-Text_03: ; 1480
-; TX_MOVE
-; move to a new tile
-; little endian
-; [$03][tileaddr]
-
-	ld a, [hli]
-	ld [$d0e6], a
-	ld c, a
-	ld a, [hli]
-	ld [$d0e7], a
-	ld b, a
-	ret
-; 148b
-
-Text_04: ; 148b
-; TX_BOX
-; draw a box
-; little endian
-; [$04][tileaddr][height][width]
-
-	ld a, [hli]
-	ld e, a
-	ld a, [hli]
-	ld d, a
-	ld a, [hli]
-	ld b, a
-	ld a, [hli]
-	ld c, a
-	push hl
-	ld h, d
-	ld l, e
-	call TextBox
-	pop hl
-	ret
-; 149b
-
-Text_05: ; 149b
-; TX_LOW
-; write text at (1,16)
-; [$05]
-
-	bccoord 1, 16
-	ret
-; 149f
-
-Text_06:: ; 149f
-; TX_WAITBUTTON
-; wait for button press
-; show arrow
-; [06]
-
-	ld a, [InLinkBattle]
-	cp $3
-	jp z, Text_0D
-	cp $4
-	jp z, Text_0D
-	push hl
-	call Function13c7
-	push bc
-	call Functionaaf
-	pop bc
-	call Function13cd
-	pop hl
-	ret
-; 14ba
-
-Text_07: ; 14ba
-	push hl
-	call Function13cd
-	call Function138c
-	call Function138c
-	pop hl
-	bccoord 1, 16
-	ret
-; 14c9
-
-Text_08: ; 14c9
-; TX_ASM
-
-; rom only?
-	bit 7, h
-	jr nz, .asm_14ce
-	jp [hl]
-
-.asm_14ce
-	ld a, "@"
-	ld [hl], a
-	ret
-; 14d2
-
-Text_09: ; 14d2
-	ld a, [hli]
-	ld e, a
-	ld a, [hli]
-	ld d, a
-	ld a, [hli]
-	push hl
-	ld h, b
-	ld l, c
-	ld b, a
-	and $f
-	ld c, a
-	ld a, b
-	and $f0
-	swap a
-	set 6, a
-	ld b, a
-	call PrintNum
-	ld b, h
-	ld c, l
-	pop hl
-	ret
-; 14ed
-
-Text_0A: ; 14ed
-	push hl
-	push bc
-	call GetJoypadPublic
-	ld a, [hJoyDown]
-	and BUTTON_A | BUTTON_B
-	jr nz, .asm_14fd
-	ld c, 30
-	call DelayFrames
-
-.asm_14fd
-	pop bc
-	pop hl
-	ret
-; 1500
-
-Text_PlaySound:: ; 1500
-; chars:
-;   $0b, $0e, $0f, $10, $11, $12, $13
-; see TextSFX
-
-	push bc
-	dec hl
-	ld a, [hli]
-	ld b, a
-	push hl
-	ld hl, TextSFX
-.asm_1508
-	ld a, [hli]
-	cp $ff
-	jr z, .asm_151f
-	cp b
-	jr z, .asm_1514
-	inc hl
-	inc hl
-	jr .asm_1508
-
-.asm_1514
-	push de
-	ld e, [hl]
-	inc hl
-	ld d, [hl]
-	call StartSFX
-	call WaitSFX
-	pop de
-
-.asm_151f
-	pop hl
-	pop bc
-	ret
-; 1522
-
-Function1522: ; 1522
-	push de
-	ld e, [hl]
-	inc hl
-	ld d, [hl]
-	call Function37ce
-	pop de
-	pop hl
-	pop bc
-	ret
-; 152d
-
-TextSFX: ; 152d
-	dbw $0b, SFX_DEX_FANFARE_50_79
-	dbw $12, SFX_FANFARE
-	dbw $0e, SFX_DEX_FANFARE_20_49
-	dbw $0f, SFX_ITEM
-	dbw $10, SFX_CAUGHT_MON
-	dbw $11, SFX_DEX_FANFARE_80_109
-	dbw $13, SFX_SLOT_MACHINE_START
-	db $ff ; end
-; 1543
-
-Text_0C: ; 1543
-	ld a, [hli]
-	ld d, a
-	push hl
-	ld h, b
-	ld l, c
-.asm_1548
-	push de
-	ld a, "…"
-	ld [hli], a
-	call GetJoypadPublic
-	ld a, [hJoyDown]
-	and BUTTON_A | BUTTON_B
-	jr nz, .asm_155a
-	ld c, 10
-	call DelayFrames
-.asm_155a
-	pop de
-	dec d
-	jr nz, .asm_1548
-	ld b, h
-	ld c, l
-	pop hl
-	ret
-; 1562
-
-Text_0D: ; 1562
-; wait for key down
-; display arrow
-	push hl
-	push bc
-	call Functionaaf
-	pop bc
-	pop hl
-	ret
-; 156a
-
-Text_14: ; 156a
-; TX_PREDEF
-; [$14][id]
-
-	ld a, [hli]
-	push hl
-	ld e, a
-	ld d, 0
-	ld hl, $4000
-	add hl, de
-	add hl, de
-	ld a, $9
-	call GetFarHalfword
-	ld d, h
-	ld e, l
-	ld h, b
-	ld l, c
-	call PlaceString
-	pop hl
-	ret
-; 1582
-
-Text_15: ; 1582
-; TX_DAY
-
-	call GetWeekday
-	push hl
-	push bc
-	ld c, a
-	ld b, 0
-	ld hl, .Days
-	add hl, bc
-	add hl, bc
-	ld a, [hli]
-	ld h, [hl]
-	ld l, a
-	ld d, h
-	ld e, l
-	pop hl
-	call PlaceString
-	ld h, b
-	ld l, c
-	ld de, .Day
-	call PlaceString
-	pop hl
-	ret
-; 15a2
-
-.Days ; 15a2
-	dw .Sun
-	dw .Mon
-	dw .Tues
-	dw .Wednes
-	dw .Thurs
-	dw .Fri
-	dw .Satur
-
-.Sun    db "SUN@"
-.Mon    db "MON@"
-.Tues   db "TUES@"
-.Wednes db "WEDNES@"
-.Thurs  db "THURS@"
-.Fri    db "FRI@"
-.Satur  db "SATUR@"
-.Day    db "DAY@"
-; 15d8
+INCLUDE "engine/text.asm"
 
 
 DMATransfer: ; 15d8