shithub: pokecrystal

Download patch

ref: 1a84ca4e552c6b5c98500475a5bc177f59e3b42a
parent: c72912337eecbd46a24be286d1a48139a69df82e
author: pikalaxalt <[email protected]>
date: Fri May 13 21:11:01 EDT 2016

EZChat cursor object

--- a/constants/sprite_constants.asm
+++ b/constants/sprite_constants.asm
@@ -349,22 +349,22 @@
 	const FACING_1F
 
 	const_def
-	const SPRITEANIMSTRUCT_INDEX          ; 0
-	const SPRITEANIMSTRUCT_FRAMESET_ID    ; 1
-	const SPRITEANIMSTRUCT_ANIM_SEQ_ID    ; 2
-	const SPRITEANIMSTRUCT_TILE_ID        ; 3
-	const SPRITEANIMSTRUCT_XCOORD         ; 4
-	const SPRITEANIMSTRUCT_YCOORD         ; 5
-	const SPRITEANIMSTRUCT_XOFFSET        ; 6
-	const SPRITEANIMSTRUCT_YOFFSET        ; 7
-	const SPRITEANIMSTRUCT_DURATION       ; 8
-	const SPRITEANIMSTRUCT_DURATIONOFFSET ; 9
-	const SPRITEANIMSTRUCT_FRAME          ; a
-	const SPRITEANIMSTRUCT_0B             ; b
-	const SPRITEANIMSTRUCT_0C             ; c
-	const SPRITEANIMSTRUCT_0D             ; d
-	const SPRITEANIMSTRUCT_0E             ; e
-	const SPRITEANIMSTRUCT_0F             ; f
+	const SPRITEANIMSTRUCT_INDEX           ; 0
+	const SPRITEANIMSTRUCT_FRAMESET_ID     ; 1
+	const SPRITEANIMSTRUCT_ANIM_SEQ_ID     ; 2
+	const SPRITEANIMSTRUCT_TILE_ID         ; 3
+	const SPRITEANIMSTRUCT_XCOORD          ; 4
+	const SPRITEANIMSTRUCT_YCOORD          ; 5
+	const SPRITEANIMSTRUCT_XOFFSET         ; 6
+	const SPRITEANIMSTRUCT_YOFFSET         ; 7
+	const SPRITEANIMSTRUCT_DURATION        ; 8
+	const SPRITEANIMSTRUCT_DURATIONOFFSET  ; 9
+	const SPRITEANIMSTRUCT_FRAME           ; a
+	const SPRITEANIMSTRUCT_JUMPTABLE_INDEX ; b
+	const SPRITEANIMSTRUCT_0C              ; c
+	const SPRITEANIMSTRUCT_0D              ; d
+	const SPRITEANIMSTRUCT_0E              ; e
+	const SPRITEANIMSTRUCT_0F              ; f
 
 	const_def
 	const SPRITE_ANIM_FRAMESET_00
--- a/engine/breeding/egg.asm
+++ b/engine/breeding/egg.asm
@@ -847,7 +847,7 @@
 	add [hl]
 	ld [hl], a
 
-	ld hl, SPRITEANIMSTRUCT_0B
+	ld hl, SPRITEANIMSTRUCT_JUMPTABLE_INDEX
 	add hl, bc
 	ld [hl], d
 
--- a/engine/crystal_intro.asm
+++ b/engine/crystal_intro.asm
@@ -212,7 +212,7 @@
 
 
 GameFreakLogoJumper: ; e46ed (39:46ed)
-	ld hl, SPRITEANIMSTRUCT_0B
+	ld hl, SPRITEANIMSTRUCT_JUMPTABLE_INDEX
 	add hl, bc
 	ld e, [hl]
 	ld d, 0
@@ -232,7 +232,7 @@
 	dw GameFreakLogoScene5
 
 GameFreakLogoScene1: ; e4707 (39:4707)
-	ld hl, SPRITEANIMSTRUCT_0B
+	ld hl, SPRITEANIMSTRUCT_JUMPTABLE_INDEX
 	add hl, bc
 	inc [hl]
 	ret
@@ -273,7 +273,7 @@
 	ret
 
 .asm_e4747
-	ld hl, SPRITEANIMSTRUCT_0B
+	ld hl, SPRITEANIMSTRUCT_JUMPTABLE_INDEX
 	add hl, bc
 	inc [hl]
 	ld hl, SPRITEANIMSTRUCT_0D
@@ -293,7 +293,7 @@
 	ret
 
 .asm_e4764
-	ld hl, SPRITEANIMSTRUCT_0B
+	ld hl, SPRITEANIMSTRUCT_JUMPTABLE_INDEX
 	add hl, bc
 	inc [hl]
 	ld hl, SPRITEANIMSTRUCT_0D
@@ -332,7 +332,7 @@
 	ret
 
 .asm_e47a3
-	ld hl, SPRITEANIMSTRUCT_0B
+	ld hl, SPRITEANIMSTRUCT_JUMPTABLE_INDEX
 	add hl, bc
 	inc [hl]
 	call PlaceGameFreakPresents_AdvanceIndex
--- a/engine/evolution_animation.asm
+++ b/engine/evolution_animation.asm
@@ -319,7 +319,7 @@
 	depixel 9, 11
 	ld a, SPRITE_ANIM_INDEX_13
 	call _InitSpriteAnimStruct
-	ld hl, SPRITEANIMSTRUCT_0B
+	ld hl, SPRITEANIMSTRUCT_JUMPTABLE_INDEX
 	add hl, bc
 	ld a, [wJumptableIndex]
 	and %1110
--- a/engine/slot_machine.asm
+++ b/engine/slot_machine.asm
@@ -1948,7 +1948,7 @@
 ; 9321d
 
 SlotMachine_AnimateGolem: ; 9321d (24:721d)
-	ld hl, SPRITEANIMSTRUCT_0B
+	ld hl, SPRITEANIMSTRUCT_JUMPTABLE_INDEX
 	add hl, bc
 	ld e, [hl]
 	ld d, 0
@@ -1982,7 +1982,7 @@
 
 .retain
 	dec [hl]
-	ld hl, SPRITEANIMSTRUCT_0B
+	ld hl, SPRITEANIMSTRUCT_JUMPTABLE_INDEX
 	add hl, bc
 	inc [hl]
 	ld hl, SPRITEANIMSTRUCT_0C
@@ -2009,7 +2009,7 @@
 	ret
 
 .play_sound
-	ld hl, SPRITEANIMSTRUCT_0B
+	ld hl, SPRITEANIMSTRUCT_JUMPTABLE_INDEX
 	add hl, bc
 	inc [hl]
 	ld hl, SPRITEANIMSTRUCT_0D
@@ -2041,7 +2041,7 @@
 	ret
 
 .restart
-	ld hl, SPRITEANIMSTRUCT_0B
+	ld hl, SPRITEANIMSTRUCT_JUMPTABLE_INDEX
 	add hl, bc
 	xor a
 	ld [hl], a
@@ -2049,7 +2049,7 @@
 	ret
 
 Slots_AnimateChansey: ; 932ac (24:72ac)
-	ld hl, SPRITEANIMSTRUCT_0B
+	ld hl, SPRITEANIMSTRUCT_JUMPTABLE_INDEX
 	add hl, bc
 	ld e, [hl]
 	ld d, 0
@@ -2082,7 +2082,7 @@
 	ret
 
 .limit
-	ld hl, SPRITEANIMSTRUCT_0B
+	ld hl, SPRITEANIMSTRUCT_JUMPTABLE_INDEX
 	add hl, bc
 	inc [hl]
 	ld a, $1
@@ -2100,7 +2100,7 @@
 	ret
 
 .retain
-	ld hl, SPRITEANIMSTRUCT_0B
+	ld hl, SPRITEANIMSTRUCT_JUMPTABLE_INDEX
 	add hl, bc
 	inc [hl]
 	ld hl, SPRITEANIMSTRUCT_0C
@@ -2116,7 +2116,7 @@
 	ret
 
 .spawn_egg
-	ld hl, SPRITEANIMSTRUCT_0B
+	ld hl, SPRITEANIMSTRUCT_JUMPTABLE_INDEX
 	add hl, bc
 	dec [hl]
 	push bc
--- a/engine/sprite_anims.asm
+++ b/engine/sprite_anims.asm
@@ -133,17 +133,17 @@
 	ret
 
 .four ; 8d302 (23:5302)
-	call .anonymous_dw
+	call .AnonymousJumptable
 	jp [hl]
 ; 8d306 (23:5306)
 
-; Anonymous dw (see .anonymous_dw)
+; Anonymous dw (see .AnonymousJumptable)
 	dw .four_zero
 	dw .four_one
 ; 8d30a
 
 .four_zero ; 8d30a
-	call .IncrementSpriteAnimStruct0B
+	call .IncrementJumptableIndex
 
 	ld hl, SPRITEANIMSTRUCT_INDEX
 	add hl, bc
@@ -245,7 +245,7 @@
 	add hl, bc
 	dec [hl]
 .asm_8d395
-	ld hl, SPRITEANIMSTRUCT_0B
+	ld hl, SPRITEANIMSTRUCT_JUMPTABLE_INDEX
 	add hl, bc
 	ld a, [hl]
 	push af
@@ -267,7 +267,7 @@
 	add hl, bc
 	ld a, [hl]
 
-	ld hl, SPRITEANIMSTRUCT_0B
+	ld hl, SPRITEANIMSTRUCT_JUMPTABLE_INDEX
 	add hl, bc
 	add [hl]
 	ld [hl], a
@@ -290,7 +290,7 @@
 	add hl, bc
 	ld d, [hl]
 
-	ld hl, SPRITEANIMSTRUCT_0B
+	ld hl, SPRITEANIMSTRUCT_JUMPTABLE_INDEX
 	add hl, bc
 	ld a, [hl]
 	push af
@@ -345,7 +345,7 @@
 	inc hl
 	ld [hl], d
 
-	ld hl, SPRITEANIMSTRUCT_0B
+	ld hl, SPRITEANIMSTRUCT_JUMPTABLE_INDEX
 	add hl, bc
 	ld a, [hl]
 	xor $20
@@ -372,7 +372,7 @@
 	ret
 
 .SlotsChanseyEgg: ; 8d43e (23:543e)
-	ld hl, SPRITEANIMSTRUCT_0B
+	ld hl, SPRITEANIMSTRUCT_JUMPTABLE_INDEX
 	add hl, bc
 	ld a, [hl]
 	dec [hl]
@@ -417,11 +417,11 @@
 	ret
 
 .sixteen ; 8d483 (23:5483)
-	call .anonymous_dw
+	call .AnonymousJumptable
 	jp [hl]
 ; 8d487 (23:5487)
 
-; Anonymous dw (see .anonymous_dw)
+; Anonymous dw (see .AnonymousJumptable)
 	dw .sixteen_zero
 	dw .sixteen_one
 	dw .sixteen_two
@@ -434,7 +434,7 @@
 	ld a, $14
 	call _ReinitSpriteAnimFrame
 
-	ld hl, SPRITEANIMSTRUCT_0B
+	ld hl, SPRITEANIMSTRUCT_JUMPTABLE_INDEX
 	add hl, bc
 	ld [hl], $2
 
@@ -454,7 +454,7 @@
 	ret
 
 .asm_8d4af
-	call .IncrementSpriteAnimStruct0B
+	call .IncrementJumptableIndex
 
 	ld hl, SPRITEANIMSTRUCT_0C
 	add hl, bc
@@ -482,7 +482,7 @@
 ; 8d4d5
 
 .sixteen_one ; 8d4d5
-	ld hl, SPRITEANIMSTRUCT_0B
+	ld hl, SPRITEANIMSTRUCT_JUMPTABLE_INDEX
 	add hl, bc
 	ld [hl], $4
 
@@ -539,7 +539,7 @@
 	ld hl, SPRITEANIMSTRUCT_YOFFSET
 	add hl, bc
 	ld [hl], a
-	call .IncrementSpriteAnimStruct0B
+	call .IncrementJumptableIndex
 	ret
 
 .sixteen_five ; 8d526
@@ -579,7 +579,7 @@
 	add $8
 	ld [hl], a
 
-	ld hl, SPRITEANIMSTRUCT_0B
+	ld hl, SPRITEANIMSTRUCT_JUMPTABLE_INDEX
 	add hl, bc
 	ld a, [hl]
 	xor $20
@@ -804,7 +804,7 @@
 	ret
 
 .thirtytwo ; 8d680 (23:5680)
-	ld hl, SPRITEANIMSTRUCT_0B
+	ld hl, SPRITEANIMSTRUCT_JUMPTABLE_INDEX
 	add hl, bc
 	ld d, [hl]
 	inc [hl]
@@ -847,7 +847,7 @@
 	ret
 
 .twentysix ; 8d6b7 (23:56b7)
-	callba Function11d0b6
+	callba AnimateEZChatCursor
 	ret
 
 .thirtyone ; 8d6be (23:56be)
@@ -854,7 +854,7 @@
 	callba UpdateCelebiPosition
 	ret
 
-.anonymous_dw ; 8d6c5 (23:56c5)
+.AnonymousJumptable: ; 8d6c5 (23:56c5)
 	ld hl, [sp+$0]
 	ld e, [hl]
 	inc hl
@@ -861,7 +861,7 @@
 	ld d, [hl]
 	inc de
 
-	ld hl, SPRITEANIMSTRUCT_0B
+	ld hl, SPRITEANIMSTRUCT_JUMPTABLE_INDEX
 	add hl, bc
 	ld l, [hl]
 	ld h, $0
@@ -873,8 +873,8 @@
 	ret
 ; 8d6d8 (23:56d8)
 
-.IncrementSpriteAnimStruct0B: ; 8d6d8
-	ld hl, SPRITEANIMSTRUCT_0B
+.IncrementJumptableIndex: ; 8d6d8
+	ld hl, SPRITEANIMSTRUCT_JUMPTABLE_INDEX
 	add hl, bc
 	inc [hl]
 	ret
--- a/engine/trade/animation.asm
+++ b/engine/trade/animation.asm
@@ -363,7 +363,7 @@
 	ld a, SPRITE_ANIM_INDEX_TRADEMON_ICON
 	call _InitSpriteAnimStruct
 
-	ld hl, SPRITEANIMSTRUCT_0B
+	ld hl, SPRITEANIMSTRUCT_JUMPTABLE_INDEX
 	add hl, bc
 	pop bc
 	ld [hl], b
@@ -372,7 +372,7 @@
 	ld a, SPRITE_ANIM_INDEX_TRADEMON_BUBBLE
 	call _InitSpriteAnimStruct
 
-	ld hl, SPRITEANIMSTRUCT_0B
+	ld hl, SPRITEANIMSTRUCT_JUMPTABLE_INDEX
 	add hl, bc
 	pop bc
 	ld [hl], b
@@ -1123,7 +1123,7 @@
 	depixel 10, 11, 4, 0
 	ld a, SPRITE_ANIM_INDEX_0E
 	call _InitSpriteAnimStruct
-	ld hl, SPRITEANIMSTRUCT_0B
+	ld hl, SPRITEANIMSTRUCT_JUMPTABLE_INDEX
 	add hl, bc
 	ld [hl], $1
 	ld hl, SPRITEANIMSTRUCT_YOFFSET
@@ -1163,7 +1163,7 @@
 ; 29676
 
 TradeAnim_AnimateTrademonInTube: ; 29676 (a:5676)
-	ld hl, SPRITEANIMSTRUCT_0B
+	ld hl, SPRITEANIMSTRUCT_JUMPTABLE_INDEX
 	add hl, bc
 	ld e, [hl]
 	ld d, 0
@@ -1187,7 +1187,7 @@
 ; 2969a
 
 .JumptableNext: ; 29694 (a:5694)
-	ld hl, SPRITEANIMSTRUCT_0B
+	ld hl, SPRITEANIMSTRUCT_JUMPTABLE_INDEX
 	add hl, bc
 	inc [hl]
 	ret
--- a/misc/fixed_words.asm
+++ b/misc/fixed_words.asm
@@ -399,8 +399,8 @@
 ; 11c2bb
 
 .Jumptable: ; 11c2bb (47:42bb)
-	dw Function11c2e9 ; 00
-	dw Function11c346 ; 01
+	dw .SpawnObjects ; 00
+	dw .InitRAM ; 01
 	dw Function11c35f ; 02
 	dw Function11c373 ; 03
 	dw Function11c3c2 ; 04
@@ -423,51 +423,57 @@
 	dw Function11ce0b ; 15
 	dw Function11ce2b ; 16
 
-Function11c2e9: ; 11c2e9 (47:42e9)
+.SpawnObjects: ; 11c2e9 (47:42e9)
 	depixel 3, 1, 2, 5
 	ld a, SPRITE_ANIM_INDEX_1D
 	call _InitSpriteAnimStruct
 	depixel 8, 1, 2, 5
+
 	ld a, SPRITE_ANIM_INDEX_1D
 	call _InitSpriteAnimStruct
-	ld hl, $c
+	ld hl, SPRITEANIMSTRUCT_0C
 	add hl, bc
 	ld a, $1
 	ld [hl], a
+
 	depixel 9, 2, 2, 0
 	ld a, SPRITE_ANIM_INDEX_1D
 	call _InitSpriteAnimStruct
-	ld hl, $c
+	ld hl, SPRITEANIMSTRUCT_0C
 	add hl, bc
 	ld a, $3
 	ld [hl], a
+
 	depixel 10, 16
 	ld a, SPRITE_ANIM_INDEX_1D
 	call _InitSpriteAnimStruct
-	ld hl, $c
+	ld hl, SPRITEANIMSTRUCT_0C
 	add hl, bc
 	ld a, $4
 	ld [hl], a
+
 	depixel 10, 4
 	ld a, SPRITE_ANIM_INDEX_1D
 	call _InitSpriteAnimStruct
-	ld hl, $c
+	ld hl, SPRITEANIMSTRUCT_0C
 	add hl, bc
 	ld a, $5
 	ld [hl], a
+
 	depixel 10, 2
 	ld a, SPRITE_ANIM_INDEX_1D
 	call _InitSpriteAnimStruct
-	ld hl, $c
+	ld hl, SPRITEANIMSTRUCT_0C
 	add hl, bc
 	ld a, $2
 	ld [hl], a
+
 	ld hl, wcd23
 	set 1, [hl]
 	set 2, [hl]
 	jp Function11cfb5
 
-Function11c346: ; 11c346 (47:4346)
+.InitRAM: ; 11c346 (47:4346)
 	ld a, $9
 	ld [wcd2d], a
 	ld a, $2
@@ -569,7 +575,7 @@
 	call Function11cfb5
 
 Function11c3ed: ; 11c3ed (47:43ed)
-	ld hl, wcd20 ; wcd20 (aliases: CreditsPos)
+	ld hl, wcd20 ; wcd20
 	ld de, hJoypadPressed ; $ffa3
 	ld a, [de]
 	and $8
@@ -604,11 +610,11 @@
 	jr .asm_11c475
 .asm_11c426
 	ld a, $8
-	ld [wcd20], a ; wcd20 (aliases: CreditsPos)
+	ld [wcd20], a ; wcd20
 	ret
 
 .asm_11c42c
-	ld a, [wcd20] ; wcd20 (aliases: CreditsPos)
+	ld a, [wcd20] ; wcd20
 	cp $6
 	jr c, .asm_11c472
 	sub $6
@@ -790,7 +796,7 @@
 	ld hl, wcd24
 	set 0, [hl]
 	ld a, $8
-	ld [wcd20], a ; wcd20 (aliases: CreditsPos)
+	ld [wcd20], a ; wcd20
 
 .b
 	ld a, $4
@@ -818,7 +824,7 @@
 	ret
 
 .asm_11c5ab
-	ld a, [wcd20] ; wcd20 (aliases: CreditsPos)
+	ld a, [wcd20] ; wcd20
 	call Function11ca6a
 	call PlayClickSFX
 	ret
@@ -1112,13 +1118,14 @@
 	ld [wcd27], a
 	ld a, [wcd2b]
 	and a
-	jr nz, .asm_11c7ab
+	jr nz, .cd2b_is_nonzero
 	ld a, [wcd21]
 	and a
-	jr z, .asm_11c799
+	jr z, .cd21_is_zero
+	; load from data array
 	dec a
 	sla a
-	ld hl, Unknown_11f220
+	ld hl, MobileFixedWordData_WordAndPageCounts
 	ld c, a
 	ld b, 0
 	add hl, bc
@@ -1125,24 +1132,27 @@
 	ld a, [hli]
 	ld [wcd28], a
 	ld a, [hl]
-.asm_11c795
+.load
 	ld [wcd29], a
 	ret
 
-.asm_11c799
+.cd21_is_zero
+	; compute from [wc7d2]
 	ld a, [wc7d2]
 	ld [wcd28], a
-.asm_11c79f
-	ld c, $c
+.div_12
+	ld c, 12
 	call SimpleDivide
 	and a
-	jr nz, .asm_11c7a8
+	jr nz, .no_need_to_floor
 	dec b
-.asm_11c7a8
+.no_need_to_floor
 	ld a, b
-	jr .asm_11c795
-.asm_11c7ab
-	ld hl, $c68a + 30
+	jr .load
+
+.cd2b_is_nonzero
+	; compute from [c6a8 + 2 * [cd22]]
+	ld hl, $c6a8 ; $c68a + 30
 	ld a, [wcd22]
 	ld c, a
 	ld b, 0
@@ -1150,7 +1160,7 @@
 	add hl, bc
 	ld a, [hl]
 	ld [wcd28], a
-	jr .asm_11c79f
+	jr .div_12
 
 Function11c7bc: ; 11c7bc (47:47bc)
 	ld bc, Unknown_11c854
@@ -1382,7 +1392,7 @@
 ; 11c8f6
 
 Function11c8f6: ; 11c8f6 (47:48f6)
-	ld a, [wcd20] ; wcd20 (aliases: CreditsPos)
+	ld a, [wcd20] ; wcd20
 	call Function11c95d
 	push hl
 	ld a, [wcd2b]
@@ -1402,7 +1412,7 @@
 	push de
 	call Function11c05d
 	pop de
-	ld a, [wcd20] ; wcd20 (aliases: CreditsPos)
+	ld a, [wcd20] ; wcd20
 	ld c, a
 	ld b, $0
 	ld hl, wcd36
@@ -1546,7 +1556,7 @@
 	jr nz, .asm_11c9e9
 	call Function11ca5e
 	xor a
-	ld [wcd20], a ; wcd20 (aliases: CreditsPos)
+	ld [wcd20], a ; wcd20
 .asm_11c9e9
 	ld hl, wcd24
 	set 4, [hl]
@@ -2116,7 +2126,7 @@
 	ld hl, wcd24
 	set 0, [hl]
 	ld a, $8
-	ld [wcd20], a ; wcd20 (aliases: CreditsPos)
+	ld [wcd20], a ; wcd20
 .b
 	ld a, $4
 	jr .load
@@ -2142,7 +2152,7 @@
 	ret
 
 .asm_11cea4
-	ld a, [wcd20] ; wcd20 (aliases: CreditsPos)
+	ld a, [wcd20] ; wcd20
 	call Function11ca6a
 	call PlayClickSFX
 	ret
@@ -2299,7 +2309,7 @@
 
 Function11cfce: ; 11cfce (47:4fce)
 	hlcoord 0, 0
-	ld bc, $14
+	ld bc, SCREEN_WIDTH
 	ld a, [de]
 	inc de
 	push af
@@ -2306,12 +2316,12 @@
 	ld a, [de]
 	inc de
 	and a
-.asm_11cfda
-	jr z, .asm_11cfe0
+.add_n_times
+	jr z, .done_add_n_times
 	add hl, bc
 	dec a
-	jr .asm_11cfda
-.asm_11cfe0
+	jr .add_n_times
+.done_add_n_times
 	pop af
 	ld c, a
 	ld b, 0
@@ -2323,26 +2333,26 @@
 	inc de
 	dec a
 	dec a
-	jr z, .asm_11cff6
+	jr z, .skip_fill
 	ld c, a
 	ld a, $7a
-.asm_11cff2
+.fill_loop
 	ld [hli], a
 	dec c
-	jr nz, .asm_11cff2
-.asm_11cff6
+	jr nz, .fill_loop
+.skip_fill
 	ld a, $7b
 	ld [hl], a
 	pop hl
-	ld bc, $14
+	ld bc, SCREEN_WIDTH
 	add hl, bc
 	ld a, [de]
 	dec de
 	dec a
 	dec a
-	jr z, .asm_11d022
+	jr z, .skip_section
 	ld b, a
-.asm_11d005
+.loop
 	push hl
 	ld a, $7c
 	ld [hli], a
@@ -2349,37 +2359,37 @@
 	ld a, [de]
 	dec a
 	dec a
-	jr z, .asm_11d015
+	jr z, .skip_row
 	ld c, a
 	ld a, $7f
-.asm_11d011
+.row_loop
 	ld [hli], a
 	dec c
-	jr nz, .asm_11d011
-.asm_11d015
+	jr nz, .row_loop
+.skip_row
 	ld a, $7c
 	ld [hl], a
 	pop hl
 	push bc
-	ld bc, $14
+	ld bc, SCREEN_WIDTH
 	add hl, bc
 	pop bc
 	dec b
-	jr nz, .asm_11d005
-.asm_11d022
+	jr nz, .loop
+.skip_section
 	ld a, $7d
 	ld [hli], a
 	ld a, [de]
 	dec a
 	dec a
-	jr z, .asm_11d031
+	jr z, .skip_remainder
 	ld c, a
 	ld a, $7a
-.asm_11d02d
+.final_loop
 	ld [hli], a
 	dec c
-	jr nz, .asm_11d02d
-.asm_11d031
+	jr nz, .final_loop
+.skip_remainder
 	ld a, $7e
 	ld [hl], a
 	ret
@@ -2386,7 +2396,7 @@
 
 Function11d035: ; 11d035 (47:5035)
 	hlcoord 0, 0
-	ld bc, $14
+	ld bc, SCREEN_WIDTH
 	ld a, [de]
 	inc de
 	push af
@@ -2393,12 +2403,12 @@
 	ld a, [de]
 	inc de
 	and a
-.asm_11d041
-	jr z, .asm_11d047
+.add_n_times
+	jr z, .done_add_n_times
 	add hl, bc
 	dec a
-	jr .asm_11d041
-.asm_11d047
+	jr .add_n_times
+.done_add_n_times
 	pop af
 	ld c, a
 	ld b, $0
@@ -2415,12 +2425,12 @@
 	add hl, bc
 	ld a, $7b
 	ld [hl], a
-	call Function11d0ac
+	call .AddNMinusOneTimes
 	ld a, $7e
 	ld [hl], a
 	pop hl
 	push hl
-	call Function11d0ac
+	call .AddNMinusOneTimes
 	ld a, $7d
 	ld [hl], a
 	pop hl
@@ -2427,15 +2437,15 @@
 	push hl
 	inc hl
 	push hl
-	call Function11d0ac
+	call .AddNMinusOneTimes
 	pop bc
 	dec de
 	ld a, [de]
 	cp $2
-	jr z, .asm_11d082
+	jr z, .skip
 	dec a
 	dec a
-.asm_11d078
+.loop
 	push af
 	ld a, $7a
 	ld [hli], a
@@ -2443,8 +2453,8 @@
 	inc bc
 	pop af
 	dec a
-	jr nz, .asm_11d078
-.asm_11d082
+	jr nz, .loop
+.skip
 	pop hl
 	ld bc, $14
 	add hl, bc
@@ -2465,32 +2475,32 @@
 	ld c, a
 	ld b, a
 	ld de, $14
-.asm_11d09c
+.loop2
 	ld a, $7c
 	ld [hl], a
 	add hl, de
 	dec c
-	jr nz, .asm_11d09c
+	jr nz, .loop2
 	pop hl
-.asm_11d0a4
+.loop3
 	ld a, $7c
 	ld [hl], a
 	add hl, de
 	dec b
-	jr nz, .asm_11d0a4
+	jr nz, .loop3
 	ret
 
-Function11d0ac: ; 11d0ac (47:50ac)
+.AddNMinusOneTimes: ; 11d0ac (47:50ac)
 	ld a, [de]
 	dec a
-	ld bc, $14
-.asm_11d0b1
+	ld bc, SCREEN_WIDTH
+.add_n_minus_one_times
 	add hl, bc
 	dec a
-	jr nz, .asm_11d0b1
+	jr nz, .add_n_minus_one_times
 	ret
 
-Function11d0b6: ; 11d0b6 (47:50b6)
+AnimateEZChatCursor: ; 11d0b6 (47:50b6)
 	ld hl, SPRITEANIMSTRUCT_0C
 	add hl, bc
 	ld a, [hl]
@@ -2518,9 +2528,9 @@
 	dw .ten
 
 .zero ; 11d0dd (47:50dd)
-	ld a, [wcd20] ; wcd20 (aliases: CreditsPos)
+	ld a, [wcd20] ; wcd20
 	sla a
-	ld hl, Unknown_11d208
+	ld hl, .Coords_Zero
 	ld e, $1
 	jr .load
 
@@ -2527,12 +2537,12 @@
 .one ; 11d0e9 (47:50e9)
 	ld a, [wcd21]
 	sla a
-	ld hl, Unknown_11d21a
+	ld hl, .Coords_One
 	ld e, $2
 	jr .load
 
 .two ; 11d0f5 (47:50f5)
-	ld hl, Unknown_11d2be
+	ld hl, .FramesetsIDs_Two
 	ld a, [wcd22]
 	ld e, a
 	ld d, $0
@@ -2539,9 +2549,10 @@
 	add hl, de
 	ld a, [hl]
 	call ReinitSpriteAnimFrame
+
 	ld a, [wcd22]
 	sla a
-	ld hl, Unknown_11d23e
+	ld hl, .Coords_Two
 	ld e, $4
 	jr .load
 
@@ -2550,7 +2561,7 @@
 	call ReinitSpriteAnimFrame
 	ld a, [wMobileCommsJumptableIndex]
 	sla a
-	ld hl, Unknown_11d29e
+	ld hl, .Coords_Three
 	ld e, $8
 .load ; 11d11e (47:511e)
 	push de
@@ -2568,7 +2579,7 @@
 	ld [hl], a
 	pop de
 	ld a, e
-	call Function11d2ee
+	call .UpdateObjectFlags
 	ret
 
 .four ; 11d134 (47:5134)
@@ -2576,7 +2587,7 @@
 	call ReinitSpriteAnimFrame
 	ld a, [wcd2a]
 	sla a
-	ld hl, Unknown_11d2b6
+	ld hl, .Coords_Four
 	ld e, $10
 	jr .load
 
@@ -2585,7 +2596,7 @@
 	call ReinitSpriteAnimFrame
 	ld a, [wcd2c]
 	sla a
-	ld hl, Unknown_11d2ba
+	ld hl, .Coords_Five
 	ld e, $20
 	jr .load
 
@@ -2592,35 +2603,40 @@
 .six ; 11d156 (47:5156)
 	ld a, SPRITE_ANIM_FRAMESET_2A
 	call ReinitSpriteAnimFrame
+	; X = [wcd4a] * 8 + 24
 	ld a, [wcd4a]
 	sla a
 	sla a
 	sla a
 	add $18
-	ld hl, $4
+	ld hl, SPRITEANIMSTRUCT_XCOORD
 	add hl, bc
 	ld [hli], a
+	; Y = 48
 	ld a, $30
 	ld [hl], a
+
 	ld a, $1
 	ld e, a
-	call Function11d2ee
+	call .UpdateObjectFlags
 	ret
 
 .seven ; 11d175 (47:5175)
-	ld a, [wcd4d]
+	ld a, [wFixedWordsCursorYCoord]
 	cp $4
-	jr z, .asm_11d180
+	jr z, .frameset_26
 	ld a, SPRITE_ANIM_FRAMESET_28
-	jr .asm_11d182
-.asm_11d180
+	jr .got_frameset
+
+.frameset_26
 	ld a, SPRITE_ANIM_FRAMESET_26
-.asm_11d182
+.got_frameset
 	call ReinitSpriteAnimFrame
-	ld a, [wcd4d]
+	ld a, [wFixedWordsCursorYCoord]
 	cp $4
 	jr z, .asm_11d1b1
-	ld a, [wcd4c]
+	; X = [wFixedWordsCursorXCoord] * 8 + 32
+	ld a, [wFixedWordsCursorXCoord]
 	sla a
 	sla a
 	sla a
@@ -2628,7 +2644,8 @@
 	ld hl, SPRITEANIMSTRUCT_XCOORD
 	add hl, bc
 	ld [hli], a
-	ld a, [wcd4d]
+	; Y = [wFixedWordsCursorYCoord] * 16 + 72
+	ld a, [wFixedWordsCursorYCoord]
 	sla a
 	sla a
 	sla a
@@ -2637,11 +2654,12 @@
 	ld [hl], a
 	ld a, $2
 	ld e, a
-	call Function11d2ee
+	call .UpdateObjectFlags
 	ret
 
 .asm_11d1b1
-	ld a, [wcd4c]
+	; X = [wFixedWordsCursorXCoord] * 40 + 24
+	ld a, [wFixedWordsCursorXCoord]
 	sla a
 	sla a
 	sla a
@@ -2653,11 +2671,12 @@
 	ld hl, SPRITEANIMSTRUCT_XCOORD
 	add hl, bc
 	ld [hli], a
+	; Y = 138
 	ld a, $8a
 	ld [hl], a
 	ld a, $2
 	ld e, a
-	call Function11d2ee
+	call .UpdateObjectFlags
 	ret
 
 .nine ; 11d1d1 (47:51d1)
@@ -2686,7 +2705,7 @@
 	ld [hl], a
 	ld a, $4
 	ld e, a
-	call Function11d2ee
+	call .UpdateObjectFlags
 	ret
 
 .ten ; 11d1fc (47:51fc)
@@ -2694,140 +2713,164 @@
 	call ReinitSpriteAnimFrame
 	ld a, $8
 	ld e, a
-	call Function11d2ee
+	call .UpdateObjectFlags
 	ret
 ; 11d208 (47:5208)
 
-Unknown_11d208: ; 11d208
-	db $0d, $1a
-	db $3d, $1a
-	db $6d, $1a
-	db $0d, $2a
-	db $3d, $2a
-	db $6d, $2a
-	db $0d, $8a
-	db $3d, $8a
-	db $6d, $8a
+.Coords_Zero: ; 11d208
+	dbpixel  1,  3, 5, 2
+	dbpixel  7,  3, 5, 2
+	dbpixel 13,  3, 5, 2
+	dbpixel  1,  5, 5, 2
+	dbpixel  7,  5, 5, 2
+	dbpixel 13,  5, 5, 2
+	dbpixel  1, 17, 5, 2
+	dbpixel  7, 17, 5, 2
+	dbpixel 13, 17, 5, 2
 
-Unknown_11d21a: ; 11d21a
-	db $0d, $42
-	db $3d, $42
-	db $6d, $42
-	db $0d, $52
-	db $3d, $52
-	db $6d, $52
-	db $0d, $62
-	db $3d, $62
-	db $6d, $62
-	db $0d, $72
-	db $3d, $72
-	db $6d, $72
-	db $0d, $82
-	db $3d, $82
-	db $6d, $82
-	db $0d, $92
-	db $3d, $92
-	db $6d, $92
+.Coords_One: ; 11d21a
+	dbpixel  1,  8, 5, 2
+	dbpixel  7,  8, 5, 2
+	dbpixel 13,  8, 5, 2
+	dbpixel  1, 10, 5, 2
+	dbpixel  7, 10, 5, 2
+	dbpixel 13, 10, 5, 2
+	dbpixel  1, 12, 5, 2
+	dbpixel  7, 12, 5, 2
+	dbpixel 13, 12, 5, 2
+	dbpixel  1, 14, 5, 2
+	dbpixel  7, 14, 5, 2
+	dbpixel 13, 14, 5, 2
+	dbpixel  1, 16, 5, 2
+	dbpixel  7, 16, 5, 2
+	dbpixel 13, 16, 5, 2
+	dbpixel  1, 18, 5, 2
+	dbpixel  7, 18, 5, 2
+	dbpixel 13, 18, 5, 2
 
-Unknown_11d23e: ; 11d23e
-	db $10, $48
-	db $18, $48
-	db $20, $48
-	db $28, $48
-	db $30, $48
-	db $10, $58
-	db $18, $58
-	db $20, $58
-	db $28, $58
-	db $30, $58
-	db $10, $68
-	db $18, $68
-	db $20, $68
-	db $28, $68
-	db $30, $68
-	db $10, $78
-	db $18, $78
-	db $20, $78
-	db $28, $78
-	db $30, $78
-	db $40, $48
-	db $48, $48
-	db $50, $48
-	db $58, $48
-	db $60, $48
-	db $40, $58
-	db $48, $58
-	db $50, $58
-	db $58, $58
-	db $60, $58
-	db $40, $68
-	db $48, $68
-	db $50, $68
-	db $58, $68
-	db $60, $68
-	db $70, $48
-	db $80, $48
-	db $90, $48
-	db $40, $78
-	db $48, $78
-	db $50, $78
-	db $58, $78
-	db $60, $78
-	db $70, $58
-	db $70, $68
-	db $0d, $92
-	db $3d, $92
-	db $6d, $92
+.Coords_Two: ; 11d23e
+	dbpixel  2,  9       ; 00
+	dbpixel  3,  9       ; 01
+	dbpixel  4,  9       ; 02
+	dbpixel  5,  9       ; 03
+	dbpixel  6,  9       ; 04
+	dbpixel  2, 11       ; 05
+	dbpixel  3, 11       ; 06
+	dbpixel  4, 11       ; 07
+	dbpixel  5, 11       ; 08
+	dbpixel  6, 11       ; 09
+	dbpixel  2, 13       ; 0a
+	dbpixel  3, 13       ; 0b
+	dbpixel  4, 13       ; 0c
+	dbpixel  5, 13       ; 0d
+	dbpixel  6, 13       ; 0e
+	dbpixel  2, 15       ; 0f
+	dbpixel  3, 15       ; 10
+	dbpixel  4, 15       ; 11
+	dbpixel  5, 15       ; 12
+	dbpixel  6, 15       ; 13
+	dbpixel  8,  9       ; 14
+	dbpixel  9,  9       ; 15
+	dbpixel 10,  9       ; 16
+	dbpixel 11,  9       ; 17
+	dbpixel 12,  9       ; 18
+	dbpixel  8, 11       ; 19
+	dbpixel  9, 11       ; 1a
+	dbpixel 10, 11       ; 1b
+	dbpixel 11, 11       ; 1c
+	dbpixel 12, 11       ; 1d
+	dbpixel  8, 13       ; 1e
+	dbpixel  9, 13       ; 1f
+	dbpixel 10, 13       ; 20
+	dbpixel 11, 13       ; 21
+	dbpixel 12, 13       ; 22
+	dbpixel 14,  9       ; 23
+	dbpixel 16,  9       ; 24
+	dbpixel 18,  9       ; 25
+	dbpixel  8, 15       ; 26
+	dbpixel  9, 15       ; 27
+	dbpixel 10, 15       ; 28
+	dbpixel 11, 15       ; 29
+	dbpixel 12, 15       ; 2a
+	dbpixel 14, 11       ; 2b
+	dbpixel 14, 13       ; 2c
+	dbpixel  1, 18, 5, 2 ; 2d
+	dbpixel  7, 18, 5, 2 ; 2e
+	dbpixel 13, 18, 5, 2 ; 2f
 
-Unknown_11d29e: ; 11d29e
-	db $10, $50
-	db $40, $50
-	db $70, $50
-	db $10, $60
-	db $40, $60
-	db $70, $60
-	db $10, $70
-	db $40, $70
-	db $70, $70
-	db $10, $80
-	db $40, $80
-	db $70, $80
+.Coords_Three: ; 11d29e
+	dbpixel  2, 10
+	dbpixel  8, 10
+	dbpixel 14, 10
+	dbpixel  2, 12
+	dbpixel  8, 12
+	dbpixel 14, 12
+	dbpixel  2, 14
+	dbpixel  8, 14
+	dbpixel 14, 14
+	dbpixel  2, 16
+	dbpixel  8, 16
+	dbpixel 14, 16
 
-Unknown_11d2b6: ; 11d2b6
-	db $80, $50
-	db $80, $60
+.Coords_Four: ; 11d2b6
+	dbpixel 16, 10
+	dbpixel 16, 12
 
-Unknown_11d2ba: ; 11d2ba
-	db $20, $50
-	db $20, $60
+.Coords_Five: ; 11d2ba
+	dbpixel  4, 10
+	dbpixel  4, 12
 
-Unknown_11d2be: ; 11d2be
-	db $28, $28
-	db $28, $28
-	db $28, $28
-	db $28, $28
-	db $28, $28
-	db $28, $28
-	db $28, $28
-	db $28, $28
-	db $28, $28
-	db $28, $28
-	db $28, $28
-	db $28, $28
-	db $28, $28
-	db $28, $28
-	db $28, $28
-	db $28, $28
-	db $28, $28
-	db $28, $28
-	db $28, $28
-	db $28, $28
-	db $28, $28
-	db $28, $28
-	db $29, $26
-	db $26, $26
+.FramesetsIDs_Two: ; 11d2be
+	db SPRITE_ANIM_FRAMESET_28 ; 00
+	db SPRITE_ANIM_FRAMESET_28 ; 01
+	db SPRITE_ANIM_FRAMESET_28 ; 02
+	db SPRITE_ANIM_FRAMESET_28 ; 03
+	db SPRITE_ANIM_FRAMESET_28 ; 04
+	db SPRITE_ANIM_FRAMESET_28 ; 05
+	db SPRITE_ANIM_FRAMESET_28 ; 06
+	db SPRITE_ANIM_FRAMESET_28 ; 07
+	db SPRITE_ANIM_FRAMESET_28 ; 08
+	db SPRITE_ANIM_FRAMESET_28 ; 09
+	db SPRITE_ANIM_FRAMESET_28 ; 0a
+	db SPRITE_ANIM_FRAMESET_28 ; 0b
+	db SPRITE_ANIM_FRAMESET_28 ; 0c
+	db SPRITE_ANIM_FRAMESET_28 ; 0d
+	db SPRITE_ANIM_FRAMESET_28 ; 0e
+	db SPRITE_ANIM_FRAMESET_28 ; 0f
+	db SPRITE_ANIM_FRAMESET_28 ; 10
+	db SPRITE_ANIM_FRAMESET_28 ; 11
+	db SPRITE_ANIM_FRAMESET_28 ; 12
+	db SPRITE_ANIM_FRAMESET_28 ; 13
+	db SPRITE_ANIM_FRAMESET_28 ; 14
+	db SPRITE_ANIM_FRAMESET_28 ; 15
+	db SPRITE_ANIM_FRAMESET_28 ; 16
+	db SPRITE_ANIM_FRAMESET_28 ; 17
+	db SPRITE_ANIM_FRAMESET_28 ; 18
+	db SPRITE_ANIM_FRAMESET_28 ; 19
+	db SPRITE_ANIM_FRAMESET_28 ; 1a
+	db SPRITE_ANIM_FRAMESET_28 ; 1b
+	db SPRITE_ANIM_FRAMESET_28 ; 1c
+	db SPRITE_ANIM_FRAMESET_28 ; 1d
+	db SPRITE_ANIM_FRAMESET_28 ; 1e
+	db SPRITE_ANIM_FRAMESET_28 ; 1f
+	db SPRITE_ANIM_FRAMESET_28 ; 20
+	db SPRITE_ANIM_FRAMESET_28 ; 21
+	db SPRITE_ANIM_FRAMESET_28 ; 22
+	db SPRITE_ANIM_FRAMESET_28 ; 23
+	db SPRITE_ANIM_FRAMESET_28 ; 24
+	db SPRITE_ANIM_FRAMESET_28 ; 25
+	db SPRITE_ANIM_FRAMESET_28 ; 26
+	db SPRITE_ANIM_FRAMESET_28 ; 27
+	db SPRITE_ANIM_FRAMESET_28 ; 28
+	db SPRITE_ANIM_FRAMESET_28 ; 29
+	db SPRITE_ANIM_FRAMESET_28 ; 2a
+	db SPRITE_ANIM_FRAMESET_28 ; 2b
+	db SPRITE_ANIM_FRAMESET_29 ; 2c
+	db SPRITE_ANIM_FRAMESET_26 ; 2d
+	db SPRITE_ANIM_FRAMESET_26 ; 2e
+	db SPRITE_ANIM_FRAMESET_26 ; 2f
 
-Function11d2ee: ; 11d2ee (47:52ee)
+.UpdateObjectFlags: ; 11d2ee (47:52ee)
 	ld hl, wcd24
 	and [hl]
 	jr nz, .update_y_offset
@@ -2996,10 +3039,12 @@
 .MasterLoop: ; 11d3ef
 	push af
 ; read row
+; offset
 	ld a, [hli]
 	ld e, a
 	ld a, [hli]
 	ld d, a
+; size
 	ld a, [hli]
 	ld c, a
 	ld a, [hli]
@@ -3006,7 +3051,7 @@
 	ld b, a
 ; save the pointer to the next row
 	push hl
-; add de to hl
+; add de to w3_d000
 	ld hl, w3_d000
 	add hl, de
 ; recover de from wcd2d (default: w5_d800)
@@ -3043,6 +3088,7 @@
 	ld a, c
 	or b
 	jr nz, .loop1
+
 ; recover the pointer from wcd2f (default: SortedPokemon)
 	ld a, [wcd2f]
 	ld l, a
@@ -3162,41 +3208,64 @@
 	push af
 	ld a, $3
 	ld [rSVBK], a
+
+	; load pointers
 	ld hl, MobileFixedWordCategoryPointers
-	ld bc, Unknown_11f220
+	ld bc, MobileFixedWordData_WordAndPageCounts
+
+	; init WRAM registers
 	xor a
 	ld [wcd2d], a
 	inc a
 	ld [wcd2e], a
-	ld a, $e
+
+	; enter the first loop
+	ld a, 14
 .loop1
 	push af
+
+	; load the pointer to the category
 	ld a, [hli]
 	ld e, a
 	ld a, [hli]
 	ld d, a
 	push hl
+
+	; skip to the attributes
 	ld hl, 5 ; length of a string
 	add hl, de
-	ld a, [bc]
+
+	; get the number of words in the category
+	ld a, [bc] ; number of entries to copy
 	inc bc
 	inc bc
 	push bc
+
 .loop2
 	push af
 	push hl
+
+	; load offset at [hl]
 	ld a, [hli]
 	ld e, a
 	ld a, [hl]
 	ld d, a
+
+	; add to w3_d000
 	ld hl, w3_d000
 	add hl, de
+
+	; copy from wcd2d and increment [wcd2d] in place
 	ld a, [wcd2d]
 	ld [hli], a
 	inc a
 	ld [wcd2d], a
+
+	; copy from wcd2e
 	ld a, [wcd2e]
 	ld [hl], a
+
+	; next entry
 	pop hl
 	ld de, 8
 	add hl, de
@@ -3203,6 +3272,8 @@
 	pop af
 	dec a
 	jr nz, .loop2
+
+	; reset and go to next category
 	ld hl, wcd2d
 	xor a
 	ld [hli], a
@@ -4175,21 +4246,31 @@
 	db "なんの@@", $2, $4, $0
 ; 11f220
 
-Unknown_11f220:
-	db $12, $01 ; 01
-	db $24, $02 ; 02
-	db $45, $05 ; 03
-	db $45, $05 ; 04
-	db $42, $05 ; 05
-	db $42, $05 ; 06
-	db $45, $05 ; 07
-	db $42, $05 ; 08
-	db $27, $03 ; 09
-	db $27, $03 ; 0a
-	db $45, $05 ; 0b
-	db $27, $03 ; 0c
-	db $42, $05 ; 0d
-	db $24, $02 ; 0e
+MobileFixedWordData_WordAndPageCounts:
+macro_11f220: macro
+; parameter: number of words
+	db \1
+; 12 words per page (0-based indexing)
+x = \1 / 12
+if \1 % 12 == 0
+x = x +- 1
+endc
+	db x
+endm
+	macro_11f220 18 ; 01: Types
+	macro_11f220 36 ; 02: Greetings
+	macro_11f220 69 ; 03: People
+	macro_11f220 69 ; 04: Battle
+	macro_11f220 66 ; 05: Exclamations
+	macro_11f220 66 ; 06: Conversation
+    macro_11f220 69 ; 07: Feelings
+    macro_11f220 66 ; 08: Conditions
+    macro_11f220 39 ; 09: Life
+    macro_11f220 39 ; 0a: Hobbies
+    macro_11f220 69 ; 0b: Actions
+    macro_11f220 39 ; 0c: Time
+    macro_11f220 66 ; 0d: Farewells
+    macro_11f220 36 ; 0e: ThisAndThat
 
 Unknown_11f23c:
 macro_11f23c: macro
@@ -4197,50 +4278,50 @@
 x = x + 2 * \1
 endm
 x = $d012
-	macro_11f23c $2f
-	macro_11f23c $1e
-	macro_11f23c $11
-	macro_11f23c $09
-	macro_11f23c $2e
-	macro_11f23c $24
-	macro_11f23c $1b
-	macro_11f23c $09
-	macro_11f23c $07
-	macro_11f23c $1c
-	macro_11f23c $12
-	macro_11f23c $2b
-	macro_11f23c $10
-	macro_11f23c $08
-	macro_11f23c $0c
-	macro_11f23c $2c
-	macro_11f23c $09
-	macro_11f23c $12
-	macro_11f23c $1b
-	macro_11f23c $1a
-	macro_11f23c $1c
-	macro_11f23c $05
-	macro_11f23c $02
-	macro_11f23c $05
-	macro_11f23c $07
-	macro_11f23c $16
-	macro_11f23c $0e
-	macro_11f23c $0c
-	macro_11f23c $05
-	macro_11f23c $16
-	macro_11f23c $19
-	macro_11f23c $0e
-	macro_11f23c $08
-	macro_11f23c $07
-	macro_11f23c $09
-	macro_11f23c $0d
-	macro_11f23c $04
-	macro_11f23c $14
-	macro_11f23c $0b
-	macro_11f23c $01
-	macro_11f23c $02
-	macro_11f23c $02
-	macro_11f23c $02
-	macro_11f23c $15
+	macro_11f23c $2f ; a
+	macro_11f23c $1e ; i
+	macro_11f23c $11 ; u
+	macro_11f23c $09 ; e
+	macro_11f23c $2e ; o
+	macro_11f23c $24 ; ka_ga
+	macro_11f23c $1b ; ki_gi
+	macro_11f23c $09 ; ku_gu
+	macro_11f23c $07 ; ke_ge
+	macro_11f23c $1c ; ko_go
+	macro_11f23c $12 ; sa_za
+	macro_11f23c $2b ; shi_ji
+	macro_11f23c $10 ; su_zu
+	macro_11f23c $08 ; se_ze
+	macro_11f23c $0c ; so_zo
+	macro_11f23c $2c ; ta_da
+	macro_11f23c $09 ; chi_dhi
+	macro_11f23c $12 ; tsu_du
+	macro_11f23c $1b ; te_de
+	macro_11f23c $1a ; to_do
+	macro_11f23c $1c ; na
+	macro_11f23c $05 ; ni
+	macro_11f23c $02 ; nu
+	macro_11f23c $05 ; ne
+	macro_11f23c $07 ; no
+	macro_11f23c $16 ; ha_ba_pa
+	macro_11f23c $0e ; hi_bi_pi
+	macro_11f23c $0c ; fu_bu_pu
+	macro_11f23c $05 ; he_be_pe
+	macro_11f23c $16 ; ho_bo_po
+	macro_11f23c $19 ; ma
+	macro_11f23c $0e ; mi
+	macro_11f23c $08 ; mu
+	macro_11f23c $07 ; me
+	macro_11f23c $09 ; mo
+	macro_11f23c $0d ; ya
+	macro_11f23c $04 ; yu
+	macro_11f23c $14 ; yo
+	macro_11f23c $0b ; ra
+	macro_11f23c $01 ; ri
+	macro_11f23c $02 ; ru
+	macro_11f23c $02 ; re
+	macro_11f23c $02 ; ro
+	macro_11f23c $15 ; wa
 x = $d000
-	macro_11f23c $09
+	macro_11f23c $09 ; end
 Unknown_11f23cEnd:
--- a/misc/mobile_5c.asm
+++ b/misc/mobile_5c.asm
@@ -516,24 +516,27 @@
 	depixel 8, 2
 	ld a, SPRITE_ANIM_INDEX_1D
 	call _InitSpriteAnimStruct
-	ld hl, $c
+	ld hl, SPRITEANIMSTRUCT_0C
 	add hl, bc
 	ld a, $8
 	ld [hl], a
+
 	depixel 8, 19
 	ld a, SPRITE_ANIM_INDEX_1D
 	call _InitSpriteAnimStruct
-	ld hl, $c
+	ld hl, SPRITEANIMSTRUCT_0C
 	add hl, bc
 	ld a, $9
 	ld [hl], a
+
 	depixel 17, 14, 2, 0
 	ld a, SPRITE_ANIM_INDEX_1D
 	call _InitSpriteAnimStruct
-	ld hl, $c
+	ld hl, SPRITEANIMSTRUCT_0C
 	add hl, bc
 	ld a, $a
 	ld [hl], a
+
 	ld a, $4
 	ld [wcd23], a
 	ld a, $8
--- a/wram.asm
+++ b/wram.asm
@@ -1170,7 +1170,9 @@
 wcd49:: ds 1
 wcd4a:: ds 1
 wcd4b:: ds 1
+wFixedWordsCursorXCoord::
 wcd4c:: ds 1
+wFixedWordsCursorYCoord::
 wcd4d:: ds 1
 wcd4e:: ds 1
 wcd4f:: ds 1