summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile4
-rw-r--r--asm/rom.s2833
-rw-r--r--build.bat2
-rw-r--r--data/data2.s67
-rw-r--r--data/string_util.s40
-rw-r--r--ewram_syms.txt5
-rw-r--r--include/gba/io_reg.h415
-rw-r--r--include/gba/macro.h52
-rw-r--r--include/gba/syscall.h10
-rw-r--r--include/global.h34
-rw-r--r--iwram_syms.txt1
-rw-r--r--src/string_util.c560
-rw-r--r--wram_syms.txt0
13 files changed, 2072 insertions, 1951 deletions
diff --git a/Makefile b/Makefile
index 7ffc0d5b1..0864d959f 100644
--- a/Makefile
+++ b/Makefile
@@ -65,9 +65,11 @@ $(OBJS): $(CSRCS:src/%.c=genasm/%.s)
# TODO: fix this .syntax hack
genasm/prefix.tmp:
+ mkdir -p genasm
echo -e "\t.syntax divided" >$@
genasm/suffix.tmp:
+ mkdir -p genasm
echo -e "\t.syntax unified" >$@
genasm/%.s: src/%.c genasm/prefix.tmp genasm/suffix.tmp
@@ -82,5 +84,5 @@ genasm/%.s: src/%.c genasm/prefix.tmp genasm/suffix.tmp
# Link objects to produce the ROM.
$(ROM): $(OBJS)
- ./pokeld -T ld_script.txt -T wram_syms.txt -o $(ELF) $(OBJS)
+ ./pokeld -T ld_script.txt -T iwram_syms.txt -T ewram_syms.txt -o $(ELF) $(OBJS)
./pokeobjcopy -O binary $(ELF) $(ROM)
diff --git a/asm/rom.s b/asm/rom.s
index 3f1d6e3ee..60726576a 100644
--- a/asm/rom.s
+++ b/asm/rom.s
@@ -6172,7 +6172,7 @@ _08002F6C:
ldr r0, [r4, 0x20]
adds r0, r1
ldrb r0, [r0]
- bl GetStringFromTextCode
+ bl GetExpandedPlaceholder
adds r1, r0, 0
adds r0, r4, 0
bl sub_8002FA0
@@ -8908,7 +8908,7 @@ _08004358:
ldr r0, _08004368
ldrb r1, [r0]
adds r0, r4, 0
- bl sub_80043C4
+ bl font_copy_to_vram_maybe
_08004362:
pop {r4}
pop {r0}
@@ -8965,8 +8965,8 @@ _080043B2:
bx r0
thumb_func_end sub_800436C
- thumb_func_start sub_80043C4
-sub_80043C4: ; 80043C4
+ thumb_func_start font_copy_to_vram_maybe
+font_copy_to_vram_maybe: ; 80043C4
push {r4-r6,lr}
mov r6, r8
push {r6}
@@ -9036,7 +9036,7 @@ sub_80043C4: ; 80043C4
bx r0
.align 2
_08004454: .4byte 0x03000360
- thumb_func_end sub_80043C4
+ thumb_func_end font_copy_to_vram_maybe
thumb_func_start DrawDownArrow
DrawDownArrow: ; 8004458
@@ -9741,8 +9741,8 @@ _08004966:
bx r1
thumb_func_end GetGlyphWidth
- thumb_func_start GetExtendedControlCodeLength
-GetExtendedControlCodeLength: ; 800496C
+ thumb_func_start GetExtCtrlCodeLength
+GetExtCtrlCodeLength: ; 800496C
push {lr}
lsls r0, 24
lsrs r1, r0, 24
@@ -9757,7 +9757,7 @@ _0800497E:
bx r1
.align 2
_08004984: .4byte gUnknown_081E6BDB
- thumb_func_end GetExtendedControlCodeLength
+ thumb_func_end GetExtCtrlCodeLength
thumb_func_start sub_8004988
sub_8004988: ; 8004988
@@ -9785,15 +9785,15 @@ _080049AC:
b _08004A3C
_080049B2:
mov r0, sp
- bl ConvertNumToDecimalString3
+ bl ConvertIntToDecimalString
adds r0, r4, 0
mov r1, sp
- bl CopyString
+ bl StringCopy
adds r4, r0, 0
b _08004A2C
_080049C4:
mov r0, sp
- bl ConvertNumToDecimalString3
+ bl ConvertIntToDecimalString
adds r0, r5, 0
mov r1, sp
bl GetStringWidth
@@ -9811,12 +9811,12 @@ _080049C4:
_080049E8:
adds r0, r4, 0
mov r1, sp
- bl CopyString
+ bl StringCopy
adds r4, r0, 0
b _08004A3C
_080049F4:
mov r0, sp
- bl ConvertNumToDecimalString3
+ bl ConvertIntToDecimalString
adds r0, r5, 0
mov r1, sp
bl GetStringWidth
@@ -9837,7 +9837,7 @@ _080049F4:
_08004A1E:
adds r0, r4, 0
mov r1, sp
- bl CopyString
+ bl StringCopy
adds r4, r0, 0
cmp r6, r5
bls _08004A3C
@@ -9884,7 +9884,7 @@ _08004A6C:
b _08004B1A
_08004A72:
mov r0, sp
- bl ConvertNumToDecimalString3
+ bl ConvertIntToDecimalString
adds r0, r5, 0
mov r1, sp
bl GetStringWidth
@@ -9892,7 +9892,7 @@ _08004A72:
lsrs r5, r0, 24
adds r0, r4, 0
mov r1, sp
- bl CopyString
+ bl StringCopy
adds r4, r0, 0
movs r0, 0xFC
strb r0, [r4]
@@ -9902,7 +9902,7 @@ _08004A72:
b _08004B12
_08004A9A:
mov r0, sp
- bl ConvertNumToDecimalString3
+ bl ConvertIntToDecimalString
adds r0, r5, 0
mov r1, sp
bl GetStringWidth
@@ -9920,12 +9920,12 @@ _08004A9A:
_08004ABE:
adds r0, r4, 0
mov r1, sp
- bl CopyString
+ bl StringCopy
adds r4, r0, 0
b _08004B1A
_08004ACA:
mov r0, sp
- bl ConvertNumToDecimalString3
+ bl ConvertIntToDecimalString
adds r0, r5, 0
mov r1, sp
bl GetStringWidth
@@ -9946,7 +9946,7 @@ _08004ACA:
_08004AF4:
adds r0, r4, 0
mov r1, sp
- bl CopyString
+ bl StringCopy
adds r4, r0, 0
cmp r6, r5
bls _08004B1A
@@ -9997,7 +9997,7 @@ _08004B46:
_08004B4C:
adds r0, r4, 0
adds r1, r7, 0
- bl CopyString
+ bl StringCopy
adds r4, r0, 0
b _08004BB4
_08004B58:
@@ -10018,7 +10018,7 @@ _08004B58:
_08004B76:
adds r0, r4, 0
adds r1, r7, 0
- bl CopyString
+ bl StringCopy
adds r4, r0, 0
b _08004BC4
_08004B82:
@@ -10042,7 +10042,7 @@ _08004B82:
_08004BA6:
adds r0, r4, 0
adds r1, r7, 0
- bl CopyString
+ bl StringCopy
adds r4, r0, 0
cmp r6, r5
bls _08004BC4
@@ -10095,7 +10095,7 @@ _08004BF2:
adds r0, r7, r6
ldrb r0, [r0]
str r2, [sp]
- bl GetStringFromTextCode
+ bl GetExpandedPlaceholder
adds r1, r0, 0
adds r0, r5, 0
bl GetStringWidth
@@ -10179,7 +10179,7 @@ _08004CB8:
adds r0, r7, r6
ldrb r0, [r0]
str r2, [sp]
- bl GetExtendedControlCodeLength
+ bl GetExtCtrlCodeLength
lsls r0, 24
lsrs r0, 24
adds r6, r0
@@ -10442,7 +10442,7 @@ StopMusicWhileStringIsPrinted: ; 8004E9C
bne _08004EFC
bl StripExtendedControlCodes
adds r0, r4, 0
- bl sub_8006B34
+ bl StringGetLength
lsls r0, 24
lsrs r2, r0, 24
adds r1, r2, 0
@@ -10507,7 +10507,7 @@ _08004F12:
lsrs r4, r0, 16
adds r0, r5, r4
ldrb r0, [r0]
- bl GetExtendedControlCodeLength
+ bl GetExtCtrlCodeLength
lsls r0, 24
lsrs r0, 24
adds r0, r4, r0
@@ -10549,7 +10549,7 @@ SkipExtendedControlCode: ; 8004F60
_08004F66:
adds r4, 0x1
ldrb r0, [r4]
- bl GetExtendedControlCodeLength
+ bl GetExtCtrlCodeLength
lsls r0, 24
lsrs r0, 24
adds r4, r0
@@ -10654,7 +10654,7 @@ _08005010:
b _0800505C
_08005024:
ldrb r0, [r6, 0x1]
- bl GetExtendedControlCodeLength
+ bl GetExtCtrlCodeLength
adds r4, r0, 0
adds r4, 0x1
lsls r4, 24
@@ -14068,996 +14068,7 @@ _08006A1E:
bx r1
thumb_func_end GetTextRendererTileBufferIndex
- thumb_func_start CopyString_Limit10
-CopyString_Limit10: ; 8006A24
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r5, 0xA
- movs r3, 0
-_08006A2C:
- adds r2, r4, r3
- adds r0, r1, r3
- ldrb r0, [r0]
- strb r0, [r2]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- bne _08006A40
- adds r0, r2, 0
- b _08006A50
-_08006A40:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, r5
- bcc _08006A2C
- adds r0, r4, r3
- movs r1, 0xFF
- strb r1, [r0]
-_08006A50:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end CopyString_Limit10
-
- thumb_func_start GetStringEnd_Limit7
-GetStringEnd_Limit7: ; 8006A58
- push {r4,lr}
- adds r3, r0, 0
- movs r4, 0xA
- movs r2, 0
-_08006A60:
- adds r1, r3, r2
- ldrb r0, [r1]
- cmp r0, 0xFF
- bne _08006A6C
- adds r0, r1, 0
- b _08006A7C
-_08006A6C:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, r4
- bcc _08006A60
- adds r0, r3, r2
- movs r1, 0xFF
- strb r1, [r0]
-_08006A7C:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end GetStringEnd_Limit7
-
- thumb_func_start CopyString_Limit7
-CopyString_Limit7: ; 8006A84
- push {r4,lr}
- adds r4, r0, 0
- movs r3, 0
-_08006A8A:
- adds r2, r4, r3
- adds r0, r1, r3
- ldrb r0, [r0]
- strb r0, [r2]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- bne _08006A9E
- adds r0, r2, 0
- b _08006AAA
-_08006A9E:
- adds r3, 0x1
- cmp r3, 0x7
- ble _08006A8A
- adds r0, r4, r3
- movs r1, 0xFF
- strb r1, [r0]
-_08006AAA:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end CopyString_Limit7
-
- thumb_func_start CopyString
-CopyString: ; 8006AB0
- push {lr}
- adds r3, r0, 0
- b _08006ABC
-_08006AB6:
- strb r2, [r3]
- adds r3, 0x1
- adds r1, 0x1
-_08006ABC:
- ldrb r2, [r1]
- adds r0, r2, 0
- cmp r0, 0xFF
- bne _08006AB6
- movs r0, 0xFF
- strb r0, [r3]
- adds r0, r3, 0
- pop {r1}
- bx r1
- thumb_func_end CopyString
-
- thumb_func_start AppendString
-AppendString: ; 8006AD0
- push {lr}
- adds r2, r0, 0
- b _08006AD8
-_08006AD6:
- adds r2, 0x1
-_08006AD8:
- ldrb r0, [r2]
- cmp r0, 0xFF
- bne _08006AD6
- adds r0, r2, 0
- bl CopyString
- pop {r1}
- bx r1
- thumb_func_end AppendString
-
- thumb_func_start CopyString_LimitN
-CopyString_LimitN: ; 8006AE8
- push {r4-r6,lr}
- adds r4, r0, 0
- adds r6, r1, 0
- lsls r2, 24
- lsrs r5, r2, 24
- movs r3, 0
- adds r0, r5, 0
- cmp r3, r0
- bcs _08006B0E
- adds r2, r0, 0
-_08006AFC:
- adds r1, r4, r3
- adds r0, r6, r3
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, r2
- bcc _08006AFC
-_08006B0E:
- adds r0, r4, r5
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end CopyString_LimitN
-
- thumb_func_start AppendString_LimitN
-AppendString_LimitN: ; 8006B18
- push {lr}
- adds r3, r0, 0
- lsls r2, 24
- lsrs r2, 24
- b _08006B24
-_08006B22:
- adds r3, 0x1
-_08006B24:
- ldrb r0, [r3]
- cmp r0, 0xFF
- bne _08006B22
- adds r0, r3, 0
- bl CopyString_LimitN
- pop {r1}
- bx r1
- thumb_func_end AppendString_LimitN
-
- thumb_func_start sub_8006B34
-sub_8006B34: ; 8006B34
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r5, 0
- ldrb r0, [r4]
- cmp r0, 0xFF
- beq _08006B6A
-_08006B40:
- adds r0, r5, 0
- adds r1, r0, 0x1
- lsls r1, 16
- lsrs r5, r1, 16
- adds r0, r4, r0
- ldrb r0, [r0]
- cmp r0, 0xFC
- bne _08006B62
- adds r0, r4, r5
- ldrb r0, [r0]
- bl GetExtendedControlCodeLength
- lsls r0, 24
- lsrs r0, 24
- adds r0, r5, r0
- lsls r0, 16
- lsrs r5, r0, 16
-_08006B62:
- adds r0, r4, r5
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _08006B40
-_08006B6A:
- adds r0, r5, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8006B34
-
- thumb_func_start CompareString
-CompareString: ; 8006B74
- push {lr}
- adds r2, r0, 0
- b _08006B86
-_08006B7A:
- cmp r0, 0xFF
- bne _08006B82
- movs r0, 0
- b _08006B94
-_08006B82:
- adds r2, 0x1
- adds r1, 0x1
-_08006B86:
- ldrb r0, [r2]
- ldrb r3, [r1]
- cmp r0, r3
- beq _08006B7A
- ldrb r0, [r2]
- ldrb r1, [r1]
- subs r0, r1
-_08006B94:
- pop {r1}
- bx r1
- thumb_func_end CompareString
-
- thumb_func_start CompareString_LimitN
-CompareString_LimitN: ; 8006B98
- push {r4,lr}
- adds r3, r0, 0
- b _08006BB0
-_08006B9E:
- cmp r0, 0xFF
- beq _08006BAC
- adds r3, 0x1
- adds r1, 0x1
- subs r2, 0x1
- cmp r2, 0
- bne _08006BB0
-_08006BAC:
- movs r0, 0
- b _08006BBE
-_08006BB0:
- ldrb r0, [r3]
- ldrb r4, [r1]
- cmp r0, r4
- beq _08006B9E
- ldrb r0, [r3]
- ldrb r1, [r1]
- subs r0, r1
-_08006BBE:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end CompareString_LimitN
-
- thumb_func_start ConvertNumToDecimalString
-ConvertNumToDecimalString: ; 8006BC4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r4, r0, 0
- adds r6, r1, 0
- lsls r3, 24
- ldr r0, _08006C14
- lsrs r3, 22
- subs r3, 0x4
- adds r3, r0
- ldr r0, [r3]
- movs r7, 0
- cmp r2, 0x1
- bne _08006BE2
- movs r7, 0x2
-_08006BE2:
- cmp r2, 0x2
- bne _08006BE8
- movs r7, 0x1
-_08006BE8:
- adds r5, r0, 0
- cmp r5, 0
- ble _08006C54
- ldr r0, _08006C18
- mov r8, r0
-_08006BF2:
- adds r0, r6, 0
- adds r1, r5, 0
- bl __divsi3
- lsls r0, 16
- lsrs r2, r0, 16
- adds r0, r5, 0
- muls r0, r2
- subs r1, r6, r0
- cmp r7, 0x1
- bne _08006C1C
- adds r3, r4, 0
- adds r4, 0x1
- cmp r2, 0x9
- bls _08006C2E
- b _08006C36
- .align 2
-_08006C14: .4byte gUnknown_081E72C4
-_08006C18: .4byte gUnknown_081E72B3
-_08006C1C:
- cmp r2, 0
- bne _08006C24
- cmp r5, 0x1
- bne _08006C3C
-_08006C24:
- movs r7, 0x1
- adds r3, r4, 0
- adds r4, 0x1
- cmp r2, 0x9
- bhi _08006C36
-_08006C2E:
- mov r6, r8
- adds r0, r2, r6
- ldrb r0, [r0]
- b _08006C38
-_08006C36:
- movs r0, 0xAC
-_08006C38:
- strb r0, [r3]
- b _08006C44
-_08006C3C:
- cmp r7, 0x2
- bne _08006C44
- strb r2, [r4]
- adds r4, 0x1
-_08006C44:
- adds r6, r1, 0
- adds r0, r5, 0
- movs r1, 0xA
- bl __divsi3
- adds r5, r0, 0
- cmp r5, 0
- bgt _08006BF2
-_08006C54:
- movs r0, 0xFF
- strb r0, [r4]
- adds r0, r4, 0
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end ConvertNumToDecimalString
-
- thumb_func_start ConvertNumToDecimalString2
-ConvertNumToDecimalString2: ; 8006C64
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r4, r0, 0
- adds r6, r1, 0
- lsls r3, 24
- ldr r0, _08006CC4
- lsrs r3, 22
- subs r3, 0x4
- adds r3, r0
- ldr r1, [r3]
- movs r0, 0xFC
- strb r0, [r4]
- adds r4, 0x1
- movs r0, 0x14
- strb r0, [r4]
- adds r4, 0x1
- movs r0, 0x6
- strb r0, [r4]
- adds r4, 0x1
- movs r7, 0
- cmp r2, 0x1
- bne _08006C94
- movs r7, 0x2
-_08006C94:
- cmp r2, 0x2
- bne _08006C9A
- movs r7, 0x1
-_08006C9A:
- adds r5, r1, 0
- cmp r5, 0
- ble _08006D04
- ldr r0, _08006CC8
- mov r8, r0
-_08006CA4:
- adds r0, r6, 0
- adds r1, r5, 0
- bl __divsi3
- lsls r0, 16
- lsrs r2, r0, 16
- adds r0, r5, 0
- muls r0, r2
- subs r1, r6, r0
- cmp r7, 0x1
- bne _08006CCC
- adds r3, r4, 0
- adds r4, 0x1
- cmp r2, 0x9
- bls _08006CDE
- b _08006CE6
- .align 2
-_08006CC4: .4byte gUnknown_081E72C4
-_08006CC8: .4byte gUnknown_081E72B3
-_08006CCC:
- cmp r2, 0
- bne _08006CD4
- cmp r5, 0x1
- bne _08006CEC
-_08006CD4:
- movs r7, 0x1
- adds r3, r4, 0
- adds r4, 0x1
- cmp r2, 0x9
- bhi _08006CE6
-_08006CDE:
- mov r6, r8
- adds r0, r2, r6
- ldrb r0, [r0]
- b _08006CE8
-_08006CE6:
- movs r0, 0xAC
-_08006CE8:
- strb r0, [r3]
- b _08006CF4
-_08006CEC:
- cmp r7, 0x2
- bne _08006CF4
- strb r2, [r4]
- adds r4, 0x1
-_08006CF4:
- adds r6, r1, 0
- adds r0, r5, 0
- movs r1, 0xA
- bl __divsi3
- adds r5, r0, 0
- cmp r5, 0
- bgt _08006CA4
-_08006D04:
- movs r0, 0xFC
- strb r0, [r4]
- adds r4, 0x1
- movs r0, 0x14
- strb r0, [r4]
- adds r4, 0x1
- movs r0, 0
- strb r0, [r4]
- adds r4, 0x1
- movs r0, 0xFF
- strb r0, [r4]
- adds r0, r4, 0
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end ConvertNumToDecimalString2
-
- thumb_func_start ConvertNumToHexString
-ConvertNumToHexString: ; 8006D28
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r6, r0, 0
- adds r7, r1, 0
- lsls r3, 24
- lsrs r3, 24
- movs r1, 0x1
- movs r0, 0x1
- cmp r1, r3
- bcs _08006D4C
-_08006D40:
- lsls r1, 4
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, r3
- bcc _08006D40
-_08006D4C:
- movs r3, 0
- cmp r2, 0x1
- bne _08006D54
- movs r3, 0x2
-_08006D54:
- cmp r2, 0x2
- bne _08006D5A
- movs r3, 0x1
-_08006D5A:
- adds r5, r1, 0
- cmp r5, 0
- ble _08006DC8
- ldr r0, _08006D8C
- mov r8, r0
-_08006D64:
- adds r0, r7, 0
- adds r1, r5, 0
- str r3, [sp]
- bl __divsi3
- adds r4, r0, 0
- adds r0, r7, 0
- adds r1, r5, 0
- bl __modsi3
- adds r1, r0, 0
- ldr r3, [sp]
- cmp r3, 0x1
- bne _08006D90
- adds r2, r6, 0
- adds r6, 0x1
- cmp r4, 0xF
- bls _08006DA2
- b _08006DAA
- .align 2
-_08006D8C: .4byte gUnknown_081E72B3
-_08006D90:
- cmp r4, 0
- bne _08006D98
- cmp r5, 0x1
- bne _08006DB0
-_08006D98:
- movs r3, 0x1
- adds r2, r6, 0
- adds r6, 0x1
- cmp r4, 0xF
- bhi _08006DAA
-_08006DA2:
- mov r7, r8
- adds r0, r4, r7
- ldrb r0, [r0]
- b _08006DAC
-_08006DAA:
- movs r0, 0xAC
-_08006DAC:
- strb r0, [r2]
- b _08006DB8
-_08006DB0:
- cmp r3, 0x2
- bne _08006DB8
- strb r4, [r6]
- adds r6, 0x1
-_08006DB8:
- adds r7, r1, 0
- adds r0, r5, 0
- cmp r5, 0
- bge _08006DC2
- adds r0, 0xF
-_08006DC2:
- asrs r5, r0, 4
- cmp r5, 0
- bgt _08006D64
-_08006DC8:
- movs r0, 0xFF
- strb r0, [r6]
- adds r0, r6, 0
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end ConvertNumToHexString
-
- thumb_func_start ConvertNumToDecimalString3
-ConvertNumToDecimalString3: ; 8006DDC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0xC
- adds r7, r0, 0
- adds r5, r1, 0
- movs r6, 0
- ldr r0, _08006E40
- mov r8, r0
-_08006DEE:
- mov r2, sp
- adds r4, r2, r6
- adds r0, r5, 0
- movs r1, 0xA
- bl __modsi3
- add r0, r8
- ldrb r0, [r0]
- strb r0, [r4]
- adds r6, 0x1
- adds r0, r5, 0
- movs r1, 0xA
- bl __divsi3
- adds r5, r0, 0
- cmp r5, 0
- bne _08006DEE
- subs r6, 0x1
- movs r0, 0x1
- negs r0, r0
- cmp r6, r0
- beq _08006E2C
- adds r1, r0, 0
-_08006E1C:
- mov r2, sp
- adds r0, r2, r6
- ldrb r0, [r0]
- strb r0, [r7]
- adds r7, 0x1
- subs r6, 0x1
- cmp r6, r1
- bne _08006E1C
-_08006E2C:
- movs r0, 0xFF
- strb r0, [r7]
- adds r0, r7, 0
- add sp, 0xC
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2
-_08006E40: .4byte gUnknown_081E72B3
- thumb_func_end ConvertNumToDecimalString3
-
- thumb_func_start PrintSimple
-PrintSimple: ; 8006E44
- push {r4-r6,lr}
- adds r5, r0, 0
- adds r6, r1, 0
-_08006E4A:
- ldrb r2, [r6]
- adds r6, 0x1
- adds r0, r2, 0
- subs r0, 0xFA
- cmp r0, 0x5
- bhi _08006EB0
- lsls r0, 2
- ldr r1, _08006E60
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2
-_08006E60: .4byte _08006E64
- .align 2
-_08006E64:
- .4byte _08006EB0
- .4byte _08006EB0
- .4byte _08006E90
- .4byte _08006E7C
- .4byte _08006EB0
- .4byte _08006EB6
-_08006E7C:
- ldrb r0, [r6]
- adds r6, 0x1
- bl GetStringFromTextCode
- adds r1, r0, 0
- adds r0, r5, 0
- bl PrintSimple
- adds r5, r0, 0
- b _08006E4A
-_08006E90:
- strb r2, [r5]
- adds r5, 0x1
- ldrb r0, [r6]
- bl GetExtendedControlCodeLength
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- adds r1, r6, 0
- adds r2, r4, 0
- bl memcpy
- adds r5, r4
- adds r6, r4
- b _08006E4A
-_08006EB0:
- strb r2, [r5]
- adds r5, 0x1
- b _08006E4A
-_08006EB6:
- movs r0, 0xFF
- strb r0, [r5]
- adds r0, r5, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end PrintSimple
-
- thumb_func_start sub_8006EC4
-sub_8006EC4: ; 8006EC4
- push {r4-r6,lr}
- sub sp, 0xC
- adds r5, r0, 0
- adds r6, r1, 0
- ldr r1, _08006EFC
- mov r0, sp
- movs r2, 0x4
- bl memcpy
- add r4, sp, 0x4
- ldr r1, _08006F00
- adds r0, r4, 0
- movs r2, 0x5
- bl memcpy
- adds r0, r5, 0
- mov r1, sp
-_08006EE6:
- bl CopyString
- adds r5, r0, 0
-_08006EEC:
- ldrb r0, [r6]
- adds r6, 0x1
- cmp r0, 0xFE
- beq _08006F04
- cmp r0, 0xFF
- bne _08006F0A
- b _08006F16
- .align 2
-_08006EFC: .4byte gUnknown_081E72EC
-_08006F00: .4byte gUnknown_081E72F0
-_08006F04:
- adds r0, r5, 0
- adds r1, r4, 0
- b _08006EE6
-_08006F0A:
- strb r0, [r5]
- adds r5, 0x1
- adds r0, 0x40
- strb r0, [r5]
- adds r5, 0x1
- b _08006EEC
-_08006F16:
- strb r0, [r5]
- adds r0, r5, 0
- add sp, 0xC
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8006EC4
-
- thumb_func_start sub_8006F24
-sub_8006F24: ; 8006F24
- ldr r0, _08006F28
- bx lr
- .align 2
-_08006F28: .4byte 0x03002900
- thumb_func_end sub_8006F24
-
- thumb_func_start sub_8006F2C
-sub_8006F2C: ; 8006F2C
- ldr r0, _08006F30
- bx lr
- .align 2
-_08006F30: .4byte 0x02024ea4
- thumb_func_end sub_8006F2C
-
- thumb_func_start sub_8006F34
-sub_8006F34: ; 8006F34
- ldr r0, _08006F38
- bx lr
- .align 2
-_08006F38: .4byte 0x020231cc
- thumb_func_end sub_8006F34
-
- thumb_func_start sub_8006F3C
-sub_8006F3C: ; 8006F3C
- ldr r0, _08006F40
- bx lr
- .align 2
-_08006F40: .4byte 0x020232cc
- thumb_func_end sub_8006F3C
-
- thumb_func_start sub_8006F44
-sub_8006F44: ; 8006F44
- ldr r0, _08006F48
- bx lr
- .align 2
-_08006F48: .4byte 0x020233cc
- thumb_func_end sub_8006F44
-
- thumb_func_start sub_8006F4C
-sub_8006F4C: ; 8006F4C
- push {lr}
- ldr r0, _08006F5C
- ldrb r0, [r0, 0x8]
- cmp r0, 0
- beq _08006F64
- ldr r0, _08006F60
- b _08006F66
- .align 2
-_08006F5C: .4byte 0x02024ea4
-_08006F60: .4byte gUnknown_0840DC82
-_08006F64:
- ldr r0, _08006F6C
-_08006F66:
- pop {r1}
- bx r1
- .align 2
-_08006F6C: .4byte gUnknown_0840DC81
- thumb_func_end sub_8006F4C
-
- thumb_func_start sub_8006F70
-sub_8006F70: ; 8006F70
- push {lr}
- ldr r0, _08006F80
- ldrb r0, [r0, 0x8]
- cmp r0, 0
- beq _08006F88
- ldr r0, _08006F84
- b _08006F8A
- .align 2
-_08006F80: .4byte 0x02024ea4
-_08006F84: .4byte gUnknown_0840DCB8
-_08006F88:
- ldr r0, _08006F90
-_08006F8A:
- pop {r1}
- bx r1
- .align 2
-_08006F90: .4byte gUnknown_0840DCC0
- thumb_func_end sub_8006F70
-
- thumb_func_start sub_8006F94
-sub_8006F94: ; 8006F94
- ldr r0, _08006F98
- bx lr
- .align 2
-_08006F98: .4byte gUnknown_0840DC8C
- thumb_func_end sub_8006F94
-
- thumb_func_start sub_8006F9C
-sub_8006F9C: ; 8006F9C
- ldr r0, _08006FA0
- bx lr
- .align 2
-_08006FA0: .4byte gUnknown_0840DC96
- thumb_func_end sub_8006F9C
-
- thumb_func_start sub_8006FA4
-sub_8006FA4: ; 8006FA4
- ldr r0, _08006FA8
- bx lr
- .align 2
-_08006FA8: .4byte gUnknown_0840DC91
- thumb_func_end sub_8006FA4
-
- thumb_func_start sub_8006FAC
-sub_8006FAC: ; 8006FAC
- ldr r0, _08006FB0
- bx lr
- .align 2
-_08006FB0: .4byte gUnknown_0840DCA3
- thumb_func_end sub_8006FAC
-
- thumb_func_start sub_8006FB4
-sub_8006FB4: ; 8006FB4
- ldr r0, _08006FB8
- bx lr
- .align 2
-_08006FB8: .4byte gUnknown_0840DC9C
- thumb_func_end sub_8006FB4
-
- thumb_func_start sub_8006FBC
-sub_8006FBC: ; 8006FBC
- ldr r0, _08006FC0
- bx lr
- .align 2
-_08006FC0: .4byte gUnknown_0840DCB0
- thumb_func_end sub_8006FBC
-
- thumb_func_start sub_8006FC4
-sub_8006FC4: ; 8006FC4
- ldr r0, _08006FC8
- bx lr
- .align 2
-_08006FC8: .4byte gUnknown_0840DCA9
- thumb_func_end sub_8006FC4
-
- thumb_func_start GetStringFromTextCode
-GetStringFromTextCode: ; 8006FCC
- push {lr}
- cmp r0, 0xD
- bhi _08006FE4
- ldr r1, _08006FE0
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- b _08006FE6
- .align 2
-_08006FE0: .4byte gUnknown_081E72F8
-_08006FE4:
- ldr r0, _08006FEC
-_08006FE6:
- pop {r1}
- bx r1
- .align 2
-_08006FEC: .4byte gUnknown_0840DC80
- thumb_func_end GetStringFromTextCode
-
- thumb_func_start RepeatChar
-RepeatChar: ; 8006FF0
- push {lr}
- adds r3, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 16
- lsrs r2, 16
- movs r0, 0
- cmp r0, r2
- bcs _08007010
-_08007002:
- strb r1, [r3]
- adds r3, 0x1
- adds r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- cmp r0, r2
- bcc _08007002
-_08007010:
- movs r0, 0xFF
- strb r0, [r3]
- adds r0, r3, 0
- pop {r1}
- bx r1
- thumb_func_end RepeatChar
-
- thumb_func_start CopyStringPadded
-CopyStringPadded: ; 800701C
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 16
- lsrs r3, 16
- b _0800703C
-_0800702C:
- strb r1, [r4]
- adds r5, 0x1
- adds r4, 0x1
- cmp r3, 0
- beq _0800703C
- subs r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
-_0800703C:
- ldrb r1, [r5]
- adds r0, r1, 0
- cmp r0, 0xFF
- bne _0800702C
- subs r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- ldr r0, _0800706C
- cmp r3, r0
- beq _08007060
- adds r1, r0, 0
-_08007052:
- strb r2, [r4]
- adds r4, 0x1
- subs r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, r1
- bne _08007052
-_08007060:
- movs r0, 0xFF
- strb r0, [r4]
- adds r0, r4, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2
-_0800706C: .4byte 0x0000ffff
- thumb_func_end CopyStringPadded
-
- thumb_func_start RepeatStringTerminator
-RepeatStringTerminator: ; 8007070
- push {lr}
- lsls r2, r1, 16
- lsrs r2, 16
- movs r1, 0xFF
- bl RepeatChar
- pop {r1}
- bx r1
- thumb_func_end RepeatStringTerminator
+ .include "genasm/string_util.s"
thumb_func_start sub_8007080
sub_8007080: ; 8007080
@@ -19834,20 +18845,20 @@ GameFreakRTC_FormatDecimalTimeString: ; 800943C
adds r6, r3, 0
movs r2, 0x2
movs r3, 0x2
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
movs r4, 0xF0
strb r4, [r0]
adds r0, 0x1
adds r1, r5, 0
movs r2, 0x2
movs r3, 0x2
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
strb r4, [r0]
adds r0, 0x1
adds r1, r6, 0
movs r2, 0x2
movs r3, 0x2
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
movs r1, 0xFF
strb r1, [r0]
pop {r4-r6}
@@ -19862,20 +18873,20 @@ GameFreakRTC_FormatHexTimeString: ; 8009474
adds r6, r3, 0
movs r2, 0x2
movs r3, 0x2
- bl ConvertNumToHexString
+ bl ConvertIntToHexStringN
movs r4, 0xF0
strb r4, [r0]
adds r0, 0x1
adds r1, r5, 0
movs r2, 0x2
movs r3, 0x2
- bl ConvertNumToHexString
+ bl ConvertIntToHexStringN
strb r4, [r0]
adds r0, 0x1
adds r1, r6, 0
movs r2, 0x2
movs r3, 0x2
- bl ConvertNumToHexString
+ bl ConvertIntToHexStringN
movs r1, 0xFF
strb r1, [r0]
pop {r4-r6}
@@ -19904,20 +18915,20 @@ GameFreakRTC_FormatDecimalYearMonthDayString: ; 80094C4
adds r6, r3, 0
movs r2, 0x2
movs r3, 0x4
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
movs r4, 0xAE
strb r4, [r0]
adds r0, 0x1
adds r1, r5, 0
movs r2, 0x2
movs r3, 0x2
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
strb r4, [r0]
adds r0, 0x1
adds r1, r6, 0
movs r2, 0x2
movs r3, 0x2
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
movs r1, 0xFF
strb r1, [r0]
pop {r4-r6}
@@ -19932,20 +18943,20 @@ GameFreakRTC_FormatHexYearMonthDayString: ; 80094FC
adds r6, r3, 0
movs r2, 0x2
movs r3, 0x4
- bl ConvertNumToHexString
+ bl ConvertIntToHexStringN
movs r4, 0xAE
strb r4, [r0]
adds r0, 0x1
adds r1, r5, 0
movs r2, 0x2
movs r3, 0x2
- bl ConvertNumToHexString
+ bl ConvertIntToHexStringN
strb r4, [r0]
adds r0, 0x1
adds r1, r6, 0
movs r2, 0x2
movs r3, 0x2
- bl ConvertNumToHexString
+ bl ConvertIntToHexStringN
movs r1, 0xFF
strb r1, [r0]
pop {r4-r6}
@@ -21538,7 +20549,7 @@ sub_800A1C0: ; 800A1C0
lsls r1, 24
lsrs r1, 24
mov r0, sp
- bl ConvertNumToDecimalString3
+ bl ConvertIntToDecimalString
mov r0, sp
movs r1, 0xCD
movs r2, 0x28
@@ -22709,7 +21720,7 @@ sub_800AAEC: ; 800AAEC
ldr r5, _0800AB28
ldr r1, _0800AB2C
adds r0, r5, 0
- bl PrintSimple
+ bl StringExpandPlaceholders
adds r0, r5, 0
movs r1, 0x3
movs r2, 0xE
@@ -22975,7 +21986,7 @@ task_new_game_prof_birch_speech_part2_6: ; 800AC58
ldr r4, _0800AD3C
ldr r1, _0800AD40
adds r0, r4, 0
- bl PrintSimple
+ bl StringExpandPlaceholders
adds r0, r4, 0
movs r1, 0x3
movs r2, 0xE
@@ -40937,7 +39948,7 @@ _08013CCE:
adds r1, r7
adds r0, r2, 0
adds r0, 0x8
- bl CopyString
+ bl StringCopy
b _08013D36
.align 2
_08013D00: .4byte 0x02024a7f
@@ -40959,7 +39970,7 @@ _08013D1C:
adds r1, r7
adds r0, r2, 0
adds r0, 0x14
- bl CopyString
+ bl StringCopy
_08013D36:
ldrb r0, [r4]
adds r0, 0x1
@@ -50223,7 +49234,7 @@ _08018906:
beq _08018918
ldr r0, _08018990
ldr r1, _08018994
- bl CopyString
+ bl StringCopy
_08018918:
ldr r0, [r5]
movs r1, 0x7
@@ -50232,7 +49243,7 @@ _08018918:
beq _0801892A
ldr r0, _08018990
ldr r1, _08018998
- bl CopyString
+ bl StringCopy
_0801892A:
ldr r0, [r5]
movs r1, 0x40
@@ -50241,7 +49252,7 @@ _0801892A:
beq _0801893C
ldr r0, _08018990
ldr r1, _0801899C
- bl CopyString
+ bl StringCopy
_0801893C:
ldr r0, [r5]
movs r1, 0x10
@@ -50250,7 +49261,7 @@ _0801893C:
beq _0801894E
ldr r0, _08018990
ldr r1, _080189A0
- bl CopyString
+ bl StringCopy
_0801894E:
ldr r0, [r5]
movs r1, 0x20
@@ -50259,7 +49270,7 @@ _0801894E:
beq _08018960
ldr r0, _08018990
ldr r1, _080189A4
- bl CopyString
+ bl StringCopy
_08018960:
str r4, [r5]
ldr r0, _080189A8
@@ -51631,7 +50642,7 @@ _080195BC:
_080195D6:
ldr r0, _080195E4
ldr r1, _080195E8
- bl CopyString
+ bl StringCopy
movs r2, 0x2
mov r9, r2
b _080196DC
@@ -51677,7 +50688,7 @@ _08019614:
str r0, [r2]
ldr r0, _08019648
ldr r1, _0801964C
- bl CopyString
+ bl StringCopy
movs r0, 0x1
mov r9, r0
b _080196DC
@@ -51700,7 +50711,7 @@ _08019650:
beq _080196D6
ldr r0, _08019678
ldr r1, _0801967C
- bl CopyString
+ bl StringCopy
movs r2, 0x1
mov r9, r2
b _080196DC
@@ -51723,7 +50734,7 @@ _08019680:
ldr r0, _080196A8
ldr r1, _080196AC
_0801969C:
- bl CopyString
+ bl StringCopy
movs r5, 0x1
mov r9, r5
b _080196DC
@@ -51746,7 +50757,7 @@ _080196B0:
beq _080196D6
ldr r0, _080196EC
ldr r1, _080196F0
- bl CopyString
+ bl StringCopy
movs r2, 0x3
mov r9, r2
_080196D6:
@@ -54398,7 +53409,7 @@ _0801AC1E:
beq _0801AC36
ldr r0, _0801ACC4
ldr r1, _0801ACC8
- bl CopyString
+ bl StringCopy
movs r0, 0x1
mov r10, r0
_0801AC36:
@@ -54417,7 +53428,7 @@ _0801AC36:
str r0, [r2]
ldr r0, _0801ACC4
ldr r1, _0801ACD0
- bl CopyString
+ bl StringCopy
movs r2, 0x1
add r10, r2
_0801AC5C:
@@ -54428,7 +53439,7 @@ _0801AC5C:
beq _0801AC72
ldr r0, _0801ACC4
ldr r1, _0801ACD4
- bl CopyString
+ bl StringCopy
movs r3, 0x1
add r10, r3
_0801AC72:
@@ -54439,7 +53450,7 @@ _0801AC72:
beq _0801AC88
ldr r0, _0801ACC4
ldr r1, _0801ACD8
- bl CopyString
+ bl StringCopy
movs r0, 0x1
add r10, r0
_0801AC88:
@@ -54450,7 +53461,7 @@ _0801AC88:
beq _0801AC9E
ldr r0, _0801ACC4
ldr r1, _0801ACDC
- bl CopyString
+ bl StringCopy
movs r1, 0x1
add r10, r1
_0801AC9E:
@@ -54462,7 +53473,7 @@ _0801AC9E:
beq _0801ACB6
ldr r0, _0801ACC4
ldr r1, _0801ACE0
- bl CopyString
+ bl StringCopy
movs r3, 0x1
add r10, r3
_0801ACB6:
@@ -54530,7 +53541,7 @@ _0801AD24:
str r2, [r1]
ldr r0, _0801AD88
ldr r1, _0801AD8C
- bl CopyString
+ bl StringCopy
ldr r0, _0801AD90
bl b_call_bc_move_exec
ldr r1, _0801AD94
@@ -54893,7 +53904,7 @@ _0801B06C:
str r1, [r2]
ldr r0, _0801B098
ldr r1, _0801B09C
- bl CopyString
+ bl StringCopy
bl b_movescr_stack_push_cursor
ldr r1, _0801B0A0
movs r0, 0
@@ -54940,7 +53951,7 @@ _0801B0D4:
beq _0801B0E4
ldr r0, _0801B174
ldr r1, _0801B178
- bl CopyString
+ bl StringCopy
_0801B0E4:
ldr r0, [r6]
movs r1, 0x7
@@ -54956,7 +53967,7 @@ _0801B0E4:
str r0, [r2]
ldr r0, _0801B174
ldr r1, _0801B180
- bl CopyString
+ bl StringCopy
_0801B104:
ldr r0, [r6]
movs r1, 0x40
@@ -54965,7 +53976,7 @@ _0801B104:
beq _0801B116
ldr r0, _0801B174
ldr r1, _0801B184
- bl CopyString
+ bl StringCopy
_0801B116:
ldr r0, [r6]
movs r1, 0x10
@@ -54974,7 +53985,7 @@ _0801B116:
beq _0801B128
ldr r0, _0801B174
ldr r1, _0801B188
- bl CopyString
+ bl StringCopy
_0801B128:
ldr r0, [r6]
movs r1, 0x20
@@ -54983,7 +53994,7 @@ _0801B128:
beq _0801B13A
ldr r0, _0801B174
ldr r1, _0801B18C
- bl CopyString
+ bl StringCopy
_0801B13A:
adds r5, r4
ldr r0, [r5]
@@ -54993,7 +54004,7 @@ _0801B13A:
beq _0801B14E
ldr r0, _0801B174
ldr r1, _0801B190
- bl CopyString
+ bl StringCopy
_0801B14E:
movs r4, 0
str r4, [r6]
@@ -73760,7 +72771,7 @@ _0802493E:
bl sub_802BBD4
ldr r0, _0802499C
ldr r1, _080249A0
- bl CopyString
+ bl StringCopy
adds r5, r0, 0
movs r1, 0
mov r8, r1
@@ -73773,7 +72784,7 @@ _0802495A:
adds r0, r4, r0
ldr r1, [r0]
adds r0, r5, 0
- bl AppendString
+ bl StringAppend
adds r5, r0, 0
ldr r0, _080249A8
ldr r2, _080249AC
@@ -73887,7 +72898,7 @@ _08024A5C:
ldr r1, _08024AA4
_08024A5E:
adds r0, r5, 0
- bl CopyString
+ bl StringCopy
adds r5, r0, 0
movs r6, 0xFC
strb r6, [r5]
@@ -73901,7 +72912,7 @@ _08024A5E:
adds r0, r5, 0
movs r2, 0x1
movs r3, 0x2
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
adds r5, r0, 0
strb r6, [r5]
strb r4, [r5, 0x1]
@@ -73968,7 +72979,7 @@ _08024AFE:
bl audio_play
ldr r0, _08024B98
ldr r1, _08024B9C
- bl CopyString
+ bl StringCopy
adds r5, r0, 0
movs r0, 0
mov r8, r0
@@ -73984,7 +72995,7 @@ _08024B1C:
adds r0, r1
ldr r1, [r0]
adds r0, r5, 0
- bl AppendString
+ bl StringAppend
adds r5, r0, 0
mov r0, r10
ldrb r1, [r0]
@@ -74020,7 +73031,7 @@ _08024B1C:
adds r0, r5, 0
movs r2, 0x1
movs r3, 0x3
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
adds r5, r0, 0
strb r6, [r5]
strb r7, [r5, 0x1]
@@ -81563,7 +80574,7 @@ _0802871E:
adds r1, r6, 0
movs r2, 0
movs r3, 0x1
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
strb r5, [r4]
movs r0, 0x1
strb r0, [r4, 0x1]
@@ -92751,7 +91762,7 @@ sub_802E12C: ; 802E12C
adds r4, r0
ldr r5, _0802E188
adds r0, r5, 0
- bl CopyString
+ bl StringCopy
lsls r0, r6, 1
adds r4, r0
ldrh r1, [r4]
@@ -92760,7 +91771,7 @@ sub_802E12C: ; 802E12C
ldr r0, _0802E18C
adds r1, r0
adds r0, r5, 0
- bl AppendString
+ bl StringAppend
ldr r4, _0802E190
adds r1, r5, 0
lsls r0, r6, 2
@@ -92874,7 +91885,7 @@ sub_802E220: ; 802E220
ldr r2, _0802E2C0
ldr r1, _0802E2C4
adds r0, r2, 0
- bl CopyString
+ bl StringCopy
adds r2, r0, 0
movs r1, 0xFC
strb r1, [r2]
@@ -92900,7 +91911,7 @@ sub_802E220: ; 802E220
adds r0, r2, 0
movs r2, 0x1
movs r3, 0x2
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
adds r2, r0, 0
movs r0, 0xBA
strb r0, [r2]
@@ -92914,7 +91925,7 @@ sub_802E220: ; 802E220
adds r0, r2, 0
movs r2, 0x1
movs r3, 0x2
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
ldr r4, _0802E2CC
ldr r1, _0802E2C0
ldr r2, _0802E2D0
@@ -92984,7 +91995,7 @@ _0802E328:
ldr r3, _0802E398
ldr r1, _0802E39C
adds r0, r3, 0
- bl CopyString
+ bl StringCopy
adds r3, r0, 0
ldr r2, _0802E3A0
ldr r1, _0802E3A4
@@ -93004,7 +92015,7 @@ _0802E328:
ldr r0, _0802E3A8
adds r1, r0
adds r0, r3, 0
- bl CopyString
+ bl StringCopy
ldr r4, _0802E3AC
ldr r1, _0802E3B0
movs r0, 0x1C
@@ -93576,7 +92587,7 @@ _0802E6C0:
bl PokemonGetField
ldr r0, [sp, 0x84]
ldr r1, [sp, 0x8C]
- bl CopyString_Limit10
+ bl StringCopy10
adds r0, r4, 0
movs r1, 0x7
ldr r2, [sp, 0x88]
@@ -103429,7 +102440,7 @@ _08033714:
bl PokemonGetField
ldr r0, [sp, 0x84]
ldr r1, [sp, 0x8C]
- bl CopyString_Limit10
+ bl StringCopy10
adds r0, r4, 0
movs r1, 0x7
ldr r2, [sp, 0x88]
@@ -112713,7 +111724,7 @@ _0803826C:
bl PokemonGetField
ldr r0, [sp, 0x84]
ldr r1, [sp, 0x8C]
- bl CopyString_Limit10
+ bl StringCopy10
adds r0, r4, 0
movs r1, 0x7
ldr r2, [sp, 0x88]
@@ -117933,7 +116944,7 @@ _0803AE1E:
adds r1, r6, 0
adds r1, 0x20
add r0, sp, 0x10
- bl CopyString
+ bl StringCopy
add r0, sp, 0x10
ldrb r0, [r0]
cmp r0, 0xFC
@@ -122030,7 +121041,7 @@ _0803CDE8:
beq _0803CE04
ldr r1, _0803CE00
adds r0, r7, 0
- bl CopyString
+ bl StringCopy
b _0803CE50
.align 2
_0803CE00: .4byte gUnknown_08400E3A
@@ -122041,7 +121052,7 @@ _0803CE04:
beq _0803CE1C
ldr r1, _0803CE18
adds r0, r7, 0
- bl CopyString
+ bl StringCopy
b _0803CE50
.align 2
_0803CE18: .4byte gUnknown_0842CC34
@@ -122075,7 +121086,7 @@ _0803CE42:
bl StopMusicWhileStringIsPrinted
_0803CE50:
adds r0, r7, 0
- bl sub_8006B34
+ bl StringGetLength
lsls r0, 16
lsrs r4, r0, 16
b _0803D1DC
@@ -124559,7 +123570,7 @@ _0803DEDA:
adds r0, 0x24
adds r0, r5, r0
mov r1, sp
- bl CopyString_Limit10
+ bl StringCopy10
mov r2, r10
adds r2, 0x30
adds r2, r5, r2
@@ -126833,10 +125844,10 @@ sub_803F324: ; 803F324
adds r0, r2
ldr r1, [r0]
adds r0, r3, 0
- bl CopyString
+ bl StringCopy
ldr r0, _0803F36C
ldr r1, _0803F370
- bl CopyString
+ bl StringCopy
ldr r0, _0803F374
bl get_battle_strings_
pop {r0}
@@ -129659,7 +128670,7 @@ _0804087C:
ldr r1, _08040898
adds r0, r1
ldr r1, _0804089C
- bl CompareString
+ bl StringCompare
cmp r0, 0
beq _080408A8
movs r0, 0xE8
@@ -131070,7 +130081,7 @@ pokemon_get_nick: ; 80412B0
bl PokemonGetField
adds r0, r4, 0
mov r1, sp
- bl CopyString_Limit10
+ bl StringCopy10
add sp, 0x14
pop {r4}
pop {r1}
@@ -131087,7 +130098,7 @@ pokemon_get_nick_: ; 80412D0
bl PokemonGetEncryptedField
adds r0, r4, 0
mov r1, sp
- bl CopyString_Limit10
+ bl StringCopy10
add sp, 0x14
pop {r4}
pop {r1}
@@ -131245,7 +130256,7 @@ sub_80413C8: ; 80413C8
adds r6, 0x24
ldr r1, _08041490
adds r0, r6, 0
- bl CopyString
+ bl StringCopy
adds r0, r6, 0
movs r1, 0xFC
bl sub_814A518
@@ -131623,7 +130634,7 @@ sub_80416E8: ; 80416E8
adds r1, r5, 0
movs r2, 0
movs r3, 0x2
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
adds r0, r5, 0
pop {r4-r6}
pop {r1}
@@ -131659,7 +130670,7 @@ sub_8041728: ; 8041728
adds r1, r4, 0
movs r2, 0
movs r3, 0x5
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
adds r0, r4, 0
pop {r4-r6}
pop {r1}
@@ -133513,7 +132524,7 @@ _0804252E:
lsls r1, 2
adds r1, r2
ldr r1, [r1]
- bl CopyString
+ bl StringCopy
pop {r0}
bx r0
.align 2
@@ -133628,7 +132639,7 @@ _08042600:
ldr r1, _08042610
_08042602:
adds r0, r4, 0
- bl AppendString
+ bl StringAppend
pop {r4}
pop {r1}
bx r1
@@ -133687,20 +132698,20 @@ _08042648:
bls _08042648
adds r0, r7, 0
mov r1, sp
- bl CopyString
+ bl StringCopy
ldr r4, _080426A8
adds r0, r7, 0
adds r1, r4, 0
- bl AppendString
+ bl StringAppend
adds r0, r7, 0
mov r1, r9
- bl AppendString
+ bl StringAppend
adds r0, r7, 0
adds r1, r4, 0
- bl AppendString
+ bl StringAppend
ldr r1, _080426AC
adds r0, r7, 0
- bl AppendString
+ bl StringAppend
add sp, 0x28
pop {r3,r4}
mov r8, r3
@@ -133750,7 +132761,7 @@ _080426C6:
adds r0, r4, 0x4
movs r2, 0x1
movs r3, 0x3
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
adds r4, r0, 0
mov r3, r8
strb r3, [r4]
@@ -133759,7 +132770,7 @@ _080426C6:
strb r0, [r4, 0x2]
adds r0, r4, 0x3
ldr r1, _08042728
- bl CopyString
+ bl StringCopy
adds r4, r0, 0
adds r0, r5, 0x1
lsls r0, 24
@@ -134242,15 +133253,15 @@ sub_8042ABC: ; 8042ABC
_08042B08:
ldr r0, _08042B34
mov r1, sp
- bl CopyString
+ bl StringCopy
ldr r4, _08042B38
adds r1, r5, 0
adds r1, 0x24
adds r0, r4, 0
- bl CopyString
+ bl StringCopy
ldr r0, _08042B3C
adds r1, r6, 0
- bl CopyString
+ bl StringCopy
adds r0, r4, 0
bl sub_814A568
movs r0, 0x1
@@ -134965,7 +133976,7 @@ _08043124:
ldr r4, _08043158
ldr r1, _0804315C
adds r0, r4, 0
- bl PrintSimple
+ bl StringExpandPlaceholders
adds r0, r4, 0
bl sub_80436FC
ldr r0, _08043160
@@ -135006,7 +134017,7 @@ _08043180:
ldr r4, _080431B0
ldr r1, _080431B4
adds r0, r4, 0
- bl PrintSimple
+ bl StringExpandPlaceholders
adds r0, r4, 0
bl sub_80436D4
ldr r1, [r5]
@@ -136947,7 +135958,7 @@ _0804404C:
movs r2, 0
movs r3, 0x2
_0804408C:
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
adds r3, r0, 0
movs r0, 0xFC
strb r0, [r3]
@@ -137319,7 +136330,7 @@ sub_8044338: ; 8044338
adds r0, r1
ldr r1, [r0]
adds r0, r4, 0
- bl CopyString
+ bl StringCopy
adds r0, r6, 0
mov r1, sp
bl sub_80034D4
@@ -137457,14 +136468,14 @@ _08044486:
adds r0, 0x6
movs r2, 0x1
movs r3, 0x2
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
ldr r3, _0804450C
adds r4, r3
ldrb r1, [r4]
ldr r0, [sp, 0x1C]
movs r2, 0x1
movs r3, 0x2
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
mov r1, sp
movs r0, 0
strb r0, [r1, 0x5]
@@ -139141,17 +138152,17 @@ sub_80451A0: ; 80451A0
ldr r4, _08045238
ldr r1, _0804523C
adds r0, r4, 0
- bl CopyString
+ bl StringCopy
adds r0, r7, 0
movs r1, 0x2
mov r2, sp
bl PokemonGetField
mov r0, sp
- bl GetStringEnd_Limit7
+ bl StringGetEnd10
adds r4, 0x3
adds r0, r4, 0
mov r1, sp
- bl CopyString
+ bl StringCopy
adds r5, r0, 0
movs r1, 0xFC
strb r1, [r5]
@@ -139268,7 +138279,7 @@ _080452C2:
cmp r1, 0xFC
bne _080452E4
ldrb r0, [r4, 0x1]
- bl GetExtendedControlCodeLength
+ bl GetExtCtrlCodeLength
lsls r0, 24
lsrs r0, 24
adds r0, 0x1
@@ -140106,7 +139117,7 @@ sub_8045998: ; 8045998
ldr r0, _08045A38
mov r8, r0
ldr r1, _08045A3C
- bl CopyString
+ bl StringCopy
adds r7, r0, 0
ldr r0, _08045A40
ldrb r1, [r0]
@@ -140116,7 +139127,7 @@ sub_8045998: ; 8045998
bl sub_8003504
adds r7, r0, 0
ldr r1, _08045A44
- bl AppendString
+ bl StringAppend
ldr r0, _08045A48
lsls r5, r4, 4
adds r5, r4
@@ -144719,7 +143730,7 @@ sub_8047D58: ; 8047D58
push {r7}
sub sp, 0x18
ldr r0, _08047E30
- bl sub_8006B34
+ bl StringGetLength
lsls r0, 16
lsrs r0, 16
movs r1, 0
@@ -144770,7 +143781,7 @@ _08047D86:
lsls r0, 2
ldr r1, _08047E3C
adds r0, r1
- bl sub_8006B34
+ bl StringGetLength
lsls r0, 16
lsrs r0, 16
movs r1, 0
@@ -146961,7 +145972,7 @@ sub_8049088: ; 8049088
sub sp, 0x1C
ldr r1, _080490B0
mov r0, sp
- bl CopyString
+ bl StringCopy
ldr r0, _080490B4
ldr r0, [r0]
adds r0, 0x7E
@@ -149279,7 +148290,7 @@ sub_804A2B4: ; 804A2B4
bl PokemonGetField
adds r0, r5, 0
mov r1, sp
- bl CopyString_Limit10
+ bl StringCopy10
adds r0, r4, 0
bl pokemon_get_gender
adds r0, r4, 0
@@ -149300,7 +148311,7 @@ _0804A2F4:
bl PokemonGetField
adds r0, r5, 0
mov r1, sp
- bl CopyString_Limit10
+ bl StringCopy10
adds r0, r4, 0
bl pokemon_get_gender
adds r0, r4, 0
@@ -149381,7 +148392,7 @@ _0804A396:
bls _0804A376
ldr r1, _0804A3E8
adds r0, r6, 0
- bl CopyString
+ bl StringCopy
movs r4, 0
_0804A3B8:
lsls r0, r4, 1
@@ -149396,11 +148407,11 @@ _0804A3B8:
ldr r0, _0804A3EC
adds r1, r0
adds r0, r6, 0
- bl AppendString
+ bl StringAppend
_0804A3D4:
adds r0, r6, 0
ldr r1, _0804A3F0
- bl AppendString
+ bl StringAppend
adds r0, r4, 0x1
lsls r0, 16
lsrs r4, r0, 16
@@ -149414,10 +148425,10 @@ _0804A3F0: .4byte gUnknown_0842C7CB
_0804A3F4:
ldr r1, _0804A414
adds r0, r6, 0
- bl CopyString
+ bl StringCopy
ldr r1, _0804A418
adds r0, r6, 0
- bl AppendString
+ bl StringAppend
_0804A404:
add sp, 0x8
pop {r3,r4}
@@ -149494,7 +148505,7 @@ _0804A484:
mov r0, sp
adds r0, 0x22
add r1, sp, 0x4
- bl CopyString_Limit10
+ bl StringCopy10
adds r0, r4, 0
bl pokemon_get_gender
mov r1, sp
@@ -151957,7 +150968,7 @@ _0804B7F4:
ldr r4, _0804B8E8
ldr r1, _0804B8EC
adds r0, r4, 0
- bl CopyString
+ bl StringCopy
ldr r0, _0804B8F0
movs r1, 0x7
add r2, sp, 0x4
@@ -151965,7 +150976,7 @@ _0804B7F4:
adds r4, 0x1C
adds r0, r4, 0
add r1, sp, 0x4
- bl CopyString
+ bl StringCopy
movs r0, 0x80
lsls r0, 19
movs r3, 0
@@ -153103,7 +152114,7 @@ sub_804C1A8: ; 804C1A8
ldr r0, _0804C224
adds r1, r0
adds r0, r3, 0
- bl CopyString
+ bl StringCopy
ldr r5, _0804C228
ldrb r0, [r5, 0x1]
movs r1, 0x6
@@ -153119,7 +152130,7 @@ sub_804C1A8: ; 804C1A8
bl PokemonGetField
ldr r0, _0804C230
mov r1, sp
- bl CopyString_Limit10
+ bl StringCopy10
ldrb r0, [r5]
muls r0, r4
ldr r1, _0804C234
@@ -153129,7 +152140,7 @@ sub_804C1A8: ; 804C1A8
bl PokemonGetField
ldr r0, _0804C238
mov r1, sp
- bl CopyString_Limit10
+ bl StringCopy10
b _0804C278
.align 2
_0804C21C: .4byte 0x03004828
@@ -153151,10 +152162,10 @@ _0804C23C:
ldr r0, _0804C288
adds r1, r4, 0
adds r1, 0x2B
- bl CopyString
+ bl StringCopy
ldr r0, _0804C28C
adds r1, r4, 0
- bl CopyString_Limit10
+ bl StringCopy10
ldr r0, _0804C290
ldrh r1, [r0]
movs r0, 0x64
@@ -153166,7 +152177,7 @@ _0804C23C:
bl PokemonGetField
ldr r0, _0804C298
mov r1, sp
- bl CopyString_Limit10
+ bl StringCopy10
_0804C278:
add sp, 0x14
pop {r4,r5}
@@ -153515,7 +152526,7 @@ _0804C6C8:
ldr r5, _0804C6F8
ldr r1, _0804C6FC
adds r0, r5, 0
- bl PrintSimple
+ bl StringExpandPlaceholders
ldr r4, _0804C700
ldr r1, [r4]
adds r0, r1, 0x4
@@ -153589,7 +152600,7 @@ _0804C718:
ldr r4, _0804C794
ldr r1, _0804C798
adds r0, r4, 0
- bl PrintSimple
+ bl StringExpandPlaceholders
ldr r1, [r6]
adds r0, r1, 0x4
adds r1, 0x34
@@ -155099,7 +154110,7 @@ _0804D3C4:
ldr r4, _0804D414
ldr r1, _0804D418
adds r0, r4, 0
- bl PrintSimple
+ bl StringExpandPlaceholders
ldr r1, [r6]
adds r0, r1, 0x4
adds r1, 0x34
@@ -155159,7 +154170,7 @@ _0804D43E:
ldr r4, _0804D484
ldr r1, _0804D488
adds r0, r4, 0
- bl PrintSimple
+ bl StringExpandPlaceholders
ldr r1, [r6]
adds r0, r1, 0x4
adds r1, 0x34
@@ -155719,12 +154730,12 @@ sub_804D89C: ; 804D89C
muls r1, r6
ldr r5, _0804D8DC
adds r1, r5
- bl CopyString
+ bl StringCopy
ldr r0, _0804D8E0
ldrh r1, [r4, 0xC]
muls r1, r6
adds r1, r5
- bl CopyString
+ bl StringCopy
ldrh r0, [r4, 0x38]
pop {r4-r6}
pop {r1}
@@ -155759,14 +154770,14 @@ sub_804D8E4: ; 804D8E4
bl PokemonGetField
ldr r0, _0804D93C
mov r1, sp
- bl CopyString_Limit10
+ bl StringCopy10
ldr r0, _0804D940
ldrh r2, [r4, 0xC]
movs r1, 0xB
muls r1, r2
ldr r2, _0804D944
adds r1, r2
- bl CopyString
+ bl StringCopy
add sp, 0x20
pop {r4}
pop {r0}
@@ -155982,7 +154993,7 @@ _0804DAEE:
adds r0, 0x12
adds r1, r5, 0
adds r1, 0x2B
- bl CopyString
+ bl StringCopy
ldr r1, [r5, 0x18]
lsrs r0, r1, 24
strb r0, [r4, 0x1A]
@@ -156307,7 +155318,7 @@ _0804DE4C:
ldr r4, _0804DE94
ldr r1, _0804DE98
adds r0, r4, 0
- bl PrintSimple
+ bl StringExpandPlaceholders
ldr r1, [r5]
adds r0, r1, 0x4
adds r1, 0x34
@@ -157494,7 +156505,7 @@ sub_804E844: ; 804E844
strh r5, [r6]
adds r0, r6, 0x2
adds r1, r4, 0
- bl CopyString
+ bl StringCopy
ldrb r0, [r4, 0x15]
strb r0, [r6, 0x9]
ldrb r0, [r4, 0x16]
@@ -157561,7 +156572,7 @@ _0804E8C4:
ldr r4, _0804E8EC
ldr r1, _0804E8F0
adds r0, r4, 0
- bl CopyString
+ bl StringCopy
adds r4, 0x1C
ldr r0, _0804E8F4
ldr r1, [r0]
@@ -157583,17 +156594,17 @@ _0804E8F8:
ldr r4, _0804E930
ldr r1, _0804E934
adds r0, r4, 0
- bl CopyString
+ bl StringCopy
adds r0, r4, 0
adds r0, 0x1C
ldr r5, _0804E938
ldr r1, [r5]
- bl CopyString
+ bl StringCopy
adds r4, 0x38
ldr r1, [r5, 0x4]
_0804E920:
adds r0, r4, 0
- bl CopyString
+ bl StringCopy
b _0804E974
.align 2
_0804E928: .4byte 0x03004834
@@ -157612,20 +156623,20 @@ _0804E93C:
ldr r4, _0804E984
ldr r1, _0804E988
adds r0, r4, 0
- bl CopyString
+ bl StringCopy
adds r0, r4, 0
adds r0, 0x1C
ldr r5, _0804E98C
ldr r1, [r5]
- bl CopyString
+ bl StringCopy
adds r0, r4, 0
adds r0, 0x38
ldr r1, [r5, 0x4]
- bl CopyString
+ bl StringCopy
adds r4, 0x54
ldr r1, [r5, 0x8]
adds r0, r4, 0
- bl CopyString
+ bl StringCopy
_0804E974:
pop {r4,r5}
pop {r0}
@@ -158748,7 +157759,7 @@ _0804F2B6:
bne _0804F31A
adds r0, r5, 0
ldr r1, _0804F370
- bl CopyString
+ bl StringCopy
adds r5, r0, 0
_0804F31A:
ldr r0, [r7]
@@ -158761,7 +157772,7 @@ _0804F31A:
ldr r0, _0804F374
adds r1, r0
adds r0, r5, 0
- bl CopyString
+ bl StringCopy
mov r0, r8
ldrb r1, [r0]
lsls r1, 3
@@ -160678,7 +159689,7 @@ help_system_is_not_first_time: ; 80502A4
bne _080502E2
adds r0, r4, 0x2
adds r1, r5, 0x2
- bl CompareString
+ bl StringCompare
cmp r0, 0
bne _080502F0
ldr r0, [r4, 0x8]
@@ -162291,7 +161302,7 @@ _08050ED8:
ldr r0, _08050F10
adds r1, r0
adds r0, r4, 0
- bl CopyString
+ bl StringCopy
ldr r1, _08050F14
b _08050F4C
.align 2
@@ -162320,11 +161331,11 @@ _08050F18:
ldr r0, _08050F64
adds r1, r0
adds r0, r4, 0
- bl CopyString
+ bl StringCopy
ldr r1, _08050F68
_08050F4C:
adds r0, r4, 0
- bl AppendString
+ bl StringAppend
adds r0, r4, 0
movs r1, 0x1
movs r2, 0xF
@@ -164174,7 +163185,7 @@ _08051D56:
lsls r2, 1
adds r1, r2
adds r0, r7, 0
- bl CopyString
+ bl StringCopy
lsls r4, r5, 3
subs r4, r5
lsls r4, 2
@@ -164185,7 +163196,7 @@ _08051D56:
bl StopMusicWhileStringIsPrinted
adds r0, r7, 0
ldr r1, _08051F20
- bl AppendString
+ bl StringAppend
mov r2, r8
ldr r0, [r2]
adds r7, r0, 0
@@ -164193,7 +163204,7 @@ _08051D56:
adds r5, r6, 0x1
adds r0, r7, 0
adds r1, r5, 0
- bl ConvertNumToDecimalString3
+ bl ConvertIntToDecimalString
adds r7, r0, 0
movs r1, 0
strb r1, [r7]
@@ -164253,13 +163264,13 @@ _08051E04:
mov r0, r9
movs r2, 0x2
movs r3, 0x2
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
ldr r0, [r6]
adds r7, r0, 0
adds r7, 0xAB
ldr r1, _08051F30
adds r0, r7, 0
- bl CopyString
+ bl StringCopy
adds r7, r0, 0
ldr r0, [r6]
adds r0, 0x5A
@@ -164287,7 +163298,7 @@ _08051E04:
bl sub_8072C74
adds r7, r0, 0
ldr r1, _08051F34
- bl CopyString
+ bl StringCopy
ldr r0, [r6]
adds r0, 0xAB
movs r1, 0x5
@@ -164318,18 +163329,18 @@ _08051E04:
mov r0, r9
movs r2, 0x2
movs r3, 0x2
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
ldr r0, [sp, 0x30]
adds r1, r5, 0
movs r2, 0x2
movs r3, 0x2
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
ldr r0, [r6]
adds r7, r0, 0
adds r7, 0xAB
ldr r1, _08051F38
adds r0, r7, 0
- bl CopyString
+ bl StringCopy
adds r7, r0, 0
mov r1, r9
movs r2, 0x66
@@ -164337,7 +163348,7 @@ _08051E04:
bl sub_8072C74
adds r7, r0, 0
ldr r1, _08051F3C
- bl AppendString
+ bl StringAppend
adds r7, r0, 0
ldr r1, [sp, 0x30]
movs r2, 0x88
@@ -164345,7 +163356,7 @@ _08051E04:
bl sub_8072C74
adds r7, r0, 0
ldr r1, _08051F40
- bl CopyString
+ bl StringCopy
ldr r0, [r6]
adds r0, 0xAB
movs r1, 0x5
@@ -164489,13 +163500,13 @@ sub_805201C: ; 805201C
adds r0, r1
ldr r1, [r0]
adds r0, r6, 0
- bl CopyString
+ bl StringCopy
ldr r1, _080520B4
adds r0, r6, 0
- bl AppendString
+ bl StringAppend
ldr r1, _080520B8
adds r0, r6, 0
- bl AppendString
+ bl StringAppend
adds r0, r5, 0
bl sub_810C9B0
adds r4, r0, 0
@@ -164508,32 +163519,32 @@ sub_805201C: ; 805201C
lsrs r5, 24
ldr r1, _080520BC
adds r0, r6, 0
- bl AppendString
+ bl StringAppend
mov r0, sp
adds r1, r4, 0
movs r2, 0
movs r3, 0x3
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
adds r0, r6, 0
mov r1, sp
- bl AppendString
+ bl StringAppend
ldr r1, _080520C0
adds r0, r6, 0
- bl AppendString
+ bl StringAppend
mov r0, sp
adds r1, r5, 0
movs r2, 0
movs r3, 0x3
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
adds r0, r6, 0
mov r1, sp
- bl AppendString
+ bl StringAppend
ldr r1, _080520C4
adds r0, r6, 0
- bl AppendString
+ bl StringAppend
ldr r1, _080520C8
adds r0, r6, 0
- bl AppendString
+ bl StringAppend
add sp, 0xC
pop {r4-r6}
pop {r0}
@@ -164921,7 +163932,7 @@ _08052380:
adds r6, 0x1
adds r0, r2, 0
adds r1, r6, 0
- bl ConvertNumToDecimalString3
+ bl ConvertIntToDecimalString
adds r2, r0, 0
movs r1, 0
strb r1, [r2]
@@ -164935,7 +163946,7 @@ _08052380:
ldr r0, _08052458
adds r1, r0
adds r0, r2, 0
- bl CopyString
+ bl StringCopy
adds r2, r0, 0
ldr r0, [r7]
lsls r4, r5, 1
@@ -165113,7 +164124,7 @@ sub_8052530: ; 8052530
sub sp, 0x98
ldr r1, _080525C8
mov r0, sp
- bl CopyString
+ bl StringCopy
mov r0, sp
movs r1, 0x2
movs r2, 0
@@ -165129,7 +164140,7 @@ sub_8052530: ; 8052530
mov r0, sp
movs r2, 0x2
movs r3, 0x3
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
mov r0, sp
movs r1, 0x6
movs r2, 0
@@ -165220,10 +164231,10 @@ _080525F8:
mov r0, sp
movs r2, 0x2
movs r3, 0x2
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
mov r0, sp
mov r1, r10
- bl AppendString
+ bl StringAppend
movs r1, 0
ldrsb r1, [r4, r1]
lsls r0, r1, 3
@@ -165234,10 +164245,10 @@ _080525F8:
ldr r0, [sp, 0x84]
movs r2, 0x2
movs r3, 0x2
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
mov r0, sp
mov r1, r10
- bl AppendString
+ bl StringAppend
movs r1, 0
ldrsb r1, [r4, r1]
lsls r0, r1, 3
@@ -165248,10 +164259,10 @@ _080525F8:
ldr r0, [sp, 0x88]
movs r2, 0x2
movs r3, 0x2
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
mov r0, sp
mov r1, r10
- bl AppendString
+ bl StringAppend
movs r1, 0
ldrsb r1, [r4, r1]
lsls r0, r1, 3
@@ -165262,10 +164273,10 @@ _080525F8:
ldr r0, [sp, 0x8C]
movs r2, 0x2
movs r3, 0x2
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
mov r0, sp
mov r1, r10
- bl AppendString
+ bl StringAppend
movs r1, 0
ldrsb r1, [r4, r1]
lsls r0, r1, 3
@@ -165276,10 +164287,10 @@ _080525F8:
ldr r0, [sp, 0x90]
movs r2, 0x2
movs r3, 0x2
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
mov r0, sp
mov r1, r10
- bl AppendString
+ bl StringAppend
movs r1, 0
ldrsb r1, [r4, r1]
lsls r0, r1, 3
@@ -165290,7 +164301,7 @@ _080525F8:
ldr r0, [sp, 0x94]
movs r2, 0x2
movs r3, 0x2
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
movs r2, 0x1
negs r2, r2
add r3, sp, 0x80
@@ -165319,7 +164330,7 @@ _080526EC:
adds r0, r1
ldr r1, [r0]
mov r0, sp
- bl CopyString
+ bl StringCopy
mov r0, sp
movs r1, 0x2
movs r2, 0xF
@@ -165329,53 +164340,53 @@ _080526EC:
mov r0, sp
movs r2, 0x2
movs r3, 0x2
- bl ConvertNumToHexString
+ bl ConvertIntToHexStringN
ldr r4, _080527B8
mov r0, sp
adds r1, r4, 0
- bl AppendString
+ bl StringAppend
mov r0, r8
ldrb r1, [r0, 0x12]
ldr r0, [sp, 0x84]
movs r2, 0x2
movs r3, 0x2
- bl ConvertNumToHexString
+ bl ConvertIntToHexStringN
mov r0, sp
adds r1, r4, 0
- bl AppendString
+ bl StringAppend
mov r2, r8
ldrb r1, [r2, 0x13]
ldr r0, [sp, 0x88]
movs r2, 0x2
movs r3, 0x2
- bl ConvertNumToHexString
+ bl ConvertIntToHexStringN
mov r0, sp
adds r1, r4, 0
- bl AppendString
+ bl StringAppend
mov r3, r8
ldrb r1, [r3, 0x14]
ldr r0, [sp, 0x8C]
movs r2, 0x2
movs r3, 0x2
- bl ConvertNumToHexString
+ bl ConvertIntToHexStringN
mov r0, sp
adds r1, r4, 0
- bl AppendString
+ bl StringAppend
mov r0, r8
ldrb r1, [r0, 0x15]
ldr r0, [sp, 0x90]
movs r2, 0x2
movs r3, 0x2
- bl ConvertNumToHexString
+ bl ConvertIntToHexStringN
mov r0, sp
adds r1, r4, 0
- bl AppendString
+ bl StringAppend
mov r2, r8
ldrb r1, [r2, 0x16]
ldr r0, [sp, 0x94]
movs r2, 0x2
movs r3, 0x2
- bl ConvertNumToHexString
+ bl ConvertIntToHexStringN
mov r1, sp
ldrb r0, [r1, 0x11]
add r3, sp, 0x80
@@ -165507,25 +164518,25 @@ _0805287A:
adds r0, r6, 0
movs r2, 0x2
movs r3, 0x8
- bl ConvertNumToHexString
+ bl ConvertIntToHexStringN
mov r0, sp
adds r1, r6, 0
- bl AppendString
+ bl StringAppend
ldr r1, _08052904
mov r0, sp
- bl AppendString
+ bl StringAppend
ldr r0, _08052908
ldr r1, [r0]
adds r0, r6, 0
movs r2, 0x2
movs r3, 0x8
- bl ConvertNumToHexString
+ bl ConvertIntToHexStringN
mov r0, sp
adds r1, r6, 0
- bl AppendString
+ bl StringAppend
ldr r1, _0805290C
mov r0, sp
- bl AppendString
+ bl StringAppend
ldr r4, _08052910
ldrb r0, [r4]
cmp r0, 0x3
@@ -165535,10 +164546,10 @@ _0805287A:
adds r0, r6, 0
movs r2, 0x2
movs r3, 0x10
- bl ConvertNumToHexString
+ bl ConvertIntToHexStringN
mov r0, sp
adds r1, r6, 0
- bl AppendString
+ bl StringAppend
movs r0, 0
strb r0, [r4]
_080528E8:
@@ -165878,10 +164889,10 @@ _08052B50:
adds r0, r5, 0
movs r2, 0x2
movs r3, 0x2
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
adds r5, r0, 0
ldr r1, _08052BCC
- bl AppendString
+ bl StringAppend
lsrs r2, r7, 24
mov r0, sp
movs r1, 0xF
@@ -184287,7 +183298,7 @@ RemoveFieldObjectInternal: ; 805AF4C
sub sp, 0x8
adds r4, r0, 0
ldrb r0, [r4, 0x5]
- bl sub_805BC10
+ bl GetFieldObjectGraphicsInfo
ldrh r2, [r0, 0x6]
ldr r1, _0805AF90
ldr r0, [sp, 0x4]
@@ -184386,7 +183397,7 @@ _0805B006:
ldr r1, _0805B030
adds r5, r0, r1
ldrb r0, [r5, 0x5]
- bl sub_805BC10
+ bl GetFieldObjectGraphicsInfo
adds r6, r0, 0
ldrb r1, [r6, 0xC]
movs r0, 0xF
@@ -184578,7 +183589,7 @@ SpawnFieldObject: ; 805B168
str r0, [sp, 0x20]
mov r1, r9
ldrb r0, [r1, 0x1]
- bl sub_805BC10
+ bl GetFieldObjectGraphicsInfo
adds r7, r0, 0
add r2, sp, 0x20
mov r0, r9
@@ -184789,7 +183800,7 @@ MakeObjectTemplateFromFieldObjectGraphicsInfo: ; 805B324
adds r6, r3, 0
lsls r0, 24
lsrs r0, 24
- bl sub_805BC10
+ bl GetFieldObjectGraphicsInfo
ldrh r1, [r0]
strh r1, [r4]
ldrh r1, [r0, 0x2]
@@ -184936,7 +183947,7 @@ sub_805B410: ; 805B410
lsrs r4, 24
str r4, [sp, 0x20]
adds r0, r5, 0
- bl sub_805BC10
+ bl GetFieldObjectGraphicsInfo
adds r4, r0, 0
ldr r1, _0805B550
add r3, sp, 0x1C
@@ -185384,7 +184395,7 @@ _0805B790:
movs r0, 0
str r0, [sp, 0x20]
ldrb r0, [r6, 0x5]
- bl sub_805BC10
+ bl GetFieldObjectGraphicsInfo
adds r5, r0, 0
ldrh r2, [r5, 0x6]
ldr r1, _0805B908
@@ -185622,7 +184633,7 @@ sub_805B980: ; 805B980
lsrs r1, 24
mov r8, r1
mov r0, r8
- bl sub_805BC10
+ bl GetFieldObjectGraphicsInfo
adds r5, r0, 0
ldrb r1, [r6, 0x4]
lsls r0, r1, 4
@@ -185950,8 +184961,8 @@ _0805BC08: .4byte gBerryTreePicTablePointers
_0805BC0C: .4byte gBerryTreePaletteSlotTablePointers
thumb_func_end get_berry_tree_graphics
- thumb_func_start sub_805BC10
-sub_805BC10: ; 805BC10
+ thumb_func_start GetFieldObjectGraphicsInfo
+GetFieldObjectGraphicsInfo: ; 805BC10
push {lr}
lsls r0, 24
lsrs r1, r0, 24
@@ -185976,7 +184987,7 @@ _0805BC2E:
bx r1
.align 2
_0805BC3C: .4byte gMapObjectGraphicsInfoPointers
- thumb_func_end sub_805BC10
+ thumb_func_end GetFieldObjectGraphicsInfo
thumb_func_start FieldObjectHandleDynamicGraphicsId
FieldObjectHandleDynamicGraphicsId: ; 805BC40
@@ -186576,7 +185587,7 @@ sub_805C058: ; 805C058
ldr r1, _0805C0F4
adds r7, r0, r1
ldrb r0, [r6, 0x5]
- bl sub_805BC10
+ bl GetFieldObjectGraphicsInfo
mov r8, r0
lsls r4, 16
asrs r4, 16
@@ -200903,7 +199914,7 @@ sub_8062608: ; 8062608
adds r4, r0, 0
adds r5, r1, 0
ldrb r0, [r4, 0x5]
- bl sub_805BC10
+ bl GetFieldObjectGraphicsInfo
ldrb r1, [r0, 0xC]
lsls r1, 25
lsrs r1, 31
@@ -203049,7 +202060,7 @@ sub_80634E8: ; 80634E8
ands r0, r1
strb r0, [r5, 0x1]
ldrb r0, [r5, 0x5]
- bl sub_805BC10
+ bl GetFieldObjectGraphicsInfo
adds r6, r0, 0
adds r0, r4, 0
adds r0, 0x3E
@@ -203280,7 +202291,7 @@ GetAllGroundEffectFlags_OnFinishStep: ; 8063690
bl GetGroundEffectFlags_Seaweed
adds r0, r4, 0
adds r1, r5, 0
- bl dp03_build_bits_by_block_behaviour
+ bl GetGroundEffectFlags_JumpLanding
pop {r4,r5}
pop {r0}
bx r0
@@ -203719,8 +202730,8 @@ _080639E2:
bx r0
thumb_func_end GetGroundEffectFlags_Seaweed
- thumb_func_start dp03_build_bits_by_block_behaviour
-dp03_build_bits_by_block_behaviour: ; 80639E8
+ thumb_func_start GetGroundEffectFlags_JumpLanding
+GetGroundEffectFlags_JumpLanding: ; 80639E8
push {r4-r7,lr}
mov r7, r8
push {r7}
@@ -203767,7 +202778,7 @@ _08063A3A:
pop {r4-r7}
pop {r0}
bx r0
- thumb_func_end dp03_build_bits_by_block_behaviour
+ thumb_func_end GetGroundEffectFlags_JumpLanding
thumb_func_start FieldObjectCheckForReflectiveSurface
FieldObjectCheckForReflectiveSurface: ; 8063A44
@@ -203779,7 +202790,7 @@ FieldObjectCheckForReflectiveSurface: ; 8063A44
sub sp, 0x8
adds r5, r0, 0
ldrb r0, [r5, 0x5]
- bl sub_805BC10
+ bl GetFieldObjectGraphicsInfo
movs r2, 0x8
ldrsh r1, [r0, r2]
adds r1, 0x8
@@ -204510,7 +203521,7 @@ sub_8063FA0: ; 8063FA0
adds r4, r0, 0
adds r5, r1, 0
ldrb r0, [r4, 0x5]
- bl sub_805BC10
+ bl GetFieldObjectGraphicsInfo
ldr r1, _08063FC8
ldrb r0, [r0, 0xD]
lsls r0, 2
@@ -204533,7 +203544,7 @@ sub_8063FCC: ; 8063FCC
adds r4, r0, 0
adds r5, r1, 0
ldrb r0, [r4, 0x5]
- bl sub_805BC10
+ bl GetFieldObjectGraphicsInfo
ldr r1, _08063FF4
ldrb r0, [r0, 0xD]
lsls r0, 2
@@ -206005,7 +205016,7 @@ DoRippleFieldEffect: ; 8064A38
push {r4,lr}
adds r4, r1, 0
ldrb r0, [r0, 0x5]
- bl sub_805BC10
+ bl GetFieldObjectGraphicsInfo
ldr r2, _08064A70
movs r3, 0x20
ldrsh r1, [r4, r3]
@@ -206249,7 +205260,7 @@ textbox_fdecode_auto_and_task_add: ; 8064BF4
adds r1, r0, 0
ldr r4, _08064C20
adds r0, r4, 0
- bl PrintSimple
+ bl StringExpandPlaceholders
ldr r0, _08064C24
ldr r1, _08064C28
ldrh r2, [r1]
@@ -211614,7 +210625,7 @@ sub_806730C: ; 806730C
ldr r4, _08067360
adds r1, 0x6
adds r0, r4, 0
- bl sub_8006EC4
+ bl UnknownStringFunc
adds r0, r5, 0
adds r1, r6, 0
mov r2, r8
@@ -211673,7 +210684,7 @@ s7D_load_pokename: ; 8067380
ldr r0, _080673BC
adds r1, r0
adds r0, r2, 0
- bl CopyString
+ bl StringCopy
movs r0, 0
pop {r4}
pop {r1}
@@ -211709,7 +210720,7 @@ s7E_load_first_pokenames: ; 80673C0
ldr r0, _08067408
adds r1, r0
adds r0, r4, 0
- bl CopyString
+ bl StringCopy
movs r0, 0
pop {r4}
pop {r1}
@@ -211745,7 +210756,7 @@ s7F_load_pokename_team: ; 806740C
adds r2, r4, 0
bl PokemonGetField
adds r0, r4, 0
- bl GetStringEnd_Limit7
+ bl StringGetEnd10
movs r0, 0
pop {r4}
pop {r1}
@@ -211801,7 +210812,7 @@ sub_8067488: ; 8067488
lsrs r1, 11
ldr r2, _080674C0
adds r1, r2
- bl CopyString
+ bl StringCopy
movs r0, 0
pop {r4}
pop {r1}
@@ -211833,7 +210844,7 @@ s82_load_item_name: ; 80674C4
ldr r0, _08067500
adds r1, r0
adds r0, r2, 0
- bl CopyString
+ bl StringCopy
movs r0, 0
pop {r4}
pop {r1}
@@ -211868,7 +210879,7 @@ s83_load_textvar_var: ; 8067504
ldr r0, [r5]
adds r1, r4, 0
movs r2, 0
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
movs r0, 0
pop {r4,r5}
pop {r1}
@@ -211898,7 +210909,7 @@ s84_load_textvar_std_expression: ; 8067548
adds r0, r1
ldr r1, [r0]
adds r0, r2, 0
- bl CopyString
+ bl StringCopy
movs r0, 0
pop {r4}
pop {r1}
@@ -211921,7 +210932,7 @@ s85_load_textvar_pointer: ; 8067588
lsls r4, 2
adds r4, r0
ldr r0, [r4]
- bl CopyString
+ bl StringCopy
movs r0, 0
pop {r4}
pop {r1}
@@ -211939,7 +210950,7 @@ sBE_virtual_load_text: ; 80675B0
ldr r0, [r0]
subs r1, r0
ldr r0, _080675D0
- bl PrintSimple
+ bl StringExpandPlaceholders
movs r0, 0
pop {r1}
bx r1
@@ -211964,7 +210975,7 @@ sBF_virtual_load_textbuffer: ; 80675D4
lsls r4, 2
adds r4, r0
ldr r0, [r4]
- bl CopyString
+ bl StringCopy
movs r0, 0
pop {r4}
pop {r1}
@@ -218600,10 +217611,10 @@ sub_806A74C: ; 806A74C
bl sub_8072C44
adds r0, r7, 0
adds r1, r4, 0
- bl CopyString
+ bl StringCopy
adds r7, r0, 0
ldr r1, _0806A848
- bl CopyString
+ bl StringCopy
adds r7, r0, 0
adds r0, r4, 0
mov r1, r8
@@ -218612,24 +217623,24 @@ sub_806A74C: ; 806A74C
bl sub_8072C44
adds r0, r7, 0
adds r1, r4, 0
- bl CopyString
+ bl StringCopy
adds r7, r0, 0
ldr r4, _0806A84C
adds r1, r4, 0
- bl CopyString
+ bl StringCopy
adds r7, r0, 0
adds r1, r6, 0
movs r2, 0x2
movs r3, 0x2
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
adds r7, r0, 0
adds r1, r4, 0
- bl CopyString
+ bl StringCopy
adds r7, r0, 0
mov r1, r9
movs r2, 0x2
movs r3, 0x2
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
ldr r0, _0806A83C
mov r1, r10
ldr r2, [sp]
@@ -225939,7 +224950,7 @@ GetMonNickname: ; 806E0EC
adds r2, r4, 0
bl PokemonGetField
adds r0, r4, 0
- bl GetStringEnd_Limit7
+ bl StringGetEnd10
pop {r4}
pop {r1}
bx r1
@@ -226112,7 +225123,7 @@ sub_806E1F4: ; 806E1F4
strb r0, [r6, 0x2]
adds r0, r6, 0x3
adds r1, r5, 0
- bl ConvertNumToDecimalString3
+ bl ConvertIntToDecimalString
movs r0, 0
str r0, [sp]
ldr r5, _0806E280
@@ -227126,7 +226137,7 @@ _0806E9F0:
ldr r4, _0806EA38
ldr r1, _0806EA3C
adds r0, r4, 0
- bl PrintSimple
+ bl StringExpandPlaceholders
adds r0, r4, 0
movs r1, 0x1
bl sub_806E834
@@ -227269,7 +226280,7 @@ _0806EB34:
ldr r4, _0806EB54
ldr r1, _0806EB58
adds r0, r4, 0
- bl PrintSimple
+ bl StringExpandPlaceholders
adds r0, r4, 0
movs r1, 0x1
bl sub_806E834
@@ -227378,7 +226389,7 @@ sub_806EBF0: ; 806EBF0
ldr r4, _0806EC3C
ldr r1, _0806EC40
adds r0, r4, 0
- bl PrintSimple
+ bl StringExpandPlaceholders
adds r0, r4, 0
adds r1, r5, 0
bl sub_806E834
@@ -227494,7 +226505,7 @@ sub_806ECE8: ; 806ECE8
ldr r4, _0806ED44
ldr r1, _0806ED48
adds r0, r4, 0
- bl PrintSimple
+ bl StringExpandPlaceholders
adds r0, r4, 0
movs r1, 0
bl sub_806E834
@@ -227580,7 +226591,7 @@ sub_806EDB4: ; 806EDB4
ldr r4, _0806EE00
ldr r1, _0806EE04
adds r0, r4, 0
- bl PrintSimple
+ bl StringExpandPlaceholders
adds r0, r4, 0
adds r1, r5, 0
bl sub_806E834
@@ -227958,7 +226969,7 @@ sub_806F0B4: ; 806F0B4
muls r1, r2
ldr r2, _0806F120
adds r1, r2
- bl CopyString
+ bl StringCopy
ldr r1, _0806F124
adds r0, r5, r1
strh r4, [r0]
@@ -227971,7 +226982,7 @@ sub_806F0B4: ; 806F0B4
ldr r4, _0806F128
ldr r1, _0806F12C
adds r0, r4, 0
- bl PrintSimple
+ bl StringExpandPlaceholders
adds r0, r4, 0
movs r1, 0x1
bl sub_806E834
@@ -228004,7 +227015,7 @@ _0806F138:
ldr r4, _0806F16C
ldr r1, _0806F170
adds r0, r4, 0
- bl PrintSimple
+ bl StringExpandPlaceholders
adds r0, r4, 0
movs r1, 0x1
bl sub_806E834
@@ -228037,7 +227048,7 @@ _0806F198:
ldr r4, _0806F1C0
ldr r1, _0806F1C4
adds r0, r4, 0
- bl PrintSimple
+ bl StringExpandPlaceholders
adds r0, r4, 0
movs r1, 0x1
bl sub_806E834
@@ -228072,11 +227083,11 @@ sub_806F1D0: ; 806F1D0
muls r1, r2
ldr r2, _0806F23C
adds r1, r2
- bl CopyString
+ bl StringCopy
ldr r4, _0806F240
ldr r1, _0806F244
adds r0, r4, 0
- bl PrintSimple
+ bl StringExpandPlaceholders
adds r0, r4, 0
movs r1, 0x1
bl sub_806E834
@@ -228451,11 +227462,11 @@ sub_806F490: ; 806F490
muls r1, r4
ldr r2, _0806F52C
adds r1, r2
- bl CopyString
+ bl StringCopy
ldr r4, _0806F530
ldr r1, _0806F534
adds r0, r4, 0
- bl PrintSimple
+ bl StringExpandPlaceholders
adds r0, r4, 0
movs r1, 0x1
bl sub_806E834
@@ -228548,11 +227559,11 @@ sub_806F588: ; 806F588
muls r1, r2
ldr r2, _0806F604
adds r1, r2
- bl CopyString
+ bl StringCopy
ldr r4, _0806F608
ldr r1, _0806F60C
adds r0, r4, 0
- bl PrintSimple
+ bl StringExpandPlaceholders
adds r0, r4, 0
movs r1, 0x1
bl sub_806E834
@@ -228595,11 +227606,11 @@ sub_806F614: ; 806F614
muls r1, r2
ldr r2, _0806F668
adds r1, r2
- bl CopyString
+ bl StringCopy
ldr r4, _0806F66C
ldr r1, _0806F670
adds r0, r4, 0
- bl PrintSimple
+ bl StringExpandPlaceholders
adds r0, r4, 0
movs r1, 0x1
bl sub_806E834
@@ -228679,11 +227690,11 @@ sub_806F6B4: ; 806F6B4
muls r1, r2
ldr r2, _0806F71C
adds r1, r2
- bl CopyString
+ bl StringCopy
ldr r4, _0806F720
ldr r1, _0806F724
adds r0, r4, 0
- bl PrintSimple
+ bl StringExpandPlaceholders
adds r0, r4, 0
movs r1, 0x1
bl sub_806E834
@@ -228733,11 +227744,11 @@ _0806F74A:
muls r1, r2
ldr r2, _0806F7A4
adds r1, r2
- bl CopyString
+ bl StringCopy
ldr r4, _0806F7A8
ldr r1, _0806F7AC
adds r0, r4, 0
- bl PrintSimple
+ bl StringExpandPlaceholders
adds r0, r4, 0
movs r1, 0x1
bl sub_806E834
@@ -228951,7 +227962,7 @@ _0806F900:
ldrh r1, [r5]
movs r2, 0
movs r3, 0x3
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
ldr r2, _0806F950
lsls r1, r6, 2
adds r0, r1, r6
@@ -228964,7 +227975,7 @@ _0806F900:
bne _0806F95C
ldr r0, _0806F954
ldr r1, _0806F958
- bl PrintSimple
+ bl StringExpandPlaceholders
b _0806F964
.align 2
_0806F940: .4byte 0x02024bec
@@ -228977,7 +227988,7 @@ _0806F958: .4byte gUnknown_0840F4B5
_0806F95C:
ldr r0, _0806F9D4
ldr r1, _0806F9D8
- bl PrintSimple
+ bl StringExpandPlaceholders
_0806F964:
ldr r4, _0806F9DC
ldrb r0, [r4, 0x4]
@@ -229322,7 +228333,7 @@ _0806FBF4:
_0806FC40:
ldr r0, _0806FC4C
ldr r1, _0806FC50
- bl PrintSimple
+ bl StringExpandPlaceholders
b _0806FD84
.align 2
_0806FC4C: .4byte 0x020234cc
@@ -229330,7 +228341,7 @@ _0806FC50: .4byte gUnknown_0840F4DA
_0806FC54:
ldr r0, _0806FC60
ldr r1, _0806FC64
- bl PrintSimple
+ bl StringExpandPlaceholders
b _0806FD84
.align 2
_0806FC60: .4byte 0x020234cc
@@ -229338,7 +228349,7 @@ _0806FC64: .4byte gUnknown_0840F518
_0806FC68:
ldr r0, _0806FC74
ldr r1, _0806FC78
- bl PrintSimple
+ bl StringExpandPlaceholders
b _0806FD84
.align 2
_0806FC74: .4byte 0x020234cc
@@ -229346,7 +228357,7 @@ _0806FC78: .4byte gUnknown_0840F526
_0806FC7C:
ldr r0, _0806FC88
ldr r1, _0806FC8C
- bl PrintSimple
+ bl StringExpandPlaceholders
b _0806FD84
.align 2
_0806FC88: .4byte 0x020234cc
@@ -229354,7 +228365,7 @@ _0806FC8C: .4byte gUnknown_0840F53E
_0806FC90:
ldr r0, _0806FC9C
ldr r1, _0806FCA0
- bl PrintSimple
+ bl StringExpandPlaceholders
b _0806FD84
.align 2
_0806FC9C: .4byte 0x020234cc
@@ -229362,7 +228373,7 @@ _0806FCA0: .4byte gUnknown_0840F4FB
_0806FCA4:
ldr r0, _0806FCB0
ldr r1, _0806FCB4
- bl PrintSimple
+ bl StringExpandPlaceholders
b _0806FD84
.align 2
_0806FCB0: .4byte 0x020234cc
@@ -229370,7 +228381,7 @@ _0806FCB4: .4byte gUnknown_0840F5D7
_0806FCB8:
ldr r0, _0806FCC4
ldr r1, _0806FCC8
- bl PrintSimple
+ bl StringExpandPlaceholders
b _0806FD84
.align 2
_0806FCC4: .4byte 0x020234cc
@@ -229378,7 +228389,7 @@ _0806FCC8: .4byte gUnknown_0840F5FA
_0806FCCC:
ldr r0, _0806FCD8
ldr r1, _0806FCDC
- bl PrintSimple
+ bl StringExpandPlaceholders
b _0806FD84
.align 2
_0806FCD8: .4byte 0x020234cc
@@ -229422,10 +228433,10 @@ _0806FD30:
ldr r0, _0806FD44
ldr r1, _0806FD48
_0806FD34:
- bl CopyString
+ bl StringCopy
ldr r0, _0806FD4C
ldr r1, _0806FD50
- bl PrintSimple
+ bl StringExpandPlaceholders
b _0806FD84
.align 2
_0806FD44: .4byte 0x020232cc
@@ -229435,7 +228446,7 @@ _0806FD50: .4byte gUnknown_0840F5C1
_0806FD54:
ldr r0, _0806FD60
ldr r1, _0806FD64
- bl PrintSimple
+ bl StringExpandPlaceholders
b _0806FD84
.align 2
_0806FD60: .4byte 0x020234cc
@@ -229443,7 +228454,7 @@ _0806FD64: .4byte gUnknown_0840F591
_0806FD68:
ldr r0, _0806FD74
ldr r1, _0806FD78
- bl PrintSimple
+ bl StringExpandPlaceholders
b _0806FD84
.align 2
_0806FD74: .4byte 0x020234cc
@@ -229451,7 +228462,7 @@ _0806FD78: .4byte gUnknown_0840F553
_0806FD7C:
ldr r0, _0806FD88
ldr r1, _0806FD8C
- bl PrintSimple
+ bl StringExpandPlaceholders
_0806FD84:
pop {r0}
bx r0
@@ -230474,7 +229485,7 @@ _080705B8:
muls r1, r5
ldr r2, _08070614
adds r1, r2
- bl CopyString
+ bl StringCopy
ldrh r0, [r6, 0x6]
bl GetMedicineItemEffectMessage
ldr r0, _08070618
@@ -230639,11 +229650,11 @@ _08070724:
ldr r0, _08070790
movs r2, 0
movs r3, 0x3
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
ldr r4, _08070794
ldr r1, _08070798
adds r0, r4, 0
- bl PrintSimple
+ bl StringExpandPlaceholders
adds r0, r4, 0
movs r1, 0x1
bl sub_806E834
@@ -230856,7 +229867,7 @@ _08070910:
adds r0, 0x3
movs r2, 0x1
movs r3, 0x2
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
lsls r1, r4, 27
movs r0, 0xC0
lsls r0, 20
@@ -230941,7 +229952,7 @@ _08070982:
adds r0, 0x3
movs r2, 0x1
movs r3, 0x3
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
adds r4, 0x6
lsls r4, 3
adds r4, 0x6
@@ -231145,11 +230156,11 @@ _08070B7C:
muls r1, r2
ldr r2, _08070BC8
adds r1, r2
- bl CopyString
+ bl StringCopy
ldr r4, _08070BCC
ldr r1, _08070BD0
adds r0, r4, 0
- bl PrintSimple
+ bl StringExpandPlaceholders
adds r0, r4, 0
movs r1, 0x1
bl sub_806E834
@@ -231193,11 +230204,11 @@ _08070BF4:
muls r1, r4
ldr r2, _08070C40
adds r1, r2
- bl CopyString
+ bl StringCopy
ldr r4, _08070C44
ldr r1, _08070C48
adds r0, r4, 0
- bl PrintSimple
+ bl StringExpandPlaceholders
adds r0, r4, 0
movs r1, 0x1
bl sub_806E834
@@ -231291,11 +230302,11 @@ _08070CC8:
muls r1, r2
ldr r2, _08070D14
adds r1, r2
- bl CopyString
+ bl StringCopy
ldr r4, _08070D18
ldr r1, _08070D1C
adds r0, r4, 0
- bl PrintSimple
+ bl StringExpandPlaceholders
adds r0, r4, 0
movs r1, 0x1
bl sub_806E834
@@ -231331,11 +230342,11 @@ _08070D30:
muls r1, r4
ldr r2, _08070D7C
adds r1, r2
- bl CopyString
+ bl StringCopy
ldr r4, _08070D80
ldr r1, _08070D84
adds r0, r4, 0
- bl PrintSimple
+ bl StringExpandPlaceholders
adds r0, r4, 0
movs r1, 0x1
bl sub_806E834
@@ -232555,7 +231566,7 @@ sub_8071684: ; 8071684
ldr r4, _080716B0
adds r0, r4, 0
adds r1, r2, 0
- bl PrintSimple
+ bl StringExpandPlaceholders
bl sub_8071FFC
adds r0, r4, 0
bl sub_8072044
@@ -268426,7 +267437,7 @@ _0808284C:
bl ReturnEmptyStringIfNull
adds r1, r0, 0
adds r0, r4, 0
- bl PrintSimple
+ bl StringExpandPlaceholders
adds r0, r4, 0
pop {r4}
pop {r1}
@@ -269121,7 +268132,7 @@ sub_8082D18: ; 8082D18
ldr r0, _08082D44
movs r2, 0
movs r3, 0x1
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
movs r0, 0x12
movs r1, 0xA
movs r2, 0x1C
@@ -269220,7 +268231,7 @@ _08082DD6:
ldr r0, _08082DE4
movs r2, 0
movs r3, 0x1
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
movs r0, 0x4
b _08082DEE
.align 2
@@ -269589,7 +268600,7 @@ sub_808303C: ; 808303C
adds r1, r5, 0
movs r2, 0
movs r3, 0x1
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
ldr r0, _080830DC
bl box_related_two__3
mov r0, r9
@@ -271026,7 +270037,7 @@ sub_8083BF4: ; 8083BF4
lsls r1, 2
ldr r2, _08083C3C
adds r1, r2
- bl CopyString
+ bl StringCopy
adds r0, r4, 0
bl sub_80934C4
lsls r0, 24
@@ -271039,7 +270050,7 @@ sub_8083BF4: ; 8083BF4
lsls r1, 2
adds r1, r2
ldr r1, [r1]
- bl CopyString
+ bl StringCopy
movs r0, 0x1
b _08083C4A
.align 2
@@ -271150,7 +270161,7 @@ sub_8083CF0: ; 8083CF0
movs r1, 0xFF
strb r1, [r0]
ldr r1, _08083D40
- bl AppendString
+ bl StringAppend
movs r5, 0
ldr r0, _08083D44
movs r6, 0x1
@@ -271167,7 +270178,7 @@ _08083D14:
ldr r1, _08083D48
adds r1, r4, r1
ldr r0, _08083D3C
- bl AppendString
+ bl StringAppend
_08083D28:
adds r4, 0x3
adds r5, 0x1
@@ -271226,18 +270237,18 @@ sub_8083D70: ; 8083D70
ldr r4, _08083DE8
adds r1, r4
mov r0, sp
- bl CopyString
+ bl StringCopy
ldr r1, _08083DEC
mov r0, sp
- bl AppendString
+ bl StringAppend
adds r1, r5, 0
muls r1, r6
adds r1, r4
mov r0, sp
- bl AppendString
+ bl StringAppend
ldr r1, _08083DF0
mov r0, sp
- bl AppendString
+ bl StringAppend
bl sub_8071EF4
movs r0, 0
movs r1, 0xE
@@ -296065,10 +295076,10 @@ _08090174:
strb r0, [r1]
ldr r1, _080901B0
add r0, sp, 0x4
- bl AppendString
+ bl StringAppend
ldr r1, _080901B4
add r0, sp, 0x4
- bl AppendString
+ bl StringAppend
add r0, sp, 0x4
movs r1, 0x3
movs r2, 0xF
@@ -298189,7 +297200,7 @@ sub_8091260: ; 8091260
lsrs r4, 24
ldr r1, _080912CC
mov r0, sp
- bl CopyString
+ bl StringCopy
adds r6, r0, 0
mov r0, sp
strb r4, [r0, 0x2]
@@ -301351,7 +300362,7 @@ sub_8092B68: ; 8092B68
adds r0, r1
ldr r1, [r0]
adds r0, r7, 0
- bl CopyString
+ bl StringCopy
ldr r0, _08092C74
mov r8, r0
movs r1, 0x2D
@@ -301368,7 +300379,7 @@ sub_8092B68: ; 8092B68
adds r0, r1
ldr r1, [r0]
adds r0, r7, 0
- bl CopyString
+ bl StringCopy
mov r0, r8
movs r1, 0x2D
movs r2, 0x20
@@ -301384,7 +300395,7 @@ sub_8092B68: ; 8092B68
adds r0, r4
ldr r1, [r0]
adds r0, r7, 0
- bl CopyString
+ bl StringCopy
ldr r5, _08092C80
adds r0, r5, 0
movs r1, 0x2D
@@ -301399,7 +300410,7 @@ sub_8092B68: ; 8092B68
adds r0, r4
ldr r1, [r0]
adds r0, r7, 0
- bl CopyString
+ bl StringCopy
adds r0, r5, 0
movs r1, 0x5D
movs r2, 0x30
@@ -301415,7 +300426,7 @@ sub_8092B68: ; 8092B68
adds r0, r1
ldr r1, [r0]
adds r0, r7, 0
- bl CopyString
+ bl StringCopy
mov r0, r8
movs r1, 0x2D
movs r2, 0x40
@@ -301434,7 +300445,7 @@ sub_8092B68: ; 8092B68
adds r0, r1
ldr r1, [r0]
adds r0, r7, 0
- bl CopyString
+ bl StringCopy
mov r0, r8
movs r1, 0x2D
movs r2, 0x50
@@ -304234,7 +303245,7 @@ sub_8094140: ; 8094140
ldr r5, _08094184
adds r0, r4, 0
adds r1, r5, 0
- bl CopyString
+ bl StringCopy
ldrb r1, [r5, 0x8]
adds r0, r4, 0
bl StopMusicWhileStringIsPrinted
@@ -304292,7 +303303,7 @@ sub_80941D8: ; 80941D8
mov r0, sp
movs r2, 0x2
movs r3, 0x5
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
mov r0, sp
movs r1, 0x14
movs r2, 0x2
@@ -304338,7 +303349,7 @@ _08094230:
mov r0, sp
movs r2, 0
movs r3, 0x3
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
mov r0, sp
movs r1, 0x10
movs r2, 0xA
@@ -304398,13 +303409,13 @@ sub_809429C: ; 809429C
ldr r0, _080942F4
adds r1, r6, 0
adds r1, 0x20
- bl CopyString
+ bl StringCopy
movs r5, 0
strb r5, [r0]
adds r0, 0x1
adds r1, r6, 0
adds r1, 0x30
- bl CopyString
+ bl StringCopy
ldr r4, _080942F4
adds r0, r4, 0
movs r1, 0x2
@@ -304413,12 +303424,12 @@ sub_809429C: ; 809429C
adds r1, r6, 0
adds r1, 0x40
adds r0, r4, 0
- bl CopyString
+ bl StringCopy
strb r5, [r0]
adds r0, 0x1
adds r1, r6, 0
adds r1, 0x50
- bl CopyString
+ bl StringCopy
adds r0, r4, 0
movs r1, 0x2
movs r2, 0x10
@@ -304439,13 +303450,13 @@ sub_80942F8: ; 80942F8
ldr r5, _0809432C
adds r0, r4, 0
adds r1, r5, 0
- bl CopyString
+ bl StringCopy
ldrb r1, [r5, 0x8]
adds r0, r4, 0
bl StopMusicWhileStringIsPrinted
ldr r1, _08094330
adds r0, r4, 0
- bl AppendString
+ bl StringAppend
adds r0, r4, 0
movs r1, 0x1C
movs r2, 0x2
@@ -304492,11 +303503,11 @@ sub_8094354: ; 8094354
adds r0, r2, 0
movs r2, 0x1
movs r3, 0x3
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
adds r2, r0, 0
ldr r4, _080943C0
adds r1, r4, 0
- bl CopyString
+ bl StringCopy
adds r2, r0, 0
adds r0, r5, 0
adds r0, 0x6C
@@ -304504,10 +303515,10 @@ sub_8094354: ; 8094354
adds r0, r2, 0
movs r2, 0x2
movs r3, 0x2
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
adds r2, r0, 0
adds r1, r4, 0
- bl CopyString
+ bl StringCopy
adds r2, r0, 0
adds r0, r5, 0
adds r0, 0x6E
@@ -304515,7 +303526,7 @@ sub_8094354: ; 8094354
adds r0, r2, 0
movs r2, 0x2
movs r3, 0x2
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
ldr r0, _080943BC
movs r1, 0x1C
movs r2, 0x5
@@ -304561,7 +303572,7 @@ sub_80943E4: ; 80943E4
adds r0, 0x78
ldrh r1, [r0]
mov r0, sp
- bl ConvertNumToDecimalString3
+ bl ConvertIntToDecimalString
mov r0, sp
movs r1, 0x16
movs r2, 0x7
@@ -304570,7 +303581,7 @@ sub_80943E4: ; 80943E4
adds r0, 0x7A
ldrh r1, [r0]
mov r0, sp
- bl ConvertNumToDecimalString3
+ bl ConvertIntToDecimalString
mov r0, sp
movs r1, 0x1C
movs r2, 0x7
@@ -304677,7 +303688,7 @@ sub_80944B8: ; 80944B8
mov r0, sp
movs r2, 0x1
movs r3, 0x3
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
mov r0, sp
movs r1, 0x1C
movs r2, 0xD
@@ -304723,7 +303734,7 @@ sub_8094508: ; 8094508
mov r0, sp
movs r2, 0x1
movs r3, 0x5
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
mov r0, sp
movs r1, 0x1C
movs r2, 0xB
@@ -304769,7 +303780,7 @@ sub_8094558: ; 8094558
mov r0, sp
movs r2, 0x1
movs r3, 0x5
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
mov r0, sp
movs r1, 0x1C
movs r2, 0x9
@@ -305082,7 +304093,7 @@ sub_80947B0: ; 80947B0
lsls r1, 24
lsrs r1, 24
mov r0, sp
- bl ConvertNumToDecimalString3
+ bl ConvertIntToDecimalString
adds r4, 0xC
lsls r4, 24
lsrs r4, 24
@@ -305120,7 +304131,7 @@ sub_80947F8: ; 80947F8
mov r0, sp
movs r2, 0x1
movs r3, 0x3
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
adds r4, 0xC
lsls r4, 24
lsrs r4, 24
@@ -305232,7 +304243,7 @@ sub_80948E4: ; 80948E4
lsrs r6, r2, 16
lsls r4, 16
lsrs r4, 16
- bl ConvertNumToDecimalString3
+ bl ConvertIntToDecimalString
adds r5, r0, 0
movs r0, 0
strb r0, [r5]
@@ -305253,7 +304264,7 @@ _08094910:
adds r1, r6, 0
movs r2, 0x2
movs r3, 0x2
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
pop {r4-r6}
pop {r0}
bx r0
@@ -306893,11 +305904,11 @@ _080955C6:
bl sub_8040D08
adds r1, r0, 0
adds r0, r4, 0
- bl CopyString
+ bl StringCopy
ldr r4, _08095604
ldr r1, _08095608
adds r0, r4, 0
- bl PrintSimple
+ bl StringExpandPlaceholders
adds r0, r4, 0
movs r1, 0
bl sub_806E834
@@ -306933,7 +305944,7 @@ _08095610:
ldr r4, _0809565C
ldr r1, _08095660
adds r0, r4, 0
- bl PrintSimple
+ bl StringExpandPlaceholders
adds r0, r4, 0
movs r1, 0
bl sub_806E834
@@ -307001,7 +306012,7 @@ _080956A8:
ldr r4, _080956F8
ldr r1, _080956FC
adds r0, r4, 0
- bl PrintSimple
+ bl StringExpandPlaceholders
adds r0, r4, 0
movs r1, 0
bl sub_806E834
@@ -307038,7 +306049,7 @@ _08095708:
ldr r4, _08095758
ldr r1, _0809575C
adds r0, r4, 0
- bl PrintSimple
+ bl StringExpandPlaceholders
adds r0, r4, 0
movs r1, 0
bl sub_806E834
@@ -307101,7 +306112,7 @@ _080957A0:
ldr r4, _080957F8
ldr r1, _080957FC
adds r0, r4, 0
- bl PrintSimple
+ bl StringExpandPlaceholders
adds r0, r4, 0
movs r1, 0
bl sub_806E834
@@ -307131,7 +306142,7 @@ _08095808:
ldr r4, _08095844
ldr r1, _08095848
adds r0, r4, 0
- bl PrintSimple
+ bl StringExpandPlaceholders
adds r0, r4, 0
movs r1, 0
bl sub_806E834
@@ -307250,7 +306261,7 @@ sub_8095904: ; 8095904
lsrs r0, 24
str r0, [sp, 0x8]
ldr r0, [sp]
- bl sub_8006B34
+ bl StringGetLength
lsls r0, 16
lsrs r0, 16
mov r8, r0
@@ -307698,7 +306709,7 @@ sub_8095C60: ; 8095C60
adds r5, r0, 0
lsls r4, r2, 16
lsrs r4, 16
- bl CopyString
+ bl StringCopy
adds r1, r0, 0
adds r5, r4
cmp r1, r5
@@ -308448,12 +307459,12 @@ _08096214:
ldr r6, _0809625C
adds r0, r6
ldr r1, _08096260
- bl CopyString
+ bl StringCopy
adds r4, r5, 0x1
adds r1, r4, 0
movs r2, 0
movs r3, 0x2
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
lsls r4, 16
lsrs r5, r4, 16
cmp r5, 0xD
@@ -309028,7 +308039,7 @@ sub_809665C: ; 809665C
ldr r0, _080966BC
adds r1, r0
adds r0, r2, 0
- bl CopyString
+ bl StringCopy
adds r2, r0, 0
movs r0, 0xFE
strb r0, [r2]
@@ -309050,7 +308061,7 @@ _080966C2:
adds r2, 0x4
adds r0, r2, 0
adds r1, r7, 0
- bl ConvertNumToDecimalString3
+ bl ConvertIntToDecimalString
adds r2, r0, 0
movs r0, 0xBA
strb r0, [r2]
@@ -313156,7 +312167,7 @@ _080988E8:
adds r0, r1
ldr r1, [r0]
adds r0, r4, 0
- bl CopyString
+ bl StringCopy
adds r2, r0, 0
ldr r0, _0809890C
adds r4, r0
@@ -313174,7 +312185,7 @@ _08098910:
adds r0, r1
ldr r1, [r0]
adds r0, r4, 0
- bl CopyString
+ bl StringCopy
adds r2, r0, 0
adds r4, 0x50
adds r1, r4, 0
@@ -313186,7 +312197,7 @@ _08098930:
ldr r0, _08098948
ldr r2, _0809894C
adds r1, r0, r2
- bl CopyString
+ bl StringCopy
adds r2, r0, 0
ldr r1, _08098950
lsls r0, r5, 3
@@ -313202,7 +312213,7 @@ _08098954:
ldr r0, _0809896C
adds r1, r0, 0
adds r1, 0x50
- bl CopyString
+ bl StringCopy
adds r2, r0, 0
ldr r1, _08098970
lsls r0, r5, 3
@@ -313219,7 +312230,7 @@ _08098974:
adds r0, r1
ldr r6, [r0]
adds r0, r6, 0
- bl sub_8006B34
+ bl StringGetLength
adds r4, r0, 0
lsls r4, 16
lsrs r4, 16
@@ -313228,13 +312239,13 @@ _08098974:
ldr r5, _080989B0
adds r0, r5, 0
adds r1, r6, 0
- bl CopyString
+ bl StringCopy
adds r2, r0, 0
ldr r0, _080989B4
adds r5, r0
adds r0, r2, 0
adds r1, r5, 0
- bl CopyString
+ bl StringCopy
adds r2, r0, 0
adds r1, r4, 0
b _080989FE
@@ -313248,7 +312259,7 @@ _080989B8:
adds r0, r1
ldr r6, [r0]
adds r0, r6, 0
- bl sub_8006B34
+ bl StringGetLength
adds r4, r0, 0
lsls r4, 16
lsrs r4, 16
@@ -313257,12 +312268,12 @@ _080989B8:
ldr r5, _080989F0
adds r0, r5, 0
adds r1, r6, 0
- bl CopyString
+ bl StringCopy
adds r2, r0, 0
subs r0, r2, 0x1
adds r5, 0x50
adds r1, r5, 0
- bl CopyString
+ bl StringCopy
adds r2, r0, 0
adds r1, r4, 0
b _080989FE
@@ -313276,7 +312287,7 @@ _080989F4:
adds r1, r2
ldr r1, [r1]
_080989FE:
- bl CopyString
+ bl StringCopy
adds r2, r0, 0
ldr r0, _08098A34
adds r3, r0, 0
@@ -319137,7 +318148,7 @@ _0809B700:
adds r0, r1, r2
ldr r2, _0809B730
adds r1, r2
- bl CopyString
+ bl StringCopy
pop {r0}
bx r0
.align 2
@@ -320350,7 +319361,7 @@ _0809C08C:
adds r2, r4, 0
bl PokemonGetField
adds r0, r4, 0
- bl GetStringEnd_Limit7
+ bl StringGetEnd10
adds r0, r7, 0
movs r1, 0x38
bl PokemonGetField
@@ -320422,7 +319433,7 @@ _0809C120:
adds r2, r4, 0
bl PokemonGetEncryptedField
adds r0, r4, 0
- bl GetStringEnd_Limit7
+ bl StringGetEnd10
adds r0, r7, 0
bl sub_803B570
ldr r2, _0809C1C4
@@ -320539,7 +319550,7 @@ _0809C23C:
adds r2, 0x1
adds r1, r4, r2
adds r0, r7, 0
- bl CopyString
+ bl StringCopy
ldr r0, _0809C298
adds r1, r4, r0
movs r0, 0xFF
@@ -320592,7 +319603,7 @@ _0809C2B0:
ldr r2, _0809C394
adds r1, r4, r2
adds r0, r7, 0
- bl CopyString
+ bl StringCopy
ldr r0, _0809C398
adds r7, r4, r0
mov r1, r9
@@ -320623,7 +319634,7 @@ _0809C2B0:
ldr r0, _0809C3A4
adds r1, r0
adds r0, r7, 0
- bl CopyString
+ bl StringCopy
adds r7, r0, 0
mov r2, r9
strb r2, [r7]
@@ -320750,7 +319761,7 @@ _0809C3EA:
bl itemid_get_item
adds r1, r0, 0
adds r0, r7, 0
- bl CopyString
+ bl StringCopy
adds r7, r0, 0
strb r4, [r7]
movs r0, 0x7
@@ -327952,11 +326963,11 @@ _0809FC3C:
bl sub_80A1E58
adds r5, r0, 0
ldr r1, _0809FCD4
- bl CopyString
+ bl StringCopy
adds r5, r0, 0
ldr r4, _0809FCD8
adds r1, r4, 0
- bl CopyString
+ bl StringCopy
adds r5, r0, 0
movs r0, 0xFC
strb r0, [r5]
@@ -328048,7 +327059,7 @@ _0809FD1C:
bl sub_80A1E58
adds r5, r0, 0
ldr r1, _0809FD6C
- bl CopyString
+ bl StringCopy
adds r5, r0, 0
adds r0, r6, 0
movs r1, 0x31
@@ -328070,7 +327081,7 @@ _0809FD74:
adds r5, r0, 0
ldr r1, _0809FE54
adds r0, r5, 0
- bl CopyString
+ bl StringCopy
adds r5, r0, 0
movs r0, 0xFC
strb r0, [r5]
@@ -328316,7 +327327,7 @@ _0809FF6A:
bl PokemonGetField
adds r1, r0, 0
adds r0, r4, 0
- bl ConvertNumToDecimalString3
+ bl ConvertIntToDecimalString
adds r0, r4, 0
movs r1, 0x1D
movs r2, 0xE
@@ -328330,7 +327341,7 @@ _0809FF6A:
bl PokemonGetField
adds r1, r0, 0
adds r0, r4, 0
- bl ConvertNumToDecimalString3
+ bl ConvertIntToDecimalString
adds r0, r4, 0
movs r1, 0x10
movs r2, 0x9
@@ -328341,7 +327352,7 @@ _0809FF6A:
bl PokemonGetField
adds r1, r0, 0
adds r0, r4, 0
- bl ConvertNumToDecimalString3
+ bl ConvertIntToDecimalString
adds r0, r4, 0
movs r1, 0x10
movs r2, 0xB
@@ -328352,7 +327363,7 @@ _0809FF6A:
bl PokemonGetField
adds r1, r0, 0
adds r0, r4, 0
- bl ConvertNumToDecimalString3
+ bl ConvertIntToDecimalString
adds r0, r4, 0
movs r1, 0x1B
movs r2, 0x7
@@ -328363,7 +327374,7 @@ _0809FF6A:
bl PokemonGetField
adds r1, r0, 0
adds r0, r4, 0
- bl ConvertNumToDecimalString3
+ bl ConvertIntToDecimalString
adds r0, r4, 0
movs r1, 0x1B
movs r2, 0x9
@@ -328374,7 +327385,7 @@ _0809FF6A:
bl PokemonGetField
adds r1, r0, 0
adds r0, r4, 0
- bl ConvertNumToDecimalString3
+ bl ConvertIntToDecimalString
adds r0, r4, 0
movs r1, 0x1B
movs r2, 0xB
@@ -329174,7 +328185,7 @@ sub_80A0664: ; 80A0664
adds r2, 0x8
adds r1, r2
adds r0, r4, 0
- bl CopyString
+ bl StringCopy
adds r0, r4, 0
bl StripExtendedControlCodes
b _080A06C2
@@ -329190,7 +328201,7 @@ _080A06B0:
ands r5, r0
ldr r0, _080A06F4
ldr r1, _080A06F8
- bl CopyString
+ bl StringCopy
_080A06C2:
adds r0, r6, 0
movs r1, 0x1
@@ -329330,12 +328341,12 @@ sub_80A0798: ; 80A0798
cmp r4, 0x15
beq _080A07DA
ldr r1, _080A0840
- bl CopyString
+ bl StringCopy
adds r5, r0, 0
_080A07DA:
ldr r1, _080A0844
adds r0, r5, 0
- bl CopyString
+ bl StringCopy
adds r5, r0, 0
adds r0, r7, 0
bl sub_80A0664
@@ -329370,7 +328381,7 @@ _080A07DA:
bl sub_80A1E9C
adds r5, r0, 0
ldr r1, _080A084C
- bl CopyString
+ bl StringCopy
b _080A0934
.align 2
_080A0838: .4byte 0x020234cc
@@ -329404,7 +328415,7 @@ _080A0850:
bl sub_80A1E9C
adds r5, r0, 0
ldr r1, _080A0894
- bl CopyString
+ bl StringCopy
b _080A0934
.align 2
_080A0890: .4byte 0x020231cc
@@ -329453,7 +328464,7 @@ _080A08E8:
ldr r1, _080A08F8
_080A08F0:
adds r0, r5, 0
- bl CopyString
+ bl StringCopy
b _080A0934
.align 2
_080A08F8: .4byte gUnknown_0842D103
@@ -329480,7 +328491,7 @@ _080A08FC:
bl sub_80A1E9C
adds r5, r0, 0
ldr r1, _080A0950
- bl CopyString
+ bl StringCopy
_080A0934:
ldr r0, _080A0954
mov r1, r9
@@ -329531,7 +328542,7 @@ sub_80A0958: ; 80A0958
ldr r0, _080A0A28
adds r1, r0
adds r0, r2, 0
- bl CopyString
+ bl StringCopy
adds r2, r0, 0
strb r6, [r2]
movs r0, 0x13
@@ -329567,7 +328578,7 @@ sub_80A0958: ; 80A0958
adds r2, 0x1
adds r0, r2, 0
adds r1, r4, 0
- bl ConvertNumToDecimalString3
+ bl ConvertIntToDecimalString
adds r2, r0, 0
strb r6, [r2]
mov r0, r10
@@ -329770,7 +328781,7 @@ sub_80A0B88: ; 80A0B88
bne _080A0BA8
ldr r0, _080A0BA0
ldr r1, _080A0BA4
- bl CopyString
+ bl StringCopy
b _080A0BD8
.align 2
_080A0BA0: .4byte 0x020231cc
@@ -329779,9 +328790,9 @@ _080A0BA8:
ldr r4, _080A0BE8
ldr r1, _080A0BEC
adds r0, r4, 0
- bl CopyString
+ bl StringCopy
adds r0, r4, 0
- bl sub_8006B34
+ bl StringGetLength
lsls r0, 24
lsrs r0, 24
subs r4, 0x2
@@ -329796,7 +328807,7 @@ _080A0BA8:
adds r1, r5, 0
movs r2, 0x1
movs r3, 0x2
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
_080A0BD8:
ldr r0, _080A0BF0
movs r1, 0x15
@@ -329846,7 +328857,7 @@ _080A0C2E:
bl itemid_get_item
adds r1, r0, 0
adds r0, r4, 0
- bl CopyString
+ bl StringCopy
b _080A0C68
.align 2
_080A0C40: .4byte 0x02018000
@@ -329856,7 +328867,7 @@ _080A0C48:
bne _080A0C60
ldr r0, _080A0C58
ldr r1, _080A0C5C
- bl CopyString
+ bl StringCopy
b _080A0C68
.align 2
_080A0C58: .4byte 0x020231cc
@@ -329954,7 +328965,7 @@ _080A0D14:
ldr r4, _080A0D54
adds r0, r4, 0
mov r1, r9
- bl ConvertNumToDecimalString3
+ bl ConvertIntToDecimalString
mov r1, r10
adds r1, 0x6
lsls r1, 24
@@ -330068,7 +329079,7 @@ sub_80A0DD0: ; 80A0DD0
adds r0, r1
ldr r1, [r0]
adds r0, r2, 0
- bl CopyString
+ bl StringCopy
adds r2, r0, 0
strb r5, [r2]
movs r0, 0x13
@@ -330118,7 +329129,7 @@ _080A0E54:
adds r0, r1
ldr r1, [r0]
adds r0, r2, 0
- bl CopyString
+ bl StringCopy
adds r2, r0, 0
movs r0, 0xFC
strb r0, [r2]
@@ -332252,7 +331263,7 @@ sub_80A1E9C: ; 80A1E9C
bl sub_80A1E58
adds r6, r0, 0
adds r1, r5, 0
- bl CopyString
+ bl StringCopy
adds r6, r0, 0
cmp r4, 0xFF
beq _080A1EEC
@@ -332395,7 +331406,7 @@ sub_80A1F98: ; 80A1F98
mov r9, r0
mov r1, r10
adds r3, r4, 0
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
str r7, [sp]
mov r0, r9
mov r1, r8
@@ -332464,14 +331475,14 @@ sub_80A203C: ; 80A203C
movs r1, 0x5
_080A2052:
mov r0, sp
- bl ConvertNumToDecimalString3
+ bl ConvertIntToDecimalString
adds r0, r4, 0
mov r1, sp
movs r2, 0xE
bl sub_80A1E9C
adds r4, r0, 0
ldr r1, _080A2074
- bl CopyString
+ bl StringCopy
adds r4, r0, 0
add sp, 0xC
pop {r4}
@@ -336801,7 +335812,7 @@ sub_80A4164: ; 80A4164
movs r4, 0x6
strb r4, [r0, 0x2]
adds r0, 0x3
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
pop {r4}
pop {r0}
bx r0
@@ -336880,7 +335891,7 @@ sub_80A41E0: ; 80A41E0
adds r0, r7, 0
movs r2, 0x2
movs r3, 0x2
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
mov r1, r8
strb r1, [r0]
strb r6, [r0, 0x1]
@@ -337436,7 +336447,7 @@ _080A4634:
ldr r3, _080A46F0
adds r1, r3
adds r0, r6, 0
- bl ConvertNumToDecimalString3
+ bl ConvertIntToDecimalString
adds r6, r0, 0
movs r0, 0xFC
strb r0, [r6]
@@ -340345,7 +339356,7 @@ sub_80A5DA0: ; 80A5DA0
adds r1, r4, 0
movs r2, 0
movs r3, 0x3
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
b _080A5DD8
.align 2
_080A5DC4: .4byte 0x020231cc
@@ -340355,7 +339366,7 @@ _080A5DCC:
adds r1, r4, 0
movs r2, 0
movs r3, 0x2
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
_080A5DD8:
ldr r0, _080A5DF4
bl sub_80A4DA4
@@ -340698,7 +339709,7 @@ DisplayCannotDismountBikeMessage: ; 80A607C
ldr r5, _080A60BC
ldr r1, _080A60C0
adds r0, r5, 0
- bl PrintSimple
+ bl StringExpandPlaceholders
bl sub_80A7590
ldr r2, _080A60C4
adds r0, r4, 0
@@ -340918,7 +339929,7 @@ _080A6254:
ldr r4, _080A628C
ldr r1, _080A6290
adds r0, r4, 0
- bl PrintSimple
+ bl StringExpandPlaceholders
bl sub_80A7590
ldr r2, _080A6294
adds r0, r5, 0
@@ -341070,7 +340081,7 @@ sub_80A6354: ; 80A6354
ldr r4, _080A63D8
ldr r1, _080A63DC
adds r0, r4, 0
- bl PrintSimple
+ bl StringExpandPlaceholders
ldr r2, _080A63E0
adds r0, r5, 0
adds r1, r4, 0
@@ -341090,7 +340101,7 @@ _080A63E4:
ldr r4, _080A6400
ldr r1, _080A6404
adds r0, r4, 0
- bl PrintSimple
+ bl StringExpandPlaceholders
ldr r2, _080A6408
adds r0, r5, 0
adds r1, r4, 0
@@ -341339,7 +340350,7 @@ sub_80A65AC: ; 80A65AC
ldr r4, _080A660C
ldr r1, _080A6610
adds r0, r4, 0
- bl PrintSimple
+ bl StringExpandPlaceholders
ldr r2, _080A6614
adds r0, r5, 0
adds r1, r4, 0
@@ -341475,11 +340486,11 @@ _080A66B4:
adds r0, r4, 0
movs r2, 0
movs r3, 0x6
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
ldr r4, _080A6738
ldr r1, _080A673C
adds r0, r4, 0
- bl PrintSimple
+ bl StringExpandPlaceholders
ldr r2, _080A6740
adds r0, r5, 0
adds r1, r4, 0
@@ -341610,7 +340621,7 @@ BuyMenuDisplayMessage: ; 80A67F4
adds r0, r6, 0
movs r2, 0
movs r3, 0x6
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
pop {r4-r6}
pop {r0}
bx r0
@@ -341953,7 +340964,7 @@ sub_80A6A84: ; 80A6A84
ldrsh r1, [r2, r3]
movs r2, 0
movs r3, 0x3
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
movs r0, 0x7
movs r1, 0x6
movs r2, 0xB
@@ -347161,10 +346172,10 @@ itemid_copy_name: ; 80A9224
bl GetBerryInfo
adds r1, r0, 0
adds r0, r4, 0
- bl CopyString
+ bl StringCopy
ldr r1, _080A9248
adds r0, r4, 0
- bl AppendString
+ bl StringAppend
b _080A9258
.align 2
_080A9248: .4byte gUnknown_0840E6D4
@@ -347172,7 +346183,7 @@ _080A924C:
bl itemid_get_item
adds r1, r0, 0
adds r0, r4, 0
- bl CopyString
+ bl StringCopy
_080A9258:
pop {r4}
pop {r0}
@@ -349373,12 +348384,12 @@ sub_80AA280: ; 80AA280
ldr r4, _080AA2EC
ldr r1, _080AA2F0
adds r0, r4, 0
- bl CopyString
+ bl StringCopy
lsls r1, r7, 6
ldr r0, _080AA2F4
adds r1, r0
adds r0, r4, 0
- bl AppendString
+ bl StringAppend
movs r5, 0
ldr r6, _080AA2F8
adds r0, r6, 0x1
@@ -349459,7 +348470,7 @@ sub_80AA340: ; 80AA340
adds r0, r4, 0
movs r2, 0x1
movs r3, 0x3
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
ldr r0, _080AA380
ldr r1, _080AA384
ldrb r3, [r1]
@@ -349493,7 +348504,7 @@ sub_80AA388: ; 80AA388
adds r0, r4, 0
movs r2, 0x1
movs r3, 0x3
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
ldr r0, _080AA3C8
ldr r1, _080AA3CC
ldrb r3, [r1, 0x2]
@@ -349527,7 +348538,7 @@ sub_80AA3D0: ; 80AA3D0
adds r0, r4, 0
movs r2, 0x1
movs r3, 0x3
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
ldr r0, _080AA410
ldr r1, _080AA414
ldrb r3, [r1, 0x4]
@@ -349561,7 +348572,7 @@ sub_80AA418: ; 80AA418
adds r0, r4, 0
movs r2, 0x1
movs r3, 0x3
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
ldr r0, _080AA458
ldr r1, _080AA45C
ldrb r3, [r1, 0x6]
@@ -349595,7 +348606,7 @@ sub_80AA460: ; 80AA460
adds r0, r4, 0
movs r2, 0x1
movs r3, 0x3
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
ldr r0, _080AA4A0
ldr r1, _080AA4A4
ldrb r3, [r1, 0x8]
@@ -349629,7 +348640,7 @@ sub_80AA4A8: ; 80AA4A8
adds r0, r4, 0
movs r2, 0x1
movs r3, 0x3
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
ldr r0, _080AA4E8
ldr r1, _080AA4EC
ldrb r3, [r1, 0xA]
@@ -349716,7 +348727,7 @@ sub_80AA4F0: ; 80AA4F0
ldrh r1, [r4]
movs r2, 0x2
movs r3, 0x3
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
adds r5, r6
lsls r5, 17
movs r0, 0xFA
@@ -349810,7 +348821,7 @@ sub_80AA614: ; 80AA614
adds r0, r4, 0
movs r2, 0x1
movs r3, 0x3
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
ldr r0, _080AA654
movs r1, 0xC
str r1, [sp]
@@ -350823,7 +349834,7 @@ sub_80AAD84: ; 80AAD84
str r0, [r4, 0x8]
ldr r0, [r4, 0x8]
mov r0, r9
- bl sub_8006B34
+ bl StringGetLength
lsls r0, 16
lsrs r7, r0, 16
cmp r7, 0x8
@@ -350992,7 +350003,7 @@ _080AAF08:
_080AAF12:
movs r2, 0
movs r3, 0x8
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
mov r0, sp
adds r1, r7, 0
adds r2, r6, 0
@@ -352509,7 +351520,7 @@ sub_80ABB70: ; 80ABB70
bne _080ABBD4
ldr r0, _080ABBCC
ldr r1, _080ABBD0
- bl CopyString
+ bl StringCopy
b _080ABBDC
.align 2
_080ABBB0: .4byte 0x030042a0
@@ -352524,7 +351535,7 @@ _080ABBD0: .4byte gUnknown_083CAF84
_080ABBD4:
ldr r0, _080ABC20
ldr r1, _080ABC24
- bl CopyString
+ bl StringCopy
_080ABBDC:
ldr r5, _080ABC20
ldr r0, _080ABC28
@@ -352536,7 +351547,7 @@ _080ABBDC:
ldr r4, _080ABC2C
adds r0, r4, 0
adds r1, r5, 0
- bl PrintSimple
+ bl StringExpandPlaceholders
ldr r0, _080ABC30
movs r2, 0xC2
lsls r2, 2
@@ -352760,7 +351771,7 @@ _080ABDA0:
add r0, sp, 0x8
ldr r1, _080ABE78
_080ABDC6:
- bl CopyString
+ bl StringCopy
adds r5, r0, 0
_080ABDCC:
movs r0, 0xD
@@ -352769,7 +351780,7 @@ _080ABDCC:
ldr r0, _080ABE7C
adds r1, r0
adds r0, r5, 0
- bl CopyString
+ bl StringCopy
lsls r1, r6, 2
adds r2, r1, r6
lsls r2, 18
@@ -352947,7 +351958,7 @@ _080ABF26:
bne _080ABF78
ldr r0, _080ABF70
ldr r1, _080ABF74
- bl CopyString
+ bl StringCopy
b _080ABF80
.align 2
_080ABF64: .4byte 0x03004210
@@ -352958,7 +351969,7 @@ _080ABF74: .4byte gUnknown_083CAF84
_080ABF78:
ldr r0, _080ABFC8
ldr r1, _080ABFCC
- bl CopyString
+ bl StringCopy
_080ABF80:
ldr r5, _080ABFC8
ldr r0, _080ABFD0
@@ -352970,7 +351981,7 @@ _080ABF80:
ldr r4, _080ABFD4
adds r0, r4, 0
adds r1, r5, 0
- bl PrintSimple
+ bl StringExpandPlaceholders
ldr r0, _080ABFD8
movs r2, 0xC2
lsls r2, 2
@@ -353740,7 +352751,7 @@ _080AC664:
lsls r1, r7, 6
ldr r2, _080AC694
adds r1, r2
- bl CopyString
+ bl StringCopy
ldrh r1, [r5, 0x6]
movs r0, 0xB1
lsls r0, 1
@@ -353752,7 +352763,7 @@ _080AC664:
muls r1, r2
ldr r2, _080AC69C
adds r1, r2
- bl CopyString
+ bl StringCopy
b _080AC6B0
.align 2
_080AC690: .4byte 0x020231cc
@@ -353766,12 +352777,12 @@ _080AC6A0:
lsls r1, 2
adds r1, r2
ldr r1, [r1]
- bl CopyString
+ bl StringCopy
_080AC6B0:
ldr r4, _080AC6E8
ldr r1, _080AC6EC
adds r0, r4, 0
- bl PrintSimple
+ bl StringExpandPlaceholders
ldr r0, _080AC6F0
movs r2, 0xC2
lsls r2, 2
@@ -354681,11 +353692,11 @@ _080ACE0A:
lsls r1, r7, 6
ldr r2, _080ACE50
adds r1, r2
- bl CopyString
+ bl StringCopy
ldr r4, _080ACE54
ldr r1, _080ACE58
adds r0, r4, 0
- bl PrintSimple
+ bl StringExpandPlaceholders
ldr r0, _080ACE5C
movs r2, 0xC2
lsls r2, 2
@@ -354823,11 +353834,11 @@ _080ACF48:
lsls r1, r7, 6
ldr r2, _080ACF94
adds r1, r2
- bl CopyString
+ bl StringCopy
ldr r4, _080ACF98
ldr r1, _080ACF9C
adds r0, r4, 0
- bl PrintSimple
+ bl StringExpandPlaceholders
ldr r0, _080ACFA0
movs r2, 0xC2
lsls r2, 2
@@ -354967,11 +353978,11 @@ _080AD070:
lsls r1, r7, 6
ldr r2, _080AD0D4
adds r1, r2
- bl CopyString
+ bl StringCopy
ldr r4, _080AD0D8
ldr r1, _080AD0DC
adds r0, r4, 0
- bl PrintSimple
+ bl StringExpandPlaceholders
ldr r0, _080AD0E0
movs r2, 0xC2
lsls r2, 2
@@ -355132,7 +354143,7 @@ _080AD1D0:
muls r1, r2
ldr r2, _080AD200
adds r1, r2
- bl CopyString
+ bl StringCopy
b _080AD21E
.align 2
_080AD1FC: .4byte 0x020233cc
@@ -355149,7 +354160,7 @@ _080AD204:
lsrs r1, 27
adds r1, r3
ldr r1, [r1]
- bl CopyString
+ bl StringCopy
_080AD21E:
lsls r0, r4, 24
cmp r0, 0
@@ -355171,7 +354182,7 @@ _080AD23A:
lsls r1, r7, 6
ldr r2, _080AD284
adds r1, r2
- bl CopyString
+ bl StringCopy
ldr r3, _080AD288
ldrb r0, [r3, 0x13]
lsls r1, r4, 24
@@ -355205,7 +354216,7 @@ _080AD290:
bge _080AD2A8
ldr r0, _080AD2A0
ldr r1, _080AD2A4
- bl PrintSimple
+ bl StringExpandPlaceholders
b _080AD2D0
.align 2
_080AD2A0: .4byte 0x020234cc
@@ -355219,7 +354230,7 @@ _080AD2A8:
bgt _080AD2C8
ldr r0, _080AD2C0
ldr r1, _080AD2C4
- bl PrintSimple
+ bl StringExpandPlaceholders
b _080AD2D0
.align 2
_080AD2C0: .4byte 0x020234cc
@@ -355227,7 +354238,7 @@ _080AD2C4: .4byte gUnknown_083CC0A0
_080AD2C8:
ldr r0, _080AD300
ldr r1, _080AD304
- bl PrintSimple
+ bl StringExpandPlaceholders
_080AD2D0:
ldr r0, _080AD308
ldr r1, _080AD300
@@ -355554,11 +354565,11 @@ _080AD53C:
lsls r1, 6
ldr r5, _080AD5B0
adds r1, r5
- bl CopyString
+ bl StringCopy
ldr r0, _080AD5B4
lsls r1, r7, 6
adds r1, r5
- bl CopyString
+ bl StringCopy
ldr r0, _080AD5B8
lsls r1, r7, 3
subs r1, r7
@@ -355570,11 +354581,11 @@ _080AD53C:
muls r1, r2
ldr r2, _080AD5BC
adds r1, r2
- bl CopyString
+ bl StringCopy
ldr r4, _080AD5C0
ldr r1, _080AD5C4
adds r0, r4, 0
- bl PrintSimple
+ bl StringExpandPlaceholders
ldr r0, _080AD5C8
movs r2, 0xC2
lsls r2, 2
@@ -355616,7 +354627,7 @@ _080AD5E0:
ldr r4, _080AD618
ldr r1, _080AD61C
adds r0, r4, 0
- bl PrintSimple
+ bl StringExpandPlaceholders
movs r2, 0xC2
lsls r2, 2
movs r0, 0xF
@@ -355677,18 +354688,18 @@ _080AD664:
lsls r1, r7, 6
ldr r2, _080AD6BC
adds r1, r2
- bl CopyString
+ bl StringCopy
ldr r0, _080AD6C0
ldrh r2, [r4, 0x6]
movs r1, 0xD
muls r1, r2
ldr r2, _080AD6C4
adds r1, r2
- bl CopyString
+ bl StringCopy
ldr r4, _080AD6C8
ldr r1, _080AD6CC
adds r0, r4, 0
- bl PrintSimple
+ bl StringExpandPlaceholders
ldr r0, _080AD6D0
movs r2, 0xC2
lsls r2, 2
@@ -355860,11 +354871,11 @@ _080AD7E8:
lsls r1, r7, 6
ldr r2, _080AD82C
adds r1, r2
- bl CopyString
+ bl StringCopy
ldr r4, _080AD830
ldr r1, _080AD834
adds r0, r4, 0
- bl PrintSimple
+ bl StringExpandPlaceholders
ldr r0, _080AD838
movs r2, 0xC2
lsls r2, 2
@@ -356355,14 +355366,14 @@ sub_80ADB88: ; 80ADB88
lsls r1, 6
ldr r2, _080ADBF8
adds r1, r2
- bl CopyString
+ bl StringCopy
ldr r6, _080ADBFC
ldr r0, _080ADC00
lsls r4, 2
adds r4, r0
ldr r1, [r4]
adds r0, r6, 0
- bl PrintSimple
+ bl StringExpandPlaceholders
ldr r0, _080ADC04
movs r2, 0xC2
lsls r2, 2
@@ -356650,7 +355661,7 @@ _080ADDBC:
ldr r4, _080ADE40
ldr r1, _080ADE44
adds r0, r4, 0
- bl PrintSimple
+ bl StringExpandPlaceholders
ldr r0, _080ADE48
movs r2, 0xC2
lsls r2, 2
@@ -356938,11 +355949,11 @@ _080AE028:
adds r0, r4, 0
movs r2, 0
movs r3, 0x1
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
movs r1, 0xFF
strb r1, [r0]
adds r1, r4, 0x2
- bl AppendString
+ bl StringAppend
_080AE04C:
pop {r4}
pop {r0}
@@ -357001,7 +356012,7 @@ sub_80AE098: ; 80AE098
ldr r6, _080AE0F0
mov r0, sp
adds r1, r6, 0
- bl CopyString
+ bl StringCopy
mov r0, sp
bl StripExtendedControlCodes
ldr r0, _080AE0F4
@@ -357077,7 +356088,7 @@ _080AE108:
mov r2, sp
bl PokemonGetField
mov r0, sp
- bl GetStringEnd_Limit7
+ bl StringGetEnd10
ldr r0, _080AE188
ldrb r1, [r0]
movs r0, 0x1
@@ -357633,11 +356644,11 @@ PutWindowTilemap: ; 80AE598
lsls r4, r2, 24
lsrs r4, 24
ldr r1, _080AE5B8
- bl CopyString
+ bl StringCopy
strb r4, [r0]
adds r0, 0x1
adds r1, r5, 0
- bl CopyString
+ bl StringCopy
pop {r4,r5}
pop {r1}
bx r1
@@ -357701,7 +356712,7 @@ sub_80AE5D4: ; 80AE5D4
adds r1, 0x8
adds r1, r2, r1
adds r0, r3, 0
- bl CopyString
+ bl StringCopy
ldr r0, _080AE670
ldr r1, _080AE660
ldr r2, _080AE674
@@ -357742,7 +356753,7 @@ _080AE67C:
ldr r0, _080AE6B8
adds r1, r0
adds r0, r3, 0
- bl CopyString
+ bl StringCopy
ldr r0, _080AE6BC
ldr r1, _080AE6C0
ldr r2, _080AE6C4
@@ -362996,7 +362007,7 @@ _080B0E08:
asrs r1, 16
movs r2, 0
movs r3, 0x4
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
ldr r0, _080B0EE4
adds r0, r4, r0
ldrb r0, [r0]
@@ -363052,7 +362063,7 @@ _080B0E78:
asrs r1, 16
movs r2, 0
movs r3, 0x4
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
ldr r0, _080B0EE4
adds r0, r4, r0
ldrb r1, [r0]
@@ -363862,7 +362873,7 @@ sub_80B146C: ; 80B146C
lsls r1, r4, 6
ldr r2, _080B14CC
adds r1, r2
- bl CopyString
+ bl StringCopy
ldr r0, _080B14D0
lsls r1, r4, 3
subs r1, r4
@@ -363874,7 +362885,7 @@ sub_80B146C: ; 80B146C
muls r1, r2
ldr r2, _080B14D8
adds r1, r2
- bl CopyString
+ bl StringCopy
ldr r2, _080B14DC
adds r0, r4, 0
adds r0, 0x70
@@ -363892,7 +362903,7 @@ sub_80B146C: ; 80B146C
bne _080B14E8
ldr r0, _080B14E0
ldr r1, _080B14E4
- bl CopyString
+ bl StringCopy
b _080B1538
.align 2
_080B14C8: .4byte 0x020231cc
@@ -363909,7 +362920,7 @@ _080B14E8:
bne _080B1500
ldr r0, _080B14F8
ldr r1, _080B14FC
- bl CopyString
+ bl StringCopy
b _080B1538
.align 2
_080B14F8: .4byte 0x020233cc
@@ -363920,7 +362931,7 @@ _080B1500:
bne _080B1518
ldr r0, _080B1510
ldr r1, _080B1514
- bl CopyString
+ bl StringCopy
b _080B1538
.align 2
_080B1510: .4byte 0x020233cc
@@ -363931,7 +362942,7 @@ _080B1518:
bne _080B1530
ldr r0, _080B1528
ldr r1, _080B152C
- bl CopyString
+ bl StringCopy
b _080B1538
.align 2
_080B1528: .4byte 0x020233cc
@@ -363939,7 +362950,7 @@ _080B152C: .4byte gUnknown_083CC299
_080B1530:
ldr r0, _080B1568
ldr r1, _080B156C
- bl CopyString
+ bl StringCopy
_080B1538:
ldr r4, _080B1570
ldr r1, _080B1574
@@ -363947,7 +362958,7 @@ _080B1538:
adds r0, r1
ldr r1, [r0]
adds r0, r4, 0
- bl PrintSimple
+ bl StringExpandPlaceholders
bl sub_80AF138
ldr r0, _080B1578
movs r2, 0xC2
@@ -364522,7 +363533,7 @@ sub_80B19D0: ; 80B19D0
sub sp, 0x18
ldr r1, _080B19F4
add r0, sp, 0x4
- bl CopyString
+ bl StringCopy
ldr r0, _080B19F8
movs r2, 0xAA
lsls r2, 2
@@ -366789,7 +365800,7 @@ _080B2B16:
adds r1, r5, 0x2
adds r1, r6, r1
str r2, [sp]
- bl CopyString
+ bl StringCopy
ldr r2, [sp]
ldr r0, _080B2BAC
adds r2, r0
@@ -366798,7 +365809,7 @@ _080B2B16:
adds r6, r5
adds r0, r4, 0
adds r1, r6, 0
- bl CopyString
+ bl StringCopy
mov r1, r9
cmp r1, 0xFF
beq _080B2BB8
@@ -366846,7 +365857,7 @@ _080B2BC4:
adds r1, r2, 0x2
adds r1, r4, r1
str r2, [sp]
- bl CopyString
+ bl StringCopy
ldr r0, _080B2C1C
ldrb r1, [r0]
movs r0, 0x1
@@ -366861,7 +365872,7 @@ _080B2BC4:
lsls r1, 2
ldr r2, _080B2C20
adds r1, r2
- bl CopyString
+ bl StringCopy
b _080B2C32
.align 2
_080B2C14: .4byte 0x02015de0
@@ -366874,7 +365885,7 @@ _080B2C24:
adds r1, r2, 0
adds r1, 0xD
adds r1, r4, r1
- bl CopyString
+ bl StringCopy
_080B2C32:
ldr r0, _080B2C48
strb r7, [r0, 0xA]
@@ -368445,7 +367456,7 @@ sub_80B37F8: ; 80B37F8
ldrsh r1, [r5, r2]
movs r2, 0x1
movs r3, 0x2
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
ldr r0, _080B3890
movs r1, 0x1
movs r2, 0xB
@@ -368574,7 +367585,7 @@ _080B395A:
mov r8, r0
adds r1, r6, r0
adds r0, r2, 0
- bl CopyString
+ bl StringCopy
ldr r5, _080B39A0
mov r0, r9
lsls r7, r0, 3
@@ -369016,7 +368027,7 @@ _080B3CF0:
ldr r4, _080B3D08
ldr r1, _080B3D0C
adds r0, r4, 0
- bl PrintSimple
+ bl StringExpandPlaceholders
ldr r2, _080B3D10
ldr r3, _080B3D14
adds r0, r5, 0
@@ -369199,17 +368210,17 @@ _080B3DEE:
ldrsh r1, [r5, r2]
movs r2, 0
movs r3, 0x2
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
ldr r0, _080B3EC4
mov r2, r8
ldr r1, [r2]
movs r2, 0
movs r3, 0x8
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
ldr r4, _080B3EC8
ldr r1, _080B3ECC
adds r0, r4, 0
- bl PrintSimple
+ bl StringExpandPlaceholders
ldr r2, _080B3ED0
ldr r3, _080B3ED4
adds r0, r6, 0
@@ -369671,7 +368682,7 @@ _080B41CE:
ldr r4, _080B427C
ldr r1, _080B4280
adds r0, r4, 0
- bl PrintSimple
+ bl StringExpandPlaceholders
ldr r2, _080B4284
ldr r3, _080B4288
adds r0, r7, 0
@@ -369736,18 +368747,18 @@ _080B42E0:
lsls r1, 5
adds r2, r4, 0x1
adds r1, r2
- bl CopyString
+ bl StringCopy
ldr r0, _080B431C
ldr r1, [r5]
movs r2, 0
movs r3, 0x8
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
ldrb r0, [r6, 0xC]
cmp r0, 0x1
bne _080B4328
ldr r0, _080B4320
ldr r1, _080B4324
- bl PrintSimple
+ bl StringExpandPlaceholders
b _080B4330
.align 2
_080B4318: .4byte 0x020231cc
@@ -369757,7 +368768,7 @@ _080B4324: .4byte gUnknown_0840ED01
_080B4328:
ldr r0, _080B4340
ldr r1, _080B4344
- bl PrintSimple
+ bl StringExpandPlaceholders
_080B4330:
ldr r1, _080B4340
ldr r2, _080B4348
@@ -373250,7 +372261,7 @@ NamingScreen_Init: ; 80B5D54
beq _080B5DB2
ldr r1, [r4, 0x38]
adds r0, r5, 0
- bl CopyString
+ bl StringCopy
_080B5DB2:
movs r0, 0x10
strh r0, [r6]
@@ -376430,7 +375441,7 @@ _080B74C4:
lsls r2, 24
lsrs r2, 24
adds r1, r4, 0
- bl CopyString_LimitN
+ bl StringCopyN
b _080B74F6
.align 2
_080B74E4: .4byte 0x02000000
@@ -376454,11 +375465,11 @@ sub_80B74FC: ; 80B74FC
ldr r0, _080B7528
ldr r1, _080B752C
ldr r1, [r1, 0x38]
- bl CopyString
+ bl StringCopy
ldr r4, _080B7530
ldr r1, _080B7534
adds r0, r4, 0
- bl PrintSimple
+ bl StringExpandPlaceholders
ldr r0, _080B7538
bl sub_8071E2C
bl sub_8071FFC
@@ -377003,7 +376014,7 @@ sub_80B78F8: ; 80B78F8
muls r1, r2
ldr r2, _080B791C
adds r1, r2
- bl CopyString
+ bl StringCopy
pop {r0}
bx r0
.align 2
@@ -377068,7 +376079,7 @@ sub_80B7960: ; 80B7960
adds r0, 0x6
ldr r4, _080B79A0
adds r1, r4, 0
- bl CopyString
+ bl StringCopy
ldr r0, _080B79A4
bl sub_8071E2C
ldr r0, _080B799C
@@ -377209,7 +376220,7 @@ _080B7A6C:
strb r0, [r3]
adds r3, 0x1
adds r0, r3, 0
- bl ConvertNumToDecimalString3
+ bl ConvertIntToDecimalString
adds r3, r0, 0
movs r0, 0xFC
strb r0, [r3]
@@ -377289,7 +376300,7 @@ sub_80B7AEC: ; 80B7AEC
adds r6, 0x1
adds r0, r6, 0
adds r1, r3, 0
- bl ConvertNumToDecimalString3
+ bl ConvertIntToDecimalString
adds r6, r0, 0
mov r0, sp
adds r1, r4, 0
@@ -381038,7 +380049,7 @@ _080B9734:
adds r0, r4, 0
movs r2, 0x2
movs r3, 0x2
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
movs r0, 0x5
b _080B97D4
.align 2
@@ -382133,7 +381144,7 @@ sub_80B9F3C: ; 80B9F3C
bl VarSet
ldr r0, _080B9FA8
ldr r1, _080B9FAC
- bl CopyString
+ bl StringCopy
ldrh r1, [r4]
ldr r0, _080B9FB0
cmp r1, r0
@@ -382167,7 +381178,7 @@ _080B9FC8:
bl VarSet
ldr r0, _080B9FF0
ldr r1, _080B9FF4
- bl CopyString
+ bl StringCopy
b _080BA000
.align 2
_080B9FEC: .4byte 0x00004001
@@ -385320,7 +384331,7 @@ _080BB8E2:
adds r0, r5, 0
adds r1, r6, 0
adds r2, r4, 0
- bl CopyString_LimitN
+ bl StringCopyN
ldrb r0, [r6, 0x8]
subs r5, 0x1
movs r1, 0x1
@@ -386408,12 +385419,12 @@ sub_80BC190: ; 80BC190
lsrs r2, 24
adds r0, r5, 0
adds r1, r4, 0
- bl CopyString_LimitN
+ bl StringCopyN
movs r1, 0xFF
strb r1, [r0]
ldr r1, _080BC1CC
adds r0, r5, 0
- bl AppendString
+ bl StringAppend
pop {r4,r5}
pop {r1}
bx r1
@@ -386482,7 +385493,7 @@ sub_80BC224: ; 80BC224
lsrs r2, 24
adds r0, r5, 0
adds r1, r4, 0
- bl CopyString_LimitN
+ bl StringCopyN
movs r1, 0xFF
strb r1, [r0]
pop {r4,r5}
@@ -387558,7 +386569,7 @@ sub_80BCA84: ; 80BCA84
ldr r4, _080BCAE0
ldr r1, _080BCAE4
adds r0, r4, 0
- bl PrintSimple
+ bl StringExpandPlaceholders
ldr r2, _080BCAE8
adds r0, r5, 0
adds r1, r4, 0
@@ -390360,11 +389371,11 @@ _080BDFDE:
strb r0, [r5, 0xF]
adds r0, r3, 0
mov r1, r8
- bl CopyString
+ bl StringCopy
ldr r4, _080BE024
adds r0, r6, 0
adds r1, r4, 0
- bl CopyString
+ bl StringCopy
subs r4, 0x2A
ldrh r0, [r4, 0x28]
strh r0, [r5, 0x10]
@@ -390500,7 +389511,7 @@ _080BE0A2:
adds r0, r4, 0
adds r0, 0x13
ldr r1, _080BE134
- bl CopyString
+ bl StringCopy
adds r0, r4, 0
bl sub_80BE138
movs r0, 0x2
@@ -390590,13 +389601,13 @@ sub_80BE188: ; 80BE188
adds r0, r4, 0
adds r0, 0x16
ldr r1, _080BE238
- bl CopyString
+ bl StringCopy
adds r5, r4, 0
adds r5, 0x8
adds r1, r6, 0
adds r1, 0x8
adds r0, r5, 0
- bl CopyString
+ bl StringCopy
ldrb r0, [r6, 0x13]
lsls r0, 29
lsrs r0, 29
@@ -390778,12 +389789,12 @@ sub_80BE320: ; 80BE320
adds r0, r6, 0x2
ldr r4, _080BE38C
adds r1, r4, 0
- bl CopyString
+ bl StringCopy
adds r0, r6, 0
adds r0, 0xC
ldr r2, _080BE390
adds r1, r4, r2
- bl CopyString
+ bl StringCopy
movs r1, 0x90
lsls r1, 3
adds r0, r4, r1
@@ -390902,7 +389913,7 @@ _080BE420:
adds r0, r5, 0
adds r0, 0x13
ldr r1, _080BE474
- bl CopyString
+ bl StringCopy
adds r0, r5, 0
bl sub_80BE138
movs r0, 0x2
@@ -390945,13 +389956,13 @@ sub_80BE478: ; 80BE478
ldr r1, _080BE564
mov r9, r1
mov r0, r9
- bl sub_8006B34
+ bl StringGetLength
lsls r0, 16
lsrs r0, 16
cmp r0, 0x1
bls _080BE548
adds r0, r4, 0
- bl sub_8006B34
+ bl StringGetLength
lsls r0, 16
lsrs r0, 16
cmp r0, 0x1
@@ -390994,7 +390005,7 @@ sub_80BE478: ; 80BE478
adds r0, r4, 0
adds r0, 0xF
mov r1, r9
- bl CopyString
+ bl StringCopy
mov r1, r8
ldrh r0, [r1]
muls r0, r7
@@ -391119,7 +390130,7 @@ sub_80BE5FC: ; 80BE5FC
adds r0, r4, 0
adds r0, 0x10
ldr r1, _080BE654
- bl CopyString
+ bl StringCopy
bl sub_810F87C
lsls r0, 24
lsrs r0, 24
@@ -391165,7 +390176,7 @@ sub_80BE65C: ; 80BE65C
adds r0, r4, 0
adds r0, 0x10
ldr r1, _080BE69C
- bl CopyString
+ bl StringCopy
strh r6, [r4, 0x2]
adds r0, r4, 0
bl sub_80BE160
@@ -391228,7 +390239,7 @@ sub_80BE6A0: ; 80BE6A0
strb r1, [r4, 0x4]
adds r0, r4, 0x5
ldr r1, _080BE770
- bl CopyString
+ bl StringCopy
bl sub_810F87C
lsls r0, 24
lsrs r0, 24
@@ -391631,7 +390642,7 @@ sub_80BE9D4: ; 80BE9D4
adds r0, r4, 0
adds r0, 0x13
ldr r1, _080BEA4C
- bl CopyString
+ bl StringCopy
adds r0, r4, 0
bl sub_80BE138
movs r0, 0x2
@@ -391735,7 +390746,7 @@ sub_80BEA88: ; 80BEA88
adds r0, r4, 0
adds r0, 0x13
ldr r1, _080BEB1C
- bl CopyString
+ bl StringCopy
adds r0, r4, 0
bl sub_80BE138
movs r0, 0x2
@@ -392054,7 +391065,7 @@ _080BED5C:
ldr r0, _080BED90
movs r2, 0
movs r3, 0x1
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
ldr r0, _080BED94
adds r1, r4, r0
movs r0, 0
@@ -392312,7 +391323,7 @@ _080BEF34:
ldr r0, [r0]
ldr r1, _080BEF4C
ldr r1, [r1, 0x14]
- bl CopyString
+ bl StringCopy
b _080BEF98
.align 2
_080BEF48: .4byte gUnknown_083D1464
@@ -392324,7 +391335,7 @@ _080BEF50:
ldr r0, [r0]
ldr r1, _080BEF68
ldr r1, [r1, 0x18]
- bl CopyString
+ bl StringCopy
b _080BEF98
.align 2
_080BEF64: .4byte gUnknown_083D1464
@@ -392336,7 +391347,7 @@ _080BEF6C:
ldr r0, [r0]
ldr r1, _080BEF84
ldr r1, [r1, 0x1C]
- bl CopyString
+ bl StringCopy
b _080BEF98
.align 2
_080BEF80: .4byte gUnknown_083D1464
@@ -392348,7 +391359,7 @@ _080BEF88:
ldr r0, [r0]
ldr r1, _080BEFA0
ldr r1, [r1, 0x20]
- bl CopyString
+ bl StringCopy
_080BEF98:
pop {r0}
bx r0
@@ -392387,7 +391398,7 @@ _080BEFD4:
ldr r0, [r0]
ldr r1, _080BEFEC
ldr r1, [r1]
- bl CopyString
+ bl StringCopy
b _080BF054
.align 2
_080BEFE8: .4byte gUnknown_083D1464
@@ -392399,7 +391410,7 @@ _080BEFF0:
ldr r0, [r0]
ldr r1, _080BF008
ldr r1, [r1, 0x4]
- bl CopyString
+ bl StringCopy
b _080BF054
.align 2
_080BF004: .4byte gUnknown_083D1464
@@ -392411,7 +391422,7 @@ _080BF00C:
ldr r0, [r0]
ldr r1, _080BF024
ldr r1, [r1, 0x8]
- bl CopyString
+ bl StringCopy
b _080BF054
.align 2
_080BF020: .4byte gUnknown_083D1464
@@ -392423,7 +391434,7 @@ _080BF028:
ldr r0, [r0]
ldr r1, _080BF040
ldr r1, [r1, 0xC]
- bl CopyString
+ bl StringCopy
b _080BF054
.align 2
_080BF03C: .4byte gUnknown_083D1464
@@ -392435,7 +391446,7 @@ _080BF044:
ldr r0, [r0]
ldr r1, _080BF05C
ldr r1, [r1, 0x10]
- bl CopyString
+ bl StringCopy
_080BF054:
pop {r0}
bx r0
@@ -392484,7 +391495,7 @@ sub_80BF088: ; 80BF088
lsrs r3, 24
adds r1, r5, 0
movs r2, 0
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
pop {r4,r5}
pop {r0}
bx r0
@@ -392853,7 +391864,7 @@ sub_80BF334: ; 80BF334
ldr r0, _080BF398
adds r1, r0
adds r0, r4, 0
- bl CopyString
+ bl StringCopy
ldr r0, _080BF39C
movs r1, 0
ldrsb r1, [r0, r1]
@@ -392932,7 +391943,7 @@ sub_80BF3DC: ; 80BF3DC
ldr r0, _080BF45C
adds r1, r0
adds r0, r6, 0
- bl CopyString
+ bl StringCopy
bl sub_810F87C
lsls r0, 24
lsrs r0, 24
@@ -392943,7 +391954,7 @@ sub_80BF3DC: ; 80BF3DC
adds r2, r4, 0
bl PokemonGetField
adds r0, r4, 0
- bl GetStringEnd_Limit7
+ bl StringGetEnd10
ldr r0, _080BF464
movs r1, 0
ldrsb r1, [r0, r1]
@@ -393247,7 +392258,7 @@ sub_80BF638: ; 80BF638
muls r1, r5
ldr r2, _080BF670
adds r1, r2
- bl CopyString
+ bl StringCopy
adds r0, r5, 0
pop {r4,r5}
pop {r1}
@@ -393539,7 +392550,7 @@ _080BF844:
ldr r4, [sp, 0x20]
adds r4, 0xF
adds r0, r4, 0
- bl sub_8006B34
+ bl StringGetLength
lsls r0, 16
lsrs r2, r0, 16
cmp r6, 0
@@ -393581,7 +392592,7 @@ _080BF8A6:
ldr r4, [sp, 0x20]
adds r4, 0x4
adds r0, r4, 0
- bl sub_8006B34
+ bl StringGetLength
lsls r0, 16
lsrs r2, r0, 16
cmp r6, 0
@@ -393622,7 +392633,7 @@ _080BF8F4:
muls r4, r0
ldr r7, _080BF910
adds r0, r4, r7
- bl sub_8006B34
+ bl StringGetLength
lsls r0, 16
lsrs r2, r0, 16
cmp r6, 0
@@ -393678,7 +392689,7 @@ _080BF954:
adds r1, r0
ldr r0, [r1]
mov r1, sp
- bl CopyString
+ bl StringCopy
add sp, 0x4
pop {r3}
mov r8, r3
@@ -393881,7 +392892,7 @@ sub_80BFAE0: ; 80BFAE0
adds r2, r4, 0
bl PokemonGetField
adds r0, r4, 0
- bl GetStringEnd_Limit7
+ bl StringGetEnd10
pop {r4}
pop {r0}
bx r0
@@ -394056,7 +393067,7 @@ GetMomOrDadStringForTVMessage: ; 80BFC10
bne _080BFC6C
ldr r0, _080BFC48
ldr r1, _080BFC4C
- bl CopyString
+ bl StringCopy
ldr r0, _080BFC50
movs r1, 0x1
bl VarSet
@@ -394074,7 +393085,7 @@ _080BFC54:
bne _080BFC6C
ldr r0, _080BFCB4
ldr r1, _080BFCB8
- bl CopyString
+ bl StringCopy
ldr r0, _080BFCBC
movs r1, 0x1
bl VarSet
@@ -394109,7 +393120,7 @@ _080BFC6C:
_080BFCAA:
ldr r0, _080BFCB4
ldr r1, _080BFCB8
- bl CopyString
+ bl StringCopy
b _080BFD10
.align 2
_080BFCB4: .4byte 0x020231cc
@@ -394118,7 +393129,7 @@ _080BFCBC: .4byte 0x00004003
_080BFCC0:
ldr r0, _080BFCCC
ldr r1, _080BFCD0
- bl CopyString
+ bl StringCopy
b _080BFD10
.align 2
_080BFCCC: .4byte 0x020231cc
@@ -394133,7 +393144,7 @@ _080BFCD4:
beq _080BFD00
ldr r0, _080BFCF8
ldr r1, _080BFCFC
- bl CopyString
+ bl StringCopy
adds r0, r4, 0
movs r1, 0x1
bl VarSet
@@ -394144,7 +393155,7 @@ _080BFCFC: .4byte gUnknown_0840FF36
_080BFD00:
ldr r0, _080BFD18
ldr r1, _080BFD1C
- bl CopyString
+ bl StringCopy
adds r0, r4, 0
movs r1, 0x2
bl VarSet
@@ -395679,7 +394690,7 @@ sub_80C08FC: ; 80C08FC
adds r5, r0, 0
lsls r4, r2, 24
lsrs r4, 24
- bl CopyString
+ bl StringCopy
cmp r4, 0x1
bhi _080C0914
adds r0, r5, 0
@@ -395778,7 +394789,7 @@ _080C09D8:
muls r1, r2
ldr r2, _080C0A08
adds r1, r2
- bl CopyString
+ bl StringCopy
ldr r0, _080C0A0C
adds r1, r4, 0
adds r1, 0x8
@@ -395898,14 +394909,14 @@ _080C0AEC:
muls r1, r2
ldr r2, _080C0B20
adds r1, r2
- bl CopyString
+ bl StringCopy
ldr r0, _080C0B24
ldrh r2, [r4, 0x14]
movs r1, 0xD
muls r1, r2
ldr r2, _080C0B28
adds r1, r2
- bl CopyString
+ bl StringCopy
ldr r0, _080C0B2C
ldrh r1, [r4, 0x6]
bl sub_80EB3FC
@@ -395931,7 +394942,7 @@ _080C0B34:
muls r1, r2
ldr r2, _080C0B60
adds r1, r2
- bl CopyString
+ bl StringCopy
bl TVShowDone
b _080C0B7A
.align 2
@@ -395945,7 +394956,7 @@ _080C0B64:
muls r1, r2
ldr r2, _080C0B90
adds r1, r2
- bl CopyString
+ bl StringCopy
_080C0B74:
ldr r1, _080C0B94
movs r0, 0x2
@@ -396026,7 +395037,7 @@ _080C0C18:
muls r1, r2
ldr r2, _080C0C48
adds r1, r2
- bl CopyString
+ bl StringCopy
ldrh r0, [r4, 0x16]
cmp r0, 0x6
bls _080C0C50
@@ -396098,7 +395109,7 @@ _080C0CB0:
muls r1, r2
ldr r2, _080C0CD8
adds r1, r2
- bl CopyString
+ bl StringCopy
b _080C0CA2
.align 2
_080C0CD0: .4byte 0x020231cc
@@ -396116,7 +395127,7 @@ _080C0CDC:
muls r1, r2
ldr r2, _080C0D10
adds r1, r2
- bl CopyString
+ bl StringCopy
ldrb r0, [r4, 0x1B]
cmp r0, 0
bne _080C0D18
@@ -396222,7 +395233,7 @@ _080C0DC0:
muls r1, r2
ldr r2, _080C0DF8
adds r1, r2
- bl CopyString
+ bl StringCopy
bl TVShowDone
_080C0DDE:
ldr r0, _080C0DFC
@@ -396325,7 +395336,7 @@ _080C0EB0:
bl itemid_get_item
adds r1, r0, 0
adds r0, r4, 0
- bl CopyString
+ bl StringCopy
ldrh r1, [r5, 0xC]
movs r0, 0x2
bl sub_80BF088
@@ -396382,7 +395393,7 @@ _080C0F34:
bl itemid_get_item
adds r1, r0, 0
adds r0, r4, 0
- bl CopyString
+ bl StringCopy
ldrh r1, [r5, 0xE]
movs r0, 0x2
bl sub_80BF088
@@ -396402,7 +395413,7 @@ _080C0F64:
bl itemid_get_item
adds r1, r0, 0
adds r0, r4, 0
- bl CopyString
+ bl StringCopy
ldrh r1, [r5, 0x10]
movs r0, 0x2
bl sub_80BF088
@@ -396452,7 +395463,7 @@ _080C0FC0:
bl itemid_get_item
adds r1, r0, 0
adds r0, r4, 0
- bl CopyString
+ bl StringCopy
ldrb r0, [r5, 0x2]
cmp r0, 0x1
bne _080C0FF8
@@ -396558,7 +395569,7 @@ _080C10C0:
muls r1, r2
ldr r2, _080C10FC
adds r1, r2
- bl CopyString
+ bl StringCopy
ldr r0, _080C1100
adds r1, r6, 0x4
ldrb r2, [r6, 0x1F]
@@ -396764,7 +395775,7 @@ _080C127C:
ldr r0, _080C12CC
adds r1, r0
adds r0, r4, 0
- bl CopyString
+ bl StringCopy
ldrh r0, [r6, 0x2]
str r0, [sp]
str r6, [sp, 0x4]
@@ -396838,7 +395849,7 @@ _080C1314:
ldr r0, _080C1364
adds r1, r0
adds r0, r4, 0
- bl CopyString
+ bl StringCopy
_080C1354:
ldr r1, _080C1368
movs r0, 0x12
@@ -396936,7 +395947,7 @@ _080C141C:
muls r1, r2
ldr r2, _080C1458
adds r1, r2
- bl CopyString
+ bl StringCopy
ldr r0, _080C145C
adds r1, r5, 0x4
ldrb r2, [r5, 0x3]
@@ -396971,7 +395982,7 @@ _080C1476:
bl itemid_get_item
adds r1, r0, 0
adds r0, r4, 0
- bl CopyString
+ bl StringCopy
ldrb r1, [r5, 0x12]
movs r0, 0x2
bl sub_80BF088
@@ -397004,7 +396015,7 @@ _080C14B0:
muls r1, r2
ldr r2, _080C14E0
adds r1, r2
- bl CopyString
+ bl StringCopy
ldr r0, _080C14E4
adds r1, r5, 0x4
ldrb r2, [r5, 0x3]
@@ -397031,7 +396042,7 @@ _080C14EE:
muls r1, r2
ldr r2, _080C151C
adds r1, r2
- bl CopyString
+ bl StringCopy
_080C150A:
ldr r1, _080C1520
movs r0, 0x6
@@ -397054,7 +396065,7 @@ _080C1524:
muls r1, r2
ldr r2, _080C156C
adds r1, r2
- bl CopyString
+ bl StringCopy
ldr r0, _080C1570
adds r1, r5, 0x4
ldrb r2, [r5, 0x3]
@@ -397083,7 +396094,7 @@ _080C1578:
muls r1, r4
ldr r2, _080C15A0
adds r1, r2
- bl CopyString
+ bl StringCopy
ldr r0, _080C15A4
adds r1, r5, 0x4
ldrb r2, [r5, 0x3]
@@ -397103,7 +396114,7 @@ _080C15A8:
muls r1, r4
ldr r2, _080C15CC
adds r1, r2
- bl CopyString
+ bl StringCopy
ldr r0, _080C15D0
adds r1, r5, 0x4
ldrb r2, [r5, 0x3]
@@ -397183,7 +396194,7 @@ _080C1650:
muls r1, r2
ldr r2, _080C167C
adds r1, r2
- bl CopyString
+ bl StringCopy
ldr r1, _080C1680
movs r0, 0x1
strb r0, [r1]
@@ -397209,7 +396220,7 @@ _080C1684:
muls r1, r2
ldr r2, _080C16C4
adds r1, r2
- bl CopyString
+ bl StringCopy
ldrb r0, [r4, 0x11]
cmp r0, 0x1
bne _080C16CC
@@ -397386,7 +396397,7 @@ _080C1864:
muls r1, r2
ldr r2, _080C1890
adds r1, r2
- bl CopyString
+ bl StringCopy
ldr r1, _080C1894
movs r0, 0x32
strb r0, [r1]
@@ -397691,7 +396702,7 @@ _080C1B46:
muls r1, r2
ldr r2, _080C1B80
adds r1, r2
- bl CopyString
+ bl StringCopy
ldr r0, _080C1B84
adds r1, r4, 0
adds r1, 0x10
@@ -397718,7 +396729,7 @@ _080C1B88:
muls r1, r2
ldr r2, _080C1BB8
adds r1, r2
- bl CopyString
+ bl StringCopy
ldr r0, _080C1BBC
ldrh r1, [r4, 0x1C]
bl sub_80EB3FC
@@ -397779,7 +396790,7 @@ DoTVShowPokemonNewsMassOutbreak: ; 80C1BF8
muls r1, r2
ldr r2, _080C1C50
adds r1, r2
- bl CopyString
+ bl StringCopy
bl TVShowDone
bl StartMassOutbreak
ldr r1, _080C1C54
@@ -397922,7 +396933,7 @@ _080C1D44:
muls r1, r6
ldr r5, _080C1D94
adds r1, r5
- bl CopyString
+ bl StringCopy
ldr r0, _080C1D98
ldr r2, _080C1D9C
adds r1, r4, r2
@@ -397931,14 +396942,14 @@ _080C1D44:
muls r1, r2
ldr r2, _080C1DA0
adds r1, r2
- bl CopyString
+ bl StringCopy
ldr r0, _080C1DA4
ldr r1, _080C1DA8
adds r4, r1
ldrh r1, [r4]
muls r1, r6
adds r1, r5
- bl CopyString
+ bl StringCopy
ldr r1, _080C1DAC
movs r0, 0x8
strb r0, [r1]
@@ -397973,14 +396984,14 @@ _080C1DB6:
muls r1, r6
ldr r5, _080C1E20
adds r1, r5
- bl CopyString
+ bl StringCopy
ldr r0, _080C1E24
ldr r1, _080C1E28
adds r4, r1
ldrh r1, [r4]
muls r1, r6
adds r1, r5
- bl CopyString
+ bl StringCopy
ldr r1, _080C1E2C
movs r0, 0x1
strh r0, [r1]
@@ -398062,7 +397073,7 @@ _080C1E84:
muls r1, r2
ldr r2, _080C1EB8
adds r1, r2
- bl CopyString
+ bl StringCopy
ldrb r1, [r4, 0x3]
movs r0, 0x2
bl sub_80BF088
@@ -398084,7 +397095,7 @@ _080C1EBC:
muls r1, r2
ldr r2, _080C1F00
adds r1, r2
- bl CopyString
+ bl StringCopy
ldrb r1, [r4, 0x2]
movs r0, 0x2
bl sub_80BF088
@@ -398160,7 +397171,7 @@ _080C1F6C:
muls r1, r2
ldr r2, _080C1F88
adds r1, r2
- bl CopyString
+ bl StringCopy
movs r0, 0x2
strb r0, [r6]
b _080C1FB6
@@ -398183,7 +397194,7 @@ _080C1F8C:
muls r1, r2
ldr r2, _080C1FD4
adds r1, r2
- bl CopyString
+ bl StringCopy
bl TVShowDone
_080C1FB6:
ldr r0, _080C1FD8
@@ -398517,7 +397528,7 @@ sub_80C226C: ; 80C226C
bne _080C2294
ldr r0, _080C228C
ldr r1, _080C2290
- bl CopyString
+ bl StringCopy
adds r2, r0, 0
b _080C2296
.align 2
@@ -398538,7 +397549,7 @@ _080C2296:
ldr r7, _080C22EC
adds r1, r6, r7
adds r0, r2, 0
- bl CopyString
+ bl StringCopy
adds r2, r0, 0
strb r4, [r2]
movs r0, 0x13
@@ -398548,7 +397559,7 @@ _080C2296:
adds r2, 0x3
ldr r1, _080C22F0
adds r0, r2, 0
- bl CopyString
+ bl StringCopy
adds r2, r0, 0
ldr r0, _080C22F4
ldrb r1, [r0]
@@ -398562,7 +397573,7 @@ _080C2296:
ldr r0, _080C22F8
adds r1, r0
adds r0, r2, 0
- bl CopyString
+ bl StringCopy
b _080C230A
.align 2
_080C22E8: .4byte 0x020238cc
@@ -398575,7 +397586,7 @@ _080C22FC:
adds r1, 0xB
adds r1, r6, r1
adds r0, r2, 0
- bl CopyString
+ bl StringCopy
lsls r4, r5, 3
_080C230A:
ldr r0, _080C2334
@@ -399427,7 +398438,7 @@ _080C29D4:
ldr r0, _080C2A00
adds r1, r0
adds r0, r3, 0
- bl CopyString
+ bl StringCopy
lsls r4, 6
b _080C2A10
.align 2
@@ -399440,15 +398451,15 @@ _080C2A04:
ldr r1, _080C2A54
adds r1, r4, r1
adds r0, r3, 0
- bl CopyString
+ bl StringCopy
_080C2A10:
ldr r0, _080C2A58
ldr r1, _080C2A5C
adds r1, r4, r1
- bl CopyString
+ bl StringCopy
ldr r1, _080C2A60
mov r0, sp
- bl PrintSimple
+ bl StringExpandPlaceholders
ldr r0, _080C2A64
ldrb r1, [r0]
mov r0, sp
@@ -400435,7 +399446,7 @@ _080C31CE:
ldr r2, _080C32D4
ldr r1, _080C32D8
adds r0, r2, 0
- bl CopyString
+ bl StringCopy
adds r2, r0, 0
mvns r0, r5
adds r1, r0, 0x1
@@ -400460,7 +399471,7 @@ _080C3218:
lsrs r5, r6, 24
adds r0, r2, 0
mov r1, r9
- bl CopyString
+ bl StringCopy
adds r2, r0, 0
movs r0, 0xFC
strb r0, [r2]
@@ -400757,7 +399768,7 @@ _080C34A8: .4byte 0x02018000
thumb_func_start sub_80C34AC
sub_80C34AC: ; 80C34AC
push {lr}
- bl sub_8006B34
+ bl StringGetLength
lsls r0, 16
lsrs r0, 16
lsls r1, r0, 1
@@ -403078,7 +402089,7 @@ _080C4670: .4byte 0x0203869e
sub_80C4674: ; 80C4674
push {r4,lr}
adds r4, r0, 0
- bl CopyString
+ bl StringCopy
ldrb r0, [r4]
cmp r0, 0xFC
bne _080C4690
@@ -403104,7 +402115,7 @@ sub_80C4698: ; 80C4698
ldr r0, _080C46E0
adds r1, r0
adds r0, r5, 0
- bl CopyString
+ bl StringCopy
ldr r0, _080C46E4
ldrb r1, [r0]
movs r0, 0x1
@@ -405281,7 +404292,7 @@ sub_80C56DC: ; 80C56DC
adds r2, r5, 0
bl PokemonGetField
adds r0, r5, 0
- bl GetStringEnd_Limit7
+ bl StringGetEnd10
add sp, 0x4
pop {r4,r5}
pop {r0}
@@ -405706,10 +404717,10 @@ _080C5A32:
adds r0, r6, 0
movs r2, 0
movs r3, 0x8
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
adds r6, r0, 0
mov r1, sp
- bl AppendString
+ bl StringAppend
adds r6, r0, 0
adds r0, r5, 0
movs r1, 0xA
@@ -405718,7 +404729,7 @@ _080C5A32:
adds r0, r6, 0
movs r2, 0
movs r3, 0x1
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
add sp, 0x4
pop {r4-r6}
pop {r0}
@@ -405820,7 +404831,7 @@ sub_80C5B1C: ; 80C5B1C
muls r1, r4
ldr r2, _080C5B60
adds r1, r2
- bl CopyString
+ bl StringCopy
ldrh r1, [r5]
movs r0, 0x81
lsls r0, 8
@@ -405828,7 +404839,7 @@ sub_80C5B1C: ; 80C5B1C
bne _080C5B6C
ldr r0, _080C5B64
ldr r1, _080C5B68
- bl CopyString
+ bl StringCopy
b _080C5B74
.align 2
_080C5B58: .4byte 0x020233cc
@@ -405839,7 +404850,7 @@ _080C5B68: .4byte gUnknown_0842C9E1
_080C5B6C:
ldr r0, _080C5B7C
ldr r1, _080C5B80
- bl CopyString
+ bl StringCopy
_080C5B74:
pop {r4,r5}
pop {r0}
@@ -408393,10 +407404,10 @@ _080C6F74:
movs r1, 0x64
movs r2, 0
movs r3, 0x3
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
ldr r0, _080C6FA4
ldr r1, _080C6FA8
- bl CopyString
+ bl StringCopy
ldr r1, _080C6FAC
movs r0, 0
b _080C6FF8
@@ -408411,10 +407422,10 @@ _080C6FB0:
movs r1, 0x32
movs r2, 0
movs r3, 0x2
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
ldr r0, _080C6FD0
ldr r1, _080C6FD4
- bl CopyString
+ bl StringCopy
ldr r1, _080C6FD8
movs r0, 0
b _080C6FF8
@@ -410975,7 +409986,7 @@ _080C8302:
adds r0, r1
ldr r1, [r0]
ldr r0, _080C8354
- bl CopyString
+ bl StringCopy
b _080C836A
.align 2
_080C8344: .4byte 0x02025734
@@ -411258,7 +410269,7 @@ sub_80C853C: ; 80C853C
ldrb r1, [r1, 0x5]
movs r2, 0x2
movs r3, 0x3
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
movs r0, 0x1
b _080C8576
.align 2
@@ -411449,7 +410460,7 @@ sub_80C86A0: ; 80C86A0
b _080C872C
_080C86B6:
adds r0, r4, 0
- bl sub_8006B34
+ bl StringGetLength
lsls r0, 16
lsrs r0, 16
cmp r0, 0x5
@@ -412701,7 +411712,7 @@ sub_80C9098: ; 80C9098
lsrs r4, 24
ldr r5, _080C90CC
adds r0, r5, 0
- bl PrintSimple
+ bl StringExpandPlaceholders
cmp r4, 0
bne _080C90D4
movs r0, 0
@@ -414125,11 +413136,11 @@ ItemUseOutOfBattle_CoinCase: ; 80C9B38
adds r0, r4, 0
movs r2, 0
movs r3, 0x4
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
ldr r4, _080C9B90
ldr r1, _080C9B94
adds r0, r4, 0
- bl PrintSimple
+ bl StringExpandPlaceholders
ldr r1, _080C9B98
lsls r0, r5, 2
adds r0, r5
@@ -414634,11 +413645,11 @@ _080C9F2A:
ldr r0, _080C9F70
adds r1, r0
adds r0, r4, 0
- bl CopyString
+ bl StringCopy
ldr r4, _080C9F74
ldr r1, _080C9F78
adds r0, r4, 0
- bl PrintSimple
+ bl StringExpandPlaceholders
ldr r2, _080C9F7C
adds r0, r5, 0
adds r1, r4, 0
@@ -414719,7 +413730,7 @@ sub_80C9FDC: ; 80C9FDC
bl itemid_copy_name
ldr r0, _080CA00C
ldr r1, _080CA010
- bl PrintSimple
+ bl StringExpandPlaceholders
pop {r4}
pop {r0}
bx r0
@@ -414842,7 +413853,7 @@ ItemUseOutOfBattle_BlackWhiteFlute: ; 80CA0DC
bl sub_80CA07C
ldr r0, _080CA118
ldr r1, _080CA11C
- bl PrintSimple
+ bl StringExpandPlaceholders
ldr r1, _080CA120
lsls r0, r4, 2
adds r0, r4
@@ -414864,7 +413875,7 @@ _080CA124:
bl sub_80CA07C
ldr r0, _080CA160
ldr r1, _080CA164
- bl PrintSimple
+ bl StringExpandPlaceholders
ldr r1, _080CA168
lsls r0, r5, 2
adds r0, r5
@@ -415293,7 +414304,7 @@ sub_80CA448: ; 80CA448
ldr r4, _080CA4A0
ldr r1, _080CA4A4
adds r0, r4, 0
- bl PrintSimple
+ bl StringExpandPlaceholders
ldr r2, _080CA4A8
adds r0, r5, 0
adds r1, r4, 0
@@ -473590,7 +472601,7 @@ _080E66A4:
add r0, sp
ldr r0, [r0]
ldr r1, [r4]
- bl CopyString
+ bl StringCopy
adds r3, r0, 0
ldrb r0, [r4, 0x8]
cmp r0, 0
@@ -473601,7 +472612,7 @@ _080E66A4:
add r0, sp
ldr r0, [r0]
ldr r1, [r4, 0x4]
- bl CopyString
+ bl StringCopy
b _080E670A
.align 2
_080E66E0: .4byte gUnknown_083DB7DC
@@ -473613,7 +472624,7 @@ _080E66F0:
adds r3, 0x1
ldr r1, [r4, 0x4]
adds r0, r3, 0
- bl CopyString
+ bl StringCopy
lsls r0, r5, 1
adds r0, 0x1
lsls r0, 2
@@ -482710,7 +481721,7 @@ sub_80EAD64: ; 80EAD64
lsrs r1, 22
adds r1, r2
ldr r1, [r1]
- bl CopyString
+ bl StringCopy
pop {r1}
bx r1
.align 2
@@ -483386,7 +482397,7 @@ _080EB290:
ldr r1, [r0]
_080EB2A2:
adds r0, r5, 0
- bl CopyString
+ bl StringCopy
adds r1, r0, 0
_080EB2AA:
movs r0, 0xFC
@@ -483422,7 +482433,7 @@ sub_80EB2D4: ; 80EB2D4
cmp r0, 0
beq _080EB2F8
ldr r0, _080EB2F4
- bl sub_8006B34
+ bl StringGetLength
lsls r0, 16
lsrs r0, 16
b _080EB374
@@ -483586,7 +482597,7 @@ sub_80EB3FC: ; 80EB3FC
beq _080EB420
ldr r1, _080EB41C
adds r0, r5, 0
- bl CopyString
+ bl StringCopy
b _080EB4A6
.align 2
_080EB41C: .4byte gUnknown_0842C890
@@ -483658,7 +482669,7 @@ _080EB490:
bne _080EB47E
_080EB498:
adds r0, r5, 0
- bl CopyString
+ bl StringCopy
adds r5, r0, 0
_080EB4A0:
movs r0, 0xFF
@@ -494028,7 +493039,7 @@ _080F0862:
adds r0, r4, 0
movs r2, 0x1
movs r3, 0x5
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
adds r0, r4, 0
movs r1, 0xA
movs r2, 0xB
@@ -494058,7 +493069,7 @@ _080F08AA:
adds r0, r4, 0
movs r2, 0x1
movs r3, 0x5
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
adds r0, r4, 0
movs r1, 0xA
movs r2, 0xF
@@ -494832,7 +493843,7 @@ sub_80F0EC0: ; 80F0EC0
adds r0, r1
movs r1, 0
movs r2, 0x10
- bl RepeatChar
+ bl StringFill
pop {r0}
bx r0
.align 2
@@ -495677,7 +494688,7 @@ sub_80F15A8: ; 80F15A8
adds r5, r4, r0
ldr r1, _080F1608
adds r0, r5, 0
- bl CopyString
+ bl StringCopy
adds r2, r0, 0
movs r0, 0
strb r0, [r2]
@@ -495694,7 +494705,7 @@ sub_80F15A8: ; 80F15A8
adds r0, r2, 0
movs r2, 0
movs r3, 0x2
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
adds r2, r0, 0
movs r0, 0xFF
strb r0, [r2]
@@ -496126,7 +495137,7 @@ sub_80F1934: ; 80F1934
lsrs r4, 24
ldr r1, _080F19A4
adds r0, r5, 0
- bl CopyString
+ bl StringCopy
adds r5, r0, 0
ldr r0, _080F19A8
lsls r4, 2
@@ -501708,7 +500719,7 @@ sub_80F443C: ; 80F443C
lsls r4, r1, 16
lsrs r4, 16
ldr r1, _080F4458
- bl CopyString
+ bl StringCopy
adds r1, r4, 0
movs r2, 0x38
movs r3, 0x1
@@ -505978,7 +504989,7 @@ _080F655E:
adds r3, r5, 0
bl sub_80F44B0
adds r0, r5, 0
- bl GetStringEnd_Limit7
+ bl StringGetEnd10
adds r0, r6, 0
adds r1, r4, 0
movs r2, 0xB
@@ -506043,7 +505054,7 @@ _080F65EA:
movs r4, 0xFF
_080F65FC:
adds r0, r5, 0
- bl sub_8006B34
+ bl StringGetLength
lsls r0, 16
lsrs r0, 16
adds r5, r0
@@ -506118,7 +505129,7 @@ _080F6656:
adds r5, 0x5
adds r0, r5, 0
ldr r1, [sp, 0x8]
- bl ConvertNumToDecimalString3
+ bl ConvertIntToDecimalString
adds r5, r0, 0
ldr r0, [sp, 0x4]
cmp r0, 0x1
@@ -507351,7 +506362,7 @@ sub_80F700C: ; 80F700C
ldr r0, _080F7088
adds r1, r0
adds r0, r3, 0
- bl CopyString
+ bl StringCopy
adds r3, r0, 0
movs r0, 0xFC
strb r0, [r3]
@@ -507362,7 +506373,7 @@ sub_80F700C: ; 80F700C
adds r3, 0x3
adds r1, r5, 0x4
adds r0, r3, 0
- bl CopyString
+ bl StringCopy
adds r3, r0, 0
_080F7060:
movs r0, 0xFC
@@ -508740,20 +507751,20 @@ _080F7B00:
bx r0
thumb_func_end sub_80F7AA4
- thumb_func_start sub_80F7B08
-sub_80F7B08: ; 80F7B08
+ thumb_func_start GetCurrentMauvilleOldMan
+GetCurrentMauvilleOldMan: ; 80F7B08
ldr r0, _080F7B10
ldrb r0, [r0]
bx lr
.align 2
_080F7B10: .4byte 0x020284c8
- thumb_func_end sub_80F7B08
+ thumb_func_end GetCurrentMauvilleOldMan
thumb_func_start sub_80F7B14
sub_80F7B14: ; 80F7B14
push {r4,lr}
ldr r4, _080F7B28
- bl sub_80F7B08
+ bl GetCurrentMauvilleOldMan
lsls r0, 24
lsrs r0, 24
strh r0, [r4]
@@ -508785,7 +507796,7 @@ sub_80F7B40: ; 80F7B40
adds r0, 0x1A
ldr r4, _080F7B9C
adds r1, r4, 0
- bl CopyString
+ bl StringCopy
movs r2, 0
adds r3, r5, 0
adds r3, 0x25
@@ -509052,17 +508063,17 @@ _080F7D02:
bl sub_80EB3FC
adds r2, r0, 0
ldr r1, _080F7D5C
- bl CopyString
+ bl StringCopy
adds r2, r0, 0
ldr r0, _080F7D60
lsls r4, 2
adds r4, r0
ldr r1, [r4]
adds r0, r2, 0
- bl CopyString
+ bl StringCopy
adds r2, r0, 0
ldr r1, _080F7D64
- bl CopyString
+ bl StringCopy
b _080F7D88
.align 2
_080F7D50: .4byte 0x020284c8
@@ -509086,7 +508097,7 @@ _080F7D68:
lsls r1, 2
adds r1, r3
ldr r1, [r1]
- bl CopyString
+ bl StringCopy
_080F7D88:
bl GenerateRandomNumber
lsls r0, 16
@@ -509315,7 +508326,7 @@ sub_80F7F24: ; 80F7F24
thumb_func_start sub_80F7F30
sub_80F7F30: ; 80F7F30
push {lr}
- bl sub_80F7B08
+ bl GetCurrentMauvilleOldMan
lsls r0, 24
lsrs r0, 24
cmp r0, 0x4
@@ -509917,7 +508928,7 @@ _080F83C8:
sub_80F83D0: ; 80F83D0
push {r4,lr}
ldr r4, _080F83F4
- bl sub_80F7B08
+ bl GetCurrentMauvilleOldMan
adds r1, r0, 0
lsls r1, 24
lsrs r1, 8
@@ -510165,7 +509176,7 @@ sub_80F8560: ; 80F8560
ldr r0, _080F8594
adds r5, r0
adds r0, r6, 0
- bl sub_8006B34
+ bl StringGetLength
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
@@ -510176,7 +509187,7 @@ sub_80F8560: ; 80F8560
adds r0, r5, 0
adds r1, r6, 0
adds r2, r4, 0
- bl CopyString_LimitN
+ bl StringCopyN
pop {r4-r6}
pop {r0}
bx r0
@@ -510210,13 +509221,13 @@ sub_80F8598: ; 80F8598
adds r0, r5, 0
movs r2, 0
movs r3, 0xA
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
ldr r4, _080F85F8
adds r0, r6, 0
bl sub_80F8490
adds r1, r0, 0
adds r0, r4, 0
- bl CopyString
+ bl StringCopy
pop {r4-r6}
pop {r0}
bx r0
@@ -510376,13 +509387,13 @@ sub_80F8700: ; 80F8700
adds r0, r4, 0
movs r2, 0
movs r3, 0xA
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
ldr r4, _080F8750
adds r0, r6, 0
bl sub_80F8490
adds r1, r0, 0
adds r0, r4, 0
- bl CopyString
+ bl StringCopy
ldr r1, _080F8754
adds r0, r5, 0
bl sub_80F8534
@@ -511173,11 +510184,11 @@ _080F8D78:
sub_80F8D7C: ; 80F8D7C
push {r4,lr}
adds r4, r0, 0
- bl CopyString
+ bl StringCopy
adds r0, r4, 0
bl sub_814A568
adds r0, r4, 0
- bl sub_8006B34
+ bl StringGetLength
lsls r0, 16
lsrs r0, 16
adds r4, r0
@@ -511254,9 +510265,9 @@ _080F8E04:
bl sub_80F8D7C
adds r2, r0, 0
ldr r1, _080F8E44
- bl CopyString
+ bl StringCopy
ldr r0, _080F8E40
- bl sub_8006B34
+ bl StringGetLength
movs r2, 0x86
lsls r2, 1
adds r1, r4, r2
@@ -511271,7 +510282,7 @@ _080F8E44: .4byte gUnknown_0842C894
_080F8E48:
ldr r1, _080F8E7C
adds r0, r2, 0
- bl CopyString
+ bl StringCopy
adds r2, r0, 0
adds r0, r4, 0
adds r0, 0xF4
@@ -511712,17 +510723,17 @@ brm_trade_1: ; 80F9178
ldr r4, _080F91C4
adds r0, r4, 0
mov r1, sp
- bl CopyString
+ bl StringCopy
adds r0, r4, 0
adds r1, r5, 0
- bl AppendString
+ bl StringAppend
mov r1, sp
ldr r0, _080F91C8
ldr r0, [r0]
ldrb r0, [r0, 0x6]
strb r0, [r1, 0x2]
adds r0, r4, 0
- bl AppendString
+ bl StringAppend
b _080F91D4
.align 2
_080F91C0: .4byte gUnknown_083E5A18
@@ -511731,7 +510742,7 @@ _080F91C8: .4byte 0x0202e9c8
_080F91CC:
ldr r0, _080F91E8
adds r1, r5, 0
- bl CopyString
+ bl StringCopy
_080F91D4:
ldr r0, _080F91E8
adds r1, r7, 0
@@ -511770,7 +510781,7 @@ sub_80F91EC: ; 80F91EC
adds r0, r6, 0
mov r1, r12
adds r3, r4, 0
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
mov r0, r8
cmp r0, 0xFF
beq _080F9238
@@ -513594,7 +512605,7 @@ sub_80F9F84: ; 80F9F84
muls r1, r4
ldr r2, _080F9FD8
adds r1, r2
- bl CopyString
+ bl StringCopy
pop {r4,r5}
pop {r0}
bx r0
@@ -517801,7 +516812,7 @@ _080FBFCA:
adds r1, r0
ldr r1, [r1]
adds r0, r3, 0
- bl CopyString
+ bl StringCopy
b _080FBFF2
.align 2
_080FBFE0: .4byte gRegionMapLocations
@@ -517812,7 +516823,7 @@ _080FBFE4:
_080FBFEA:
adds r0, r3, 0
movs r1, 0
- bl RepeatChar
+ bl StringFill
_080FBFF2:
pop {r1}
bx r1
@@ -517828,13 +516839,13 @@ sub_80FBFF8: ; 80FBFF8
cmp r1, 0x57
bne _080FC020
ldr r1, _080FC010
- bl CopyString
+ bl StringCopy
b _080FC026
.align 2
_080FC010: .4byte gUnknown_084117C9
_080FC014:
ldr r1, _080FC01C
- bl CopyString
+ bl StringCopy
b _080FC026
.align 2
_080FC01C: .4byte gUnknown_084117CF
@@ -517857,7 +516868,7 @@ sub_80FC02C: ; 80FC02C
b _080FC042
_080FC03C:
ldr r1, _080FC048
- bl CopyString
+ bl StringCopy
_080FC042:
pop {r1}
bx r1
@@ -517982,7 +516993,7 @@ _080FC120:
adds r0, r4, 0
movs r1, 0
movs r2, 0xC
- bl RepeatChar
+ bl StringFill
bl sub_80FC254
b _080FC1E6
.align 2
@@ -522624,7 +521635,7 @@ sub_80FE470: ; 80FE470
adds r0, r1
ldr r1, [r0]
adds r0, r7, 0
- bl CopyString
+ bl StringCopy
adds r7, r0, 0
adds r0, r4, 0
bl sub_8134194
@@ -523007,7 +522018,7 @@ sub_80FE7D4: ; 80FE7D4
lsrs r1, 22
adds r1, r2
ldr r1, [r1]
- bl CopyString
+ bl StringCopy
pop {r0}
bx r0
.align 2
@@ -523475,7 +522486,7 @@ _080FEB7A:
ldr r0, _080FEBD0
adds r1, r0
ldr r0, _080FEBD4
- bl CopyString
+ bl StringCopy
lsls r2, r6, 3
str r5, [sp]
ldr r0, _080FEBD8
@@ -524859,13 +523870,13 @@ _080FF62C:
ldrb r1, [r4, 0x8]
movs r2, 0x1
movs r3, 0x2
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
ldrb r0, [r4, 0x9]
cmp r0, 0
bne _080FF664
ldr r0, _080FF65C
ldr r1, _080FF660
- bl PrintSimple
+ bl StringExpandPlaceholders
b _080FF66C
.align 2
_080FF654: .4byte 0x020231cc
@@ -524875,7 +523886,7 @@ _080FF660: .4byte gUnknown_0840FB11
_080FF664:
ldr r0, _080FF67C
ldr r1, _080FF680
- bl PrintSimple
+ bl StringExpandPlaceholders
_080FF66C:
ldr r1, _080FF67C
_080FF66E:
@@ -529239,11 +528250,11 @@ sub_81017A0: ; 81017A0
lsls r1, 5
ldr r2, _081017F8
adds r1, r2
- bl CopyString
+ bl StringCopy
ldr r4, _081017FC
ldr r1, _08101800
adds r0, r4, 0
- bl PrintSimple
+ bl StringExpandPlaceholders
ldr r2, _08101804
adds r0, r5, 0
adds r1, r4, 0
@@ -540171,14 +539182,14 @@ sub_8106918: ; 8106918
adds r0, r1
ldr r1, [r0]
adds r0, r2, 0
- bl CopyString
+ bl StringCopy
adds r2, r0, 0
ldr r1, _08106980
- bl CopyString
+ bl StringCopy
adds r2, r0, 0
ldr r1, [r6]
adds r1, 0x16
- bl CopyString
+ bl StringCopy
adds r2, r0, 0
movs r0, 0xFC
strb r0, [r2]
@@ -540187,11 +539198,11 @@ sub_8106918: ; 8106918
adds r2, 0x2
ldr r1, _08106984
adds r0, r2, 0
- bl CopyString
+ bl StringCopy
adds r2, r0, 0
ldr r1, [r6]
adds r1, 0xB
- bl CopyString_Limit10
+ bl StringCopy10
movs r1, 0x6
b _081069AE
.align 2
@@ -540206,16 +539217,16 @@ _08106988:
adds r0, r5, r4
ldr r1, [r0]
adds r0, r2, 0
- bl CopyString
+ bl StringCopy
adds r2, r0, 0
ldr r1, [r6]
adds r1, 0xB
- bl CopyString_Limit10
+ bl StringCopy10
adds r2, r0, 0
adds r4, 0x4
adds r5, r4
ldr r1, [r5]
- bl CopyString
+ bl StringCopy
movs r1, 0x3
_081069AE:
movs r2, 0xE
@@ -546615,17 +545626,17 @@ _08109970:
strb r2, [r1]
mov r0, sp
adds r1, r7, 0
- bl CopyString
+ bl StringCopy
mov r4, r10
muls r4, r5
adds r4, 0x5
add r4, r9
adds r0, r7, 0
adds r1, r4, 0
- bl CopyString
+ bl StringCopy
adds r0, r4, 0
mov r1, sp
- bl CopyString
+ bl StringCopy
_081099A2:
adds r0, r5, 0x1
lsls r0, 24
@@ -546670,7 +545681,7 @@ _081099E0:
lsls r1, r4, 2
adds r1, r6
ldr r1, [r1]
- bl CopyString
+ bl StringCopy
adds r1, r5, 0x1
adds r1, r4
ldr r0, _08109A1C
@@ -546941,7 +545952,7 @@ _08109C04:
muls r1, r2
adds r1, 0x5
adds r1, r6
- bl CopyString
+ bl StringCopy
adds r0, r6, 0x1
ldrh r5, [r5]
adds r0, r5
@@ -547110,12 +546121,12 @@ sub_8109D04: ; 8109D04
lsls r1, 5
ldr r4, _08109D84
adds r1, r4
- bl CopyString
+ bl StringCopy
ldr r0, _08109D88
ldrh r1, [r5]
lsls r1, 5
adds r1, r4
- bl CopyString
+ bl StringCopy
b _08109D94
.align 2
_08109D6C: .4byte 0x020388f7
@@ -547185,7 +546196,7 @@ sub_8109DE0: ; 8109DE0
adds r0, 0x5
adds r0, r4
ldr r1, _08109E30
- bl CopyString
+ bl StringCopy
adds r0, r4, 0x1
ldrh r5, [r5]
adds r0, r5
@@ -548007,7 +547018,7 @@ _0810A4D8:
mov r1, sp
adds r0, r1, r4
ldr r1, _0810A570
- bl CopyString
+ bl StringCopy
ldr r0, _0810A568
adds r1, r6, r0
ldrb r4, [r1]
@@ -550961,7 +549972,7 @@ _0810BC08:
adds r0, r4, 0
movs r2, 0x1
movs r3, 0x3
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
movs r2, 0x1
orrs r2, r7
mov r0, r9
@@ -552120,11 +551131,11 @@ sub_810C540: ; 810C540
lsls r1, 2
adds r1, r4
ldr r1, [r1]
- bl CopyString
+ bl StringCopy
ldr r4, _0810C5B4
ldr r1, _0810C5B8
adds r0, r4, 0
- bl PrintSimple
+ bl StringExpandPlaceholders
ldr r2, _0810C5BC
adds r0, r5, 0
adds r1, r4, 0
@@ -552209,7 +551220,7 @@ sub_810C610: ; 810C610
ldr r5, _0810C65C
ldr r1, _0810C660
adds r0, r5, 0
- bl PrintSimple
+ bl StringExpandPlaceholders
ldr r2, _0810C664
adds r0, r4, 0
adds r1, r5, 0
@@ -552403,7 +551414,7 @@ sub_810C788: ; 810C788
lsls r1, 2
adds r1, r2
ldr r1, [r1]
- bl CopyString
+ bl StringCopy
ldrb r0, [r7]
bl sub_810CA6C
ldrh r0, [r7]
@@ -552487,7 +551498,7 @@ sub_810C854: ; 810C854
lsls r1, 2
adds r1, r3
ldr r1, [r1]
- bl CopyString
+ bl StringCopy
ldr r1, _0810C8C8
ldrh r0, [r4]
strh r0, [r1]
@@ -552891,7 +551902,7 @@ sub_810CB44: ; 810CB44
adds r0, r1
ldr r1, [r0]
adds r0, r4, 0
- bl CopyString
+ bl StringCopy
pop {r4}
pop {r0}
bx r0
@@ -552921,7 +551932,7 @@ _0810CB74:
adds r0, r7
ldr r1, [r0]
adds r0, r6, 0
- bl CopyString
+ bl StringCopy
movs r0, 0x1
b _0810CBAC
.align 2
@@ -554473,10 +553484,10 @@ sub_810D74C: ; 810D74C
adds r1, r6, 0
movs r2, 0
movs r3, 0x2
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
ldr r1, _0810D774
adds r0, r4, 0
- bl AppendString
+ bl StringAppend
b _0810D780
.align 2
_0810D770: .4byte 0x020231cc
@@ -554484,7 +553495,7 @@ _0810D774: .4byte gUnknown_084107A9
_0810D778:
ldr r0, _0810D7CC
ldr r1, _0810D7D0
- bl CopyString
+ bl StringCopy
_0810D780:
ldr r0, _0810D7D4
cmp r7, r0
@@ -554497,7 +553508,7 @@ _0810D780:
adds r0, r4, 0
movs r2, 0x1
movs r3, 0x2
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
movs r0, 0xAD
strb r0, [r4, 0x2]
adds r5, r4, 0x3
@@ -554512,10 +553523,10 @@ _0810D780:
adds r0, r5, 0
movs r2, 0x2
movs r3, 0x2
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
ldr r1, _0810D7DC
adds r0, r4, 0
- bl AppendString
+ bl StringAppend
b _0810D7E8
.align 2
_0810D7CC: .4byte 0x020231cc
@@ -554526,7 +553537,7 @@ _0810D7DC: .4byte gUnknown_084107A0
_0810D7E0:
ldr r0, _0810D7F4
ldr r1, _0810D7F8
- bl CopyString
+ bl StringCopy
_0810D7E8:
movs r4, 0
cmp r6, 0
@@ -554941,7 +553952,7 @@ _0810DAEA:
lsls r1, 2
ldr r2, _0810DB24
adds r1, r2
- bl CopyString
+ bl StringCopy
adds r0, r6, 0x1
lsls r0, 24
lsrs r6, r0, 24
@@ -555881,7 +554892,7 @@ sub_810E298: ; 810E298
bne _0810E2B8
ldr r0, _0810E2B0
ldr r1, _0810E2B4
- bl CopyString
+ bl StringCopy
b _0810E2C0
.align 2
_0810E2AC: .4byte 0x02024ea4
@@ -555890,7 +554901,7 @@ _0810E2B4: .4byte gUnknown_084107B2
_0810E2B8:
ldr r0, _0810E2C4
ldr r1, _0810E2C8
- bl CopyString
+ bl StringCopy
_0810E2C0:
pop {r0}
bx r0
@@ -555908,7 +554919,7 @@ sub_810E2CC: ; 810E2CC
bne _0810E2EC
ldr r0, _0810E2E4
ldr r1, _0810E2E8
- bl CopyString
+ bl StringCopy
b _0810E2F4
.align 2
_0810E2E0: .4byte 0x02024ea4
@@ -555917,7 +554928,7 @@ _0810E2E8: .4byte gUnknown_084107C7
_0810E2EC:
ldr r0, _0810E2F8
ldr r1, _0810E2FC
- bl CopyString
+ bl StringCopy
_0810E2F4:
pop {r0}
bx r0
@@ -558972,7 +557983,7 @@ _0810FA04:
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
b _0810FA4A
.align 2
_0810FA20: .4byte 0x020231cc
@@ -558993,7 +558004,7 @@ _0810FA24:
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
_0810FA4A:
pop {r4,r5}
pop {r0}
@@ -559524,7 +558535,7 @@ _0810FE40:
_0810FE58:
ldr r0, _0810FE64
ldr r1, _0810FE68
- bl CopyString
+ bl StringCopy
b _0810FEF2
.align 2
_0810FE64: .4byte 0x020231cc
@@ -559532,7 +558543,7 @@ _0810FE68: .4byte gUnknown_0840FF42
_0810FE6C:
ldr r0, _0810FE78
ldr r1, _0810FE7C
- bl CopyString
+ bl StringCopy
b _0810FEF2
.align 2
_0810FE78: .4byte 0x020231cc
@@ -559540,7 +558551,7 @@ _0810FE7C: .4byte gUnknown_0840FF49
_0810FE80:
ldr r0, _0810FE8C
ldr r1, _0810FE90
- bl CopyString
+ bl StringCopy
b _0810FEF2
.align 2
_0810FE8C: .4byte 0x020231cc
@@ -559548,7 +558559,7 @@ _0810FE90: .4byte gUnknown_0840FF50
_0810FE94:
ldr r0, _0810FEA0
ldr r1, _0810FEA4
- bl CopyString
+ bl StringCopy
b _0810FEF2
.align 2
_0810FEA0: .4byte 0x020231cc
@@ -559556,7 +558567,7 @@ _0810FEA4: .4byte gUnknown_0840FF57
_0810FEA8:
ldr r0, _0810FEB4
ldr r1, _0810FEB8
- bl CopyString
+ bl StringCopy
b _0810FEF2
.align 2
_0810FEB4: .4byte 0x020231cc
@@ -559564,7 +558575,7 @@ _0810FEB8: .4byte gUnknown_0840FF5E
_0810FEBC:
ldr r0, _0810FEC8
ldr r1, _0810FECC
- bl CopyString
+ bl StringCopy
b _0810FEF2
.align 2
_0810FEC8: .4byte 0x020231cc
@@ -559573,7 +558584,7 @@ _0810FED0:
ldr r4, _0810FEF8
adds r0, r4, 0
movs r2, 0x7
- bl CopyString_LimitN
+ bl StringCopyN
movs r0, 0xFF
strb r0, [r4, 0x7]
ldrb r0, [r4]
@@ -559979,13 +558990,13 @@ sub_8110158: ; 8110158
adds r0, 0x42
adds r1, r7, 0
movs r2, 0x5
- bl CopyString_LimitN
+ bl StringCopyN
b _081101C4
_081101BA:
adds r0, r4, 0
adds r1, r7, 0
movs r2, 0x7
- bl CopyString_LimitN
+ bl StringCopyN
_081101C4:
lsls r0, r6, 4
adds r0, r5, r0
@@ -560150,7 +559161,7 @@ sub_81102E8: ; 81102E8
adds r0, r4, 0
movs r2, 0x1
movs r3, 0x4
- bl ConvertNumToDecimalString2
+ bl ConvertIntToDecimalStringN_UnknownExtCtrlCode
ldr r4, _0811033C
movs r0, 0x18
bl sub_8053108
@@ -560158,7 +559169,7 @@ sub_81102E8: ; 81102E8
adds r0, r4, 0
movs r2, 0x1
movs r3, 0x4
- bl ConvertNumToDecimalString2
+ bl ConvertIntToDecimalStringN_UnknownExtCtrlCode
ldr r4, _08110340
movs r0, 0x19
bl sub_8053108
@@ -560166,7 +559177,7 @@ sub_81102E8: ; 81102E8
adds r0, r4, 0
movs r2, 0x1
movs r3, 0x4
- bl ConvertNumToDecimalString2
+ bl ConvertIntToDecimalStringN_UnknownExtCtrlCode
ldr r0, _08110344
movs r1, 0x3
movs r2, 0x3
@@ -560212,14 +559223,14 @@ sub_8110348: ; 8110348
adds r4, 0x6
ldr r1, _081103B8
adds r0, r4, 0
- bl CopyString
+ bl StringCopy
mov r0, sp
movs r1, 0x3
adds r2, r6, 0
bl Print
ldr r1, _081103BC
adds r0, r4, 0
- bl CopyString
+ bl StringCopy
mov r0, sp
movs r1, 0xB
adds r2, r6, 0
@@ -560240,11 +559251,11 @@ _081103C0:
ldr r4, _08110438
adds r0, r4, 0
movs r1, 0x8
- bl RepeatStringTerminator
+ bl StringFillEOS
adds r0, r4, 0
adds r1, r7, 0
movs r2, 0x7
- bl CopyString_LimitN
+ bl StringCopyN
adds r0, r4, 0
movs r1, 0x3
adds r2, r6, 0
@@ -560260,7 +559271,7 @@ _081103C0:
adds r0, r5, 0
movs r2, 0x1
movs r3, 0x4
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
adds r0, r4, 0
movs r1, 0xB
adds r2, r6, 0
@@ -560269,7 +559280,7 @@ _081103C0:
adds r0, r5, 0
movs r2, 0x1
movs r3, 0x4
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
adds r0, r4, 0
movs r1, 0x11
adds r2, r6, 0
@@ -560278,7 +559289,7 @@ _081103C0:
adds r0, r5, 0
movs r2, 0x1
movs r3, 0x4
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
adds r0, r4, 0
movs r1, 0x17
adds r2, r6, 0
@@ -560655,7 +559666,7 @@ _08110720:
adds r0, r4, 0
movs r1, 0
movs r2, 0x10
- bl RepeatChar
+ bl StringFill
b _081107C0
.align 2
_0811073C: .4byte 0x020006e8
@@ -562414,7 +561425,7 @@ _08111496:
adds r0, r4, 0
movs r1, 0
movs r2, 0x10
- bl RepeatChar
+ bl StringFill
b _08111540
.align 2
_081114B4: .4byte 0x020006e8
@@ -563129,7 +562140,7 @@ evolution_cutscene: ; 8111984
bl PokemonGetField
ldr r0, _08111C48
add r1, sp, 0x8
- bl CopyString_Limit10
+ bl StringCopy10
ldr r0, _08111C4C
movs r1, 0xB
mov r4, r10
@@ -563137,7 +562148,7 @@ evolution_cutscene: ; 8111984
adds r1, r4, 0
ldr r2, _08111C50
adds r1, r2
- bl CopyString
+ bl StringCopy
ldr r0, [sp, 0x20]
movs r1, 0xB
bl PokemonGetField
@@ -563857,13 +562868,13 @@ sub_81120E4: ; 81120E4
bl PokemonGetField
ldr r0, _08112234
add r1, sp, 0x8
- bl CopyString_Limit10
+ bl StringCopy10
ldr r0, _08112238
movs r1, 0xB
muls r1, r5
ldr r2, _0811223C
adds r1, r2
- bl CopyString
+ bl StringCopy
ldr r1, _08112240
movs r0, 0x1
strb r0, [r1]
@@ -564330,7 +563341,7 @@ _0811254C:
ldr r4, _08112578
ldr r1, _0811257C
adds r0, r4, 0
- bl PrintSimple
+ bl StringExpandPlaceholders
ldr r0, _08112580
movs r1, 0xF
str r1, [sp]
@@ -564615,7 +563626,7 @@ _081127BE:
ldr r4, _08112838
ldr r1, _0811283C
adds r0, r4, 0
- bl PrintSimple
+ bl StringExpandPlaceholders
ldr r0, _08112840
movs r1, 0xF
str r1, [sp]
@@ -564701,7 +563712,7 @@ _08112856:
bl PokemonGetField
ldr r0, _081128A8
add r1, sp, 0x4
- bl CopyString_Limit10
+ bl StringCopy10
ldr r0, _081128AC
cmp r6, r0
bne _081128B0
@@ -564840,7 +563851,7 @@ _081129AC:
ldr r4, _081129D8
ldr r1, _081129DC
adds r0, r4, 0
- bl PrintSimple
+ bl StringExpandPlaceholders
ldr r0, _081129E0
movs r1, 0xF
str r1, [sp]
@@ -565612,7 +564623,7 @@ _0811307C:
ldr r4, _081130A8
ldr r1, _081130AC
adds r0, r4, 0
- bl PrintSimple
+ bl StringExpandPlaceholders
ldr r0, _081130B0
ldr r1, [r0]
adds r0, r1, 0x4
@@ -565920,7 +564931,7 @@ _08113316:
ldr r4, _08113394
ldr r1, _08113398
adds r0, r4, 0
- bl PrintSimple
+ bl StringExpandPlaceholders
ldr r0, _0811339C
ldr r1, [r0]
adds r0, r1, 0x4
@@ -566018,7 +565029,7 @@ _081133C2:
bl PokemonGetField
ldr r0, _08113418
add r1, sp, 0x4
- bl CopyString_Limit10
+ bl StringCopy10
ldr r0, _0811341C
cmp r6, r0
bne _08113420
@@ -572402,11 +571413,11 @@ sub_811677C: ; 811677C
adds r0, r3, 0
movs r2, 0
movs r3, 0x2
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
ldr r5, _081167E8
ldr r1, _081167EC
adds r0, r5, 0
- bl PrintSimple
+ bl StringExpandPlaceholders
movs r0, 0
movs r1, 0xE
movs r2, 0x1D
@@ -574260,11 +573271,11 @@ sub_8117630: ; 8117630
ldr r0, _08117694
movs r2, 0x2
movs r3, 0x1
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
ldr r5, _08117698
ldr r1, _0811769C
adds r0, r5, 0
- bl PrintSimple
+ bl StringExpandPlaceholders
movs r0, 0
movs r1, 0xE
movs r2, 0x1D
@@ -574315,11 +573326,11 @@ sub_81176A8: ; 81176A8
mov r0, r10
movs r2, 0x1
movs r3, 0x4
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
ldr r5, _08117760
ldr r1, _08117764
adds r0, r5, 0
- bl PrintSimple
+ bl StringExpandPlaceholders
movs r0, 0
movs r1, 0
movs r2, 0x9
@@ -574345,7 +573356,7 @@ sub_81176A8: ; 81176A8
adds r1, r4, 0
movs r2, 0x2
movs r3, 0x1
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
movs r1, 0x22
ldrsh r0, [r6, r1]
cmp r0, r4
@@ -574389,7 +573400,7 @@ _0811777C:
ldr r4, _081177AC
ldr r1, _081177B0
adds r0, r4, 0
- bl PrintSimple
+ bl StringExpandPlaceholders
movs r0, 0
movs r1, 0xE
movs r2, 0x1D
@@ -574415,7 +573426,7 @@ _081177B8: .4byte sub_81174F8
_081177BC:
ldr r1, _081177F4
adds r0, r5, 0
- bl PrintSimple
+ bl StringExpandPlaceholders
movs r0, 0
movs r1, 0xE
movs r2, 0x1D
@@ -580524,7 +579535,7 @@ sub_811A798: ; 811A798
lsrs r7, r3, 24
mov r0, sp
adds r1, r4, 0
- bl ConvertNumToDecimalString3
+ bl ConvertIntToDecimalString
lsls r1, r5, 1
adds r1, r5
lsls r1, 1
@@ -580558,7 +579569,7 @@ _0811A7EA:
movs r0, 0x11
strb r0, [r4, 0x1]
mov r0, sp
- bl sub_8006B34
+ bl StringGetLength
lsls r0, 16
lsrs r0, 16
subs r0, r5, r0
@@ -580569,7 +579580,7 @@ _0811A7EA:
adds r4, 0x3
adds r0, r4, 0
mov r1, sp
- bl CopyString
+ bl StringCopy
ldr r0, _0811A828
adds r1, r6, 0
adds r2, r7, 0
@@ -588724,7 +587735,7 @@ _0811E5D4:
bl PokemonGetField
ldr r0, [sp, 0x84]
ldr r1, [sp, 0x8C]
- bl CopyString_Limit10
+ bl StringCopy10
adds r0, r4, 0
movs r1, 0x7
ldr r2, [sp, 0x88]
@@ -593487,7 +592498,7 @@ _08120DE8:
lsls r1, 2
adds r1, r2
ldr r1, [r1]
- bl CopyString
+ bl StringCopy
b _08120E38
.align 2
_08120E14: .4byte 0x02039270
@@ -593502,7 +592513,7 @@ _08120E28:
muls r1, r2
ldr r2, _08120E48
adds r1, r2
- bl CopyString
+ bl StringCopy
_08120E38:
ldr r0, _08120E44
bl sub_8121D74
@@ -594506,10 +593517,10 @@ _08121660:
ldr r0, _081216C4
adds r1, r0
mov r0, sp
- bl CopyString
+ bl StringCopy
ldr r1, _081216C8
mov r0, sp
- bl AppendString
+ bl StringAppend
mov r4, sp
b _081219E6
.align 2
@@ -594842,7 +593853,7 @@ _08121940:
bl PokemonGetField
_0812194A:
mov r0, sp
- bl GetStringEnd_Limit7
+ bl StringGetEnd10
mov r4, sp
b _081219E6
.align 2
@@ -595088,7 +594099,7 @@ _08121B26:
adds r0, r6, 0
mov r1, r8
movs r2, 0
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
adds r0, r5, 0x3
ldrb r4, [r4, 0x1]
adds r5, r0, r4
@@ -595141,7 +594152,7 @@ _08121B88:
beq _08121BA8
ldr r1, _08121BA4
adds r0, r6, 0
- bl AppendString
+ bl StringAppend
b _08121BB0
.align 2
_08121BA0: .4byte 0x020239f8
@@ -595149,7 +594160,7 @@ _08121BA4: .4byte gUnknown_08400797
_08121BA8:
ldr r1, _08121BD4
adds r0, r6, 0
- bl AppendString
+ bl StringAppend
_08121BB0:
adds r0, r5, r7
ldrb r1, [r0, 0x2]
@@ -595162,10 +594173,10 @@ _08121BB0:
bl PokemonGetField
_08121BC4:
mov r0, sp
- bl GetStringEnd_Limit7
+ bl StringGetEnd10
adds r0, r6, 0
mov r1, sp
- bl AppendString
+ bl StringAppend
b _08121D02
.align 2
_08121BD4: .4byte gUnknown_08400791
@@ -595218,7 +594229,7 @@ _08121C28:
bl PokemonGetField
_08121C3A:
adds r0, r6, 0
- bl GetStringEnd_Limit7
+ bl StringGetEnd10
b _08121D02
.align 2
_08121C44: .4byte 0x030045c0
@@ -595242,7 +594253,7 @@ _08121C66:
adds r1, r0
_08121C68:
adds r0, r6, 0
- bl AppendString
+ bl StringAppend
adds r5, 0x2
b _08121D04
.align 2
@@ -595281,7 +594292,7 @@ _08121C78:
ldr r0, _08121CD8
adds r1, r0
adds r0, r6, 0
- bl CopyString
+ bl StringCopy
ldr r1, _08121CDC
b _08121CE2
.align 2
@@ -595296,7 +594307,7 @@ _08121CE0:
ldr r1, _08121CEC
_08121CE2:
adds r0, r6, 0
- bl AppendString
+ bl StringAppend
b _08121D02
.align 2
_08121CEC: .4byte gUnknown_08400A78
@@ -595353,7 +594364,7 @@ _08121D3C:
bgt _08121D5C
ldr r1, _08121D58
adds r0, r4, 0
- bl CopyString
+ bl StringCopy
b _08121D68
.align 2
_08121D50: .4byte 0x02039270
@@ -595364,7 +594375,7 @@ _08121D5C:
bgt _08121D68
ldr r1, _08121D70
adds r0, r4, 0
- bl CopyString
+ bl StringCopy
_08121D68:
pop {r4,r5}
pop {r0}
@@ -595441,14 +594452,14 @@ _08121DEC:
ldr r1, _08121DF8
_08121DEE:
adds r0, r3, 0
- bl CopyString
+ bl StringCopy
b _08121E04
.align 2
_08121DF8: .4byte gUnknown_084007CE
_08121DFC:
ldr r1, _08121E0C
adds r0, r3, 0
- bl CopyString
+ bl StringCopy
_08121E04:
pop {r4,r5}
pop {r0}
@@ -597190,9 +596201,9 @@ _08122B96:
bl sub_806E35C
mov r0, r9
adds r1, r5, 0
- bl CopyString
+ bl StringCopy
mov r0, r9
- bl GetStringEnd_Limit7
+ bl StringGetEnd10
mov r0, r9
bl sub_814A568
adds r0, r4, 0
@@ -604005,7 +603016,7 @@ sub_81260D0: ; 81260D0
push {lr}
ldr r0, _081260E4
ldr r1, _081260E8
- bl PrintSimple
+ bl StringExpandPlaceholders
movs r0, 0x3
bl sub_8126160
pop {r0}
@@ -604470,7 +603481,7 @@ sub_81263E4: ; 81263E4
bne _0812640E
_08126408:
ldr r0, _08126418
- bl PrintSimple
+ bl StringExpandPlaceholders
_0812640E:
movs r0, 0
pop {r4,r5}
@@ -604516,14 +603527,14 @@ sub_8126438: ; 8126438
adds r0, r6, 0
adds r1, r5, 0
movs r2, 0x7
- bl CopyString_LimitN
+ bl StringCopyN
adds r0, r4, 0
bl sub_80B48A8
ldr r4, _0812648C
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0x7
- bl CopyString_LimitN
+ bl StringCopyN
mov r0, r8
cmp r0, 0
bne _08126498
@@ -604539,7 +603550,7 @@ _08126494: .4byte gUnknown_0842F798
_08126498:
adds r0, r6, 0
adds r1, r4, 0
- bl CompareString
+ bl StringCompare
cmp r0, 0
beq _081264B4
ldr r0, _081264AC
@@ -604552,7 +603563,7 @@ _081264B4:
ldr r0, _081264D4
ldr r1, _081264D8
_081264B8:
- bl PrintSimple
+ bl StringExpandPlaceholders
movs r0, 0x2
str r0, [r7, 0x6C]
bl sub_80B4940
@@ -604592,7 +603603,7 @@ sub_81264F0: ; 81264F0
bl sub_80C5C38
ldr r0, _0812651C
ldr r1, _08126520
- bl PrintSimple
+ bl StringExpandPlaceholders
movs r0, 0x2
str r0, [r4, 0x6C]
movs r0, 0
@@ -604663,7 +603674,7 @@ sub_812658C: ; 812658C
bl sub_80690F0
ldr r0, _081265A8
ldr r1, _081265AC
- bl PrintSimple
+ bl StringExpandPlaceholders
movs r0, 0x2
str r0, [r4, 0x6C]
movs r0, 0
@@ -604686,7 +603697,7 @@ sub_81265B0: ; 81265B0
bl sub_80EB890
ldr r0, _081265D4
ldr r1, _081265D8
- bl PrintSimple
+ bl StringExpandPlaceholders
movs r0, 0x2
str r0, [r4, 0x6C]
movs r0, 0
@@ -604753,7 +603764,7 @@ sub_8126608: ; 8126608
ldr r0, _08126650
ldr r1, _08126654
movs r2, 0xB
- bl CopyString_LimitN
+ bl StringCopyN
b _08126662
.align 2
_08126650: .4byte 0x020231cc
@@ -604762,7 +603773,7 @@ _08126658:
ldr r0, _08126678
ldr r1, _0812667C
movs r2, 0xB
- bl CopyString_LimitN
+ bl StringCopyN
_08126662:
ldr r0, _08126680
ldrb r0, [r0]
@@ -604770,7 +603781,7 @@ _08126662:
bne _0812668C
ldr r0, _08126684
ldr r1, _08126688
- bl PrintSimple
+ bl StringExpandPlaceholders
movs r0, 0x3
b _081266F6
.align 2
@@ -604822,7 +603833,7 @@ _081266E4:
bl calc_player_party_count
ldr r0, _0812670C
ldr r1, _08126710
- bl PrintSimple
+ bl StringExpandPlaceholders
movs r0, 0x2
_081266F6:
str r0, [r6, 0x6C]
@@ -604855,7 +603866,7 @@ sub_8126714: ; 8126714
bl sub_813601C
ldr r0, _0812674C
ldr r1, _08126750
- bl PrintSimple
+ bl StringExpandPlaceholders
movs r0, 0x2
str r0, [r4, 0x6C]
movs r0, 0
@@ -604875,7 +603886,7 @@ sub_8126754: ; 8126754
bl sub_80691BC
ldr r0, _08126770
ldr r1, _08126774
- bl PrintSimple
+ bl StringExpandPlaceholders
movs r0, 0x2
str r0, [r4, 0x6C]
movs r0, 0
@@ -605061,7 +604072,7 @@ _081268CC: .4byte gDummyObjectRotScalAnimTable
sub_81268D0: ; 81268D0
push {lr}
ldrb r0, [r0, 0x5]
- bl sub_805BC10
+ bl GetFieldObjectGraphicsInfo
ldrh r0, [r0, 0xA]
subs r0, 0x2
lsls r0, 16
@@ -605083,7 +604094,7 @@ npc_pal_op: ; 81268E4
movs r0, 0
strh r0, [r4, 0x32]
ldrb r0, [r5, 0x5]
- bl sub_805BC10
+ bl GetFieldObjectGraphicsInfo
ldrb r1, [r0, 0xC]
movs r0, 0x80
ands r0, r1
@@ -605132,7 +604143,7 @@ npc_pal_op_B: ; 8126954
lsls r1, 24
lsrs r4, r1, 24
ldrb r0, [r0, 0x5]
- bl sub_805BC10
+ bl GetFieldObjectGraphicsInfo
adds r2, r0, 0
ldrh r1, [r2, 0x4]
ldr r0, _08126980
@@ -605178,7 +604189,7 @@ npc_pal_op_A: ; 81269B0
lsls r1, 24
lsrs r4, r1, 24
ldrb r0, [r0, 0x5]
- bl sub_805BC10
+ bl GetFieldObjectGraphicsInfo
adds r2, r0, 0
ldrh r1, [r2, 0x4]
ldr r0, _081269DC
@@ -605549,7 +604560,7 @@ oei_shadow: ; 8126C6C
lsls r1, 2
adds r1, r2
ldrb r0, [r1, 0x5]
- bl sub_805BC10
+ bl GetFieldObjectGraphicsInfo
adds r4, r0, 0
ldr r2, _08126D00
ldr r1, _08126D04
@@ -606445,7 +605456,7 @@ _08127372:
_0812737C: .4byte 0x030048a0
_08127380:
ldrb r0, [r1, 0x5]
- bl sub_805BC10
+ bl GetFieldObjectGraphicsInfo
mov r8, r0
mov r0, sp
ldrb r1, [r0]
@@ -606805,7 +605816,7 @@ sub_8127610: ; 8127610
cmp r4, 0x40
beq _0812769A
ldrb r0, [r5, 0x5]
- bl sub_805BC10
+ bl GetFieldObjectGraphicsInfo
lsls r3, r4, 4
adds r3, r4
lsls r3, 2
@@ -607070,7 +606081,7 @@ sub_8127820: ; 8127820
cmp r5, 0x40
beq _081278B6
ldrb r0, [r6, 0x5]
- bl sub_805BC10
+ bl GetFieldObjectGraphicsInfo
adds r4, r0, 0
lsls r0, r5, 4
adds r0, r5
@@ -607384,7 +606395,7 @@ _08127AB6:
_08127AC0: .4byte 0x030048a0
_08127AC4:
ldrb r0, [r1, 0x5]
- bl sub_805BC10
+ bl GetFieldObjectGraphicsInfo
mov r1, sp
ldrb r2, [r1]
lsls r1, r2, 3
@@ -608410,7 +607421,7 @@ sub_8128224: ; 8128224
cmp r4, 0x40
beq _081282C8
ldrb r0, [r6, 0x5]
- bl sub_805BC10
+ bl GetFieldObjectGraphicsInfo
adds r5, r0, 0
lsls r0, r4, 4
adds r0, r4
@@ -608886,7 +607897,7 @@ _081285DC:
lsls r0, 2
adds r0, r4
ldrb r0, [r0, 0x5]
- bl sub_805BC10
+ bl GetFieldObjectGraphicsInfo
mov r1, sp
ldrb r2, [r1]
lsls r1, r2, 3
@@ -609220,7 +608231,7 @@ _08128842:
cmp r0, 0
beq _081288E4
ldrb r0, [r4, 0x5]
- bl sub_805BC10
+ bl GetFieldObjectGraphicsInfo
ldrb r1, [r4, 0x4]
lsls r0, r1, 4
adds r0, r1
@@ -630364,7 +629375,7 @@ sub_81328E8: ; 81328E8
adds r1, r0, 0
ldr r4, _08132904
adds r0, r4, 0
- bl PrintSimple
+ bl StringExpandPlaceholders
adds r0, r4, 0
movs r1, 0x3
movs r2, 0xF
@@ -631061,7 +630072,7 @@ _08132EA4:
mov r8, r0
add r1, r8
adds r0, r2, 0
- bl CopyString
+ bl StringCopy
ldr r1, [r7]
adds r0, r1, r4
ldrb r0, [r0]
@@ -631097,7 +630108,7 @@ _08132EA4:
muls r2, r1
adds r1, r2, 0
add r1, r8
- bl CopyString
+ bl StringCopy
ldr r0, _08132F50
bl sub_81328E8
ldr r1, [r7]
@@ -631920,7 +630931,7 @@ _08133586:
muls r1, r2
ldr r2, _08133600
adds r1, r2
- bl CopyString
+ bl StringCopy
adds r5, 0x19
adds r4, 0x1
ldr r0, [r6]
@@ -631942,7 +630953,7 @@ _081335AA:
bl PokemonGetField
ldr r0, _08133604
mov r1, sp
- bl CopyString_Limit10
+ bl StringCopy10
ldr r0, [r4]
ldrb r2, [r0, 0x1A]
lsls r1, r2, 1
@@ -631952,7 +630963,7 @@ _081335AA:
adds r1, 0x52
adds r0, r1
ldr r1, _08133608
- bl CopyString
+ bl StringCopy
ldr r1, [r4]
ldrb r0, [r1, 0x1A]
adds r0, 0x1
@@ -632112,11 +631123,11 @@ _081336E8:
adds r2, r3
adds r2, 0x52
adds r1, r2
- bl CopyString
+ bl StringCopy
ldr r4, _08133740
ldr r1, _08133744
adds r0, r4, 0
- bl PrintSimple
+ bl StringExpandPlaceholders
adds r0, r4, 0
movs r1, 0x3
movs r2, 0xF
@@ -632131,7 +631142,7 @@ _08133748:
ldr r4, _08133764
ldr r1, _08133768
adds r0, r4, 0
- bl PrintSimple
+ bl StringExpandPlaceholders
adds r0, r4, 0
movs r1, 0x3
movs r2, 0xF
@@ -632157,7 +631168,7 @@ _0813376C:
ldr r4, _081337D8
ldr r1, _081337DC
adds r0, r4, 0
- bl PrintSimple
+ bl StringExpandPlaceholders
adds r0, r4, 0
movs r1, 0x3
movs r2, 0xF
@@ -632381,7 +631392,7 @@ sub_8133940: ; 8133940
lsrs r5, r0, 16
ldr r1, _08133968
mov r0, sp
- bl CopyString
+ bl StringCopy
ldrb r0, [r4, 0x2]
subs r0, 0x1
cmp r0, 0x6
@@ -632394,7 +631405,7 @@ _0813395C:
ldr r0, [r0]
mov pc, r0
.align 2
-_08133968: .4byte gUnknown_0840DC80
+_08133968: .4byte gExpandedPlaceholder_Empty
_0813396C: .4byte _08133970
.align 2
_08133970:
@@ -635539,7 +634550,7 @@ _08135148:
bne _08135160
ldr r0, _08135158
ldr r1, _0813515C
- bl AppendString
+ bl StringAppend
b _081351D8
.align 2
_08135158: .4byte 0x020231cc
@@ -635549,7 +634560,7 @@ _08135160:
ble _081351D8
ldr r0, _08135170
ldr r1, _08135174
- bl AppendString
+ bl StringAppend
b _081351D8
.align 2
_08135170: .4byte 0x020231cc
@@ -635559,7 +634570,7 @@ _08135178:
bne _08135190
ldr r0, _08135188
ldr r1, _0813518C
- bl AppendString
+ bl StringAppend
b _08135198
.align 2
_08135188: .4byte 0x020231cc
@@ -635567,11 +634578,11 @@ _0813518C: .4byte gUnknown_08400E23
_08135190:
ldr r0, _081351A4
ldr r1, _081351A8
- bl AppendString
+ bl StringAppend
_08135198:
ldr r0, _081351A4
ldr r1, _081351AC
- bl AppendString
+ bl StringAppend
b _081351D8
.align 2
_081351A4: .4byte 0x020231cc
@@ -635582,7 +634593,7 @@ _081351B0:
bne _081351C8
ldr r0, _081351C0
ldr r1, _081351C4
- bl AppendString
+ bl StringAppend
b _081351D0
.align 2
_081351C0: .4byte 0x020231cc
@@ -635590,18 +634601,18 @@ _081351C4: .4byte gUnknown_08400E23
_081351C8:
ldr r0, _081351F0
ldr r1, _081351F4
- bl AppendString
+ bl StringAppend
_081351D0:
ldr r0, _081351F0
ldr r1, _081351F8
- bl AppendString
+ bl StringAppend
_081351D8:
ldr r0, _081351F0
movs r1, 0xB
muls r1, r6
ldr r2, _081351FC
adds r1, r2
- bl AppendString
+ bl StringAppend
_081351E6:
adds r0, r4, 0
pop {r4-r6}
@@ -635844,10 +634855,10 @@ _081353A8:
ldr r4, _081353CC
ldr r1, _081353DC
adds r0, r4, 0
- bl AppendString
+ bl StringAppend
ldr r1, _081353E0
adds r0, r4, 0
- bl AppendString
+ bl StringAppend
b _0813543E
.align 2
_081353C4: .4byte 0x03004360
@@ -635865,7 +634876,7 @@ _081353E4:
beq _08135400
ldr r0, _081353F8
ldr r1, _081353FC
- bl AppendString
+ bl StringAppend
b _08135408
.align 2
_081353F8: .4byte 0x020231cc
@@ -635873,11 +634884,11 @@ _081353FC: .4byte gUnknown_08400E2E
_08135400:
ldr r0, _08135414
ldr r1, _08135418
- bl AppendString
+ bl StringAppend
_08135408:
ldr r0, _08135414
ldr r1, _0813541C
- bl AppendString
+ bl StringAppend
b _0813543E
.align 2
_08135414: .4byte 0x020231cc
@@ -636755,7 +635766,7 @@ _08135B0E:
adds r0, r5, 0x4
subs r4, 0xA
adds r1, r4, 0
- bl CopyString_Limit7
+ bl StringCopy8
adds r0, r6, 0
bl sub_8135D3C
strh r0, [r5, 0x2]
@@ -637284,7 +636295,7 @@ _08135F2A:
adds r0, r7, 0x4
subs r4, 0xA
adds r1, r4, 0
- bl CopyString_Limit7
+ bl StringCopy8
movs r0, 0x1
strh r0, [r7, 0x2]
movs r5, 0x7
@@ -638833,11 +637844,11 @@ sub_8136BB8: ; 8136BB8
bl PokemonGetField
ldr r0, [r4]
adds r0, 0x10
- bl GetStringEnd_Limit7
+ bl StringGetEnd10
ldr r0, [r4]
adds r0, 0x10
ldr r1, _08136C38
- bl AppendString
+ bl StringAppend
ldr r0, _08136C3C
bl sub_8071E2C
movs r0, 0
@@ -639092,10 +638103,10 @@ _08136DD8:
adds r0, r1
ldr r1, [r0]
adds r0, r4, 0
- bl CopyString
+ bl StringCopy
ldr r1, _08136DF8
adds r0, r4, 0
- bl AppendString
+ bl StringAppend
b _08136E04
.align 2
_08136DF4: .4byte gUnknown_08406134
@@ -639103,7 +638114,7 @@ _08136DF8: .4byte gUnknown_084115C2
_08136DFC:
ldr r1, _08136E0C
adds r0, r4, 0
- bl CopyString
+ bl StringCopy
_08136E04:
pop {r4}
pop {r0}
@@ -641019,7 +640030,7 @@ _08137C00:
bl PokemonGetField
ldr r0, [sp, 0x84]
ldr r1, [sp, 0x8C]
- bl CopyString_Limit10
+ bl StringCopy10
adds r0, r4, 0
movs r1, 0x7
ldr r2, [sp, 0x88]
@@ -646172,7 +645183,7 @@ sub_813A6FC: ; 813A6FC
ldrsh r1, [r4, r2]
movs r2, 0
movs r3, 0x3
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
ldr r0, _0813A768
bl sub_813AD58
adds r0, r7, 0
@@ -646242,7 +645253,7 @@ sub_813A794: ; 813A794
ldrsh r1, [r4, r2]
movs r2, 0
movs r3, 0x3
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
ldr r0, _0813A80C
bl sub_813AD58
movs r0, 0x7
@@ -647339,7 +646350,7 @@ _0813B036:
ldr r0, _0813B0C0
adds r1, r0
mov r0, r8
- bl CopyString
+ bl StringCopy
mov r0, r8
bl sub_814A568
mov r0, r8
@@ -647627,13 +646638,13 @@ sub_813B294: ; 813B294
ldr r0, _0813B2F0
adds r1, r0
adds r0, r4, 0
- bl CopyString
+ bl StringCopy
adds r0, r4, 0
bl sub_814A568
ldr r4, _0813B2F4
ldr r1, _0813B2F8
adds r0, r4, 0
- bl PrintSimple
+ bl StringExpandPlaceholders
ldr r2, _0813B2FC
adds r0, r5, 0
adds r1, r4, 0
@@ -647927,7 +646938,7 @@ sub_813B510: ; 813B510
bl sub_8072DEC
ldr r0, _0813B540
ldr r1, _0813B544
- bl CopyString
+ bl StringCopy
ldr r0, _0813B548
movs r1, 0x1
movs r2, 0x3
@@ -663027,7 +662038,7 @@ _08142C3C:
ldr r3, _08142CB8
ldr r1, _08142CBC
adds r0, r3, 0
- bl CopyString
+ bl StringCopy
adds r3, r0, 0
movs r5, 0xFC
strb r5, [r3]
@@ -663044,7 +662055,7 @@ _08142C3C:
movs r0, 0xA
ldrsh r1, [r4, r0]
adds r0, r3, 0
- bl ConvertNumToDecimalString3
+ bl ConvertIntToDecimalString
adds r3, r0, 0
strb r5, [r3]
movs r0, 0x13
@@ -663587,12 +662598,12 @@ sub_8143088: ; 8143088
beq _081430EA
ldr r1, _08143194
adds r0, r7, 0
- bl CopyString
+ bl StringCopy
adds r7, r0, 0
adds r1, r6, 0
movs r2, 0x2
movs r3, 0x3
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
_081430EA:
ldr r5, _08143188
mov r1, r8
@@ -663794,7 +662805,7 @@ _0814324A:
lsrs r6, r0, 1
ldr r1, _081432F8
adds r0, r5, 0
- bl CopyString
+ bl StringCopy
adds r7, r0, 0
strb r4, [r7]
movs r0, 0x14
@@ -663806,7 +662817,7 @@ _0814324A:
adds r1, r6, 0
movs r2, 0
movs r3, 0x3
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
adds r7, r0, 0
strb r4, [r7]
mov r0, r8
@@ -663828,12 +662839,12 @@ _0814324A:
ldrh r6, [r0]
ldr r1, _081432FC
adds r0, r5, 0
- bl CopyString
+ bl StringCopy
adds r7, r0, 0
adds r1, r6, 0
movs r2, 0x2
movs r3, 0x5
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
ldr r2, [sp, 0x10]
lsls r1, r2, 24
lsrs r1, 24
@@ -663907,7 +662918,7 @@ sub_8143300: ; 8143300
mov r0, r9
movs r2, 0x2
movs r3, 0x5
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
mov r0, r9
mov r1, r8
adds r2, r4, 0
@@ -663922,7 +662933,7 @@ sub_8143300: ; 8143300
mov r0, r10
ldrh r1, [r0, 0xE]
mov r0, r9
- bl ConvertNumToDecimalString3
+ bl ConvertIntToDecimalString
adds r2, r0, 0
movs r1, 0
strb r1, [r2]
@@ -663935,7 +662946,7 @@ sub_8143300: ; 8143300
adds r0, r2, 0
movs r2, 0x2
movs r3, 0x2
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
adds r2, r0, 0
movs r0, 0xFF
strb r0, [r2]
@@ -669068,7 +668079,7 @@ _08145C44:
bl PokemonGetEncryptedField
_08145C6C:
ldr r0, _08145C88
- bl GetStringEnd_Limit7
+ bl StringGetEnd10
_08145C72:
pop {r3-r5}
mov r8, r3
@@ -669479,7 +668490,7 @@ pokedex_diploma_something: ; 8145FB8
strh r0, [r1]
ldr r0, _08145FE0
ldr r1, _08145FE4
- bl CopyString
+ bl StringCopy
b _08145FF4
.align 2
_08145FDC: .4byte 0x0400001c
@@ -669490,7 +668501,7 @@ _08145FE8:
strh r1, [r0]
ldr r0, _08146008
ldr r1, _0814600C
- bl CopyString
+ bl StringCopy
_08145FF4:
ldr r0, _08146010
movs r1, 0x6
@@ -670103,7 +669114,7 @@ sub_81464E4: ; 81464E4
adds r0, r7, 0
movs r2, 0x2
movs r3, 0x2
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
adds r0, r7, 0
movs r1, 0xC
movs r2, 0x4
@@ -670156,12 +669167,12 @@ _0814654E:
adds r1, r4, 0
movs r2, 0
movs r3, 0x2
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
ldr r0, _081465A8
adds r1, r6, 0
movs r2, 0
movs r3, 0x2
- bl ConvertNumToDecimalString
+ bl ConvertIntToDecimalStringN
ldr r0, _081465AC
movs r1, 0x10
movs r2, 0x7
@@ -670695,7 +669706,7 @@ sub_81469AC: ; 81469AC
cmp r4, 0
bne _081469C0
ldr r1, _081469DC
- bl CopyString
+ bl StringCopy
movs r5, 0
_081469C0:
cmp r4, 0x2
@@ -670706,7 +669717,7 @@ _081469C6:
bne _081469D2
ldr r1, _081469E0
adds r0, r6, 0
- bl CopyString
+ bl StringCopy
_081469D2:
adds r0, r5, 0
pop {r4-r6}
@@ -673175,7 +672186,7 @@ sub_8147E40: ; 8147E40
bne _08147EB8
ldr r0, _08147EB0
ldr r1, _08147EB4
- bl PrintSimple
+ bl StringExpandPlaceholders
b _08147ED8
.align 2
_08147E94: .4byte 0x02039310
@@ -673192,7 +672203,7 @@ _08147EB8:
ble _08147ED0
ldr r0, _08147EC8
ldr r1, _08147ECC
- bl PrintSimple
+ bl StringExpandPlaceholders
b _08147ED8
.align 2
_08147EC8: .4byte 0x020234cc
@@ -673200,7 +672211,7 @@ _08147ECC: .4byte gUnknown_0840EC5C
_08147ED0:
ldr r0, _08147EF8
ldr r1, _08147EFC
- bl PrintSimple
+ bl StringExpandPlaceholders
_08147ED8:
ldr r0, _08147EF8
movs r1, 0x1
@@ -678008,7 +677019,7 @@ sub_814A518: ; 814A518
lsrs r5, r1, 24
bl StripExtendedControlCodes
adds r0, r4, 0
- bl sub_8006B34
+ bl StringGetLength
lsls r0, 24
lsrs r1, r0, 24
cmp r5, 0xFC
@@ -678049,7 +677060,7 @@ _0814A55A:
sub_814A568: ; 814A568
push {r4,lr}
adds r4, r0, 0
- bl sub_8006B34
+ bl StringGetLength
lsls r0, 16
lsrs r0, 16
cmp r0, 0x5
diff --git a/build.bat b/build.bat
index 229bfb83b..d59a88aec 100644
--- a/build.bat
+++ b/build.bat
@@ -1,4 +1,4 @@
as -mcpu=arm7tdmi asm/rom.s -o rom.o
-ld -T ld_script.txt -T wram_syms.txt -o pokeruby.elf rom.o
+ld -T ld_script.txt -T iwram_syms.txt -T ewram_syms.txt -o pokeruby.elf rom.o
objcopy -O binary pokeruby.elf pokeruby.gba
diff baserom.gba pokeruby.gba
diff --git a/data/data2.s b/data/data2.s
index a1348c818..88cf02113 100644
--- a/data/data2.s
+++ b/data/data2.s
@@ -348,20 +348,8 @@ gUnknown_081E7294: ; 81E7294
gUnknown_081E72B0: ; 81E72B0
.incbin "baserom.gba", 0x001e72b0, 0x3
-gUnknown_081E72B3: ; 81E72B3
- .incbin "baserom.gba", 0x001e72b3, 0x11
-
-gUnknown_081E72C4: ; 81E72C4
- .incbin "baserom.gba", 0x001e72c4, 0x28
-
-gUnknown_081E72EC: ; 81E72EC
- .incbin "baserom.gba", 0x001e72ec, 0x4
-
-gUnknown_081E72F0: ; 81E72F0
- .incbin "baserom.gba", 0x001e72f0, 0x8
-
-gUnknown_081E72F8: ; 81E72F8
- .incbin "baserom.gba", 0x001e72f8, 0x38
+; 81E72B3
+ .include "data/string_util.s"
gUnknown_081E7330: ; 81E7330
.incbin "baserom.gba", 0x001e7330, 0x20
@@ -6253,41 +6241,44 @@ gUnknown_0840CB4C: ; 840CB4C
gUnknown_0840D288: ; 840D288
.incbin "baserom.gba", 0x0040d288, 0x9f8
-gUnknown_0840DC80: ; 840DC80
- .incbin "baserom.gba", 0x0040dc80, 0x1
+gExpandedPlaceholder_Empty: ; 840DC80
+ .string "$"
+
+gExpandedPlaceholder_MaleEmpty: ; 840DC81
+ .string "$"
-gUnknown_0840DC81: ; 840DC81
- .incbin "baserom.gba", 0x0040dc81, 0x1
+gExpandedPlaceholder_FemaleEmpty: ; 840DC82
+ .string "$"
-gUnknown_0840DC82: ; 840DC82
- .incbin "baserom.gba", 0x0040dc82, 0xa
+gExpandedPlaceholder_Sapphire: ; 840DC83
+ .string "SAPPHIRE$"
-gUnknown_0840DC8C: ; 840DC8C
- .incbin "baserom.gba", 0x0040dc8c, 0x5
+gExpandedPlaceholder_Ruby: ; 840DC8C
+ .string "RUBY$"
-gUnknown_0840DC91: ; 840DC91
- .incbin "baserom.gba", 0x0040dc91, 0x5
+gExpandedPlaceholder_Aqua: ; 840DC91
+ .string "AQUA$"
-gUnknown_0840DC96: ; 840DC96
- .incbin "baserom.gba", 0x0040dc96, 0x6
+gExpandedPlaceholder_Magma: ; 840DC96
+ .string "MAGMA$"
-gUnknown_0840DC9C: ; 840DC9C
- .incbin "baserom.gba", 0x0040dc9c, 0x7
+gExpandedPlaceholder_Archie: ; 840DC9C
+ .string "ARCHIE$"
-gUnknown_0840DCA3: ; 840DCA3
- .incbin "baserom.gba", 0x0040dca3, 0x6
+gExpandedPlaceholder_Maxie: ; 840DCA3
+ .string "MAXIE$"
-gUnknown_0840DCA9: ; 840DCA9
- .incbin "baserom.gba", 0x0040dca9, 0x7
+gExpandedPlaceholder_Kyogre: ; 840DCA9
+ .string "KYOGRE$"
-gUnknown_0840DCB0: ; 840DCB0
- .incbin "baserom.gba", 0x0040dcb0, 0x8
+gExpandedPlaceholder_Groudon: ; 840DCB0
+ .string "GROUDON$"
-gUnknown_0840DCB8: ; 840DCB8
- .incbin "baserom.gba", 0x0040dcb8, 0x8
+gExpandedPlaceholder_Brendan: ; 840DCB8
+ .string "BRENDAN$"
-gUnknown_0840DCC0: ; 840DCC0
- .incbin "baserom.gba", 0x0040dcc0, 0x4
+gExpandedPlaceholder_May: ; 840DCC0
+ .string "MAY$"
gUnknown_0840DCC4: ; 840DCC4
.incbin "baserom.gba", 0x0040dcc4, 0x4
diff --git a/data/string_util.s b/data/string_util.s
new file mode 100644
index 000000000..4b750ac91
--- /dev/null
+++ b/data/string_util.s
@@ -0,0 +1,40 @@
+gDigits: ; 81E72B3
+ .charmapstr "0123456789ABCDEF"
+
+ .align 2
+
+gPowersOfTen: ; 81E72C4
+ .4byte 1
+ .4byte 10
+ .4byte 100
+ .4byte 1000
+ .4byte 10000
+ .4byte 100000
+ .4byte 1000000
+ .4byte 10000000
+ .4byte 100000000
+ .4byte 1000000000
+
+gUnknown_081E72EC: ; 81E72EC
+ .byte 0xFC, 0x06, 0x06, 0xFF
+
+gUnknown_081E72F0: ; 81E72F0
+ .byte 0xFE, 0xFC, 0x0E, 0x02, 0xFF
+
+ .align 2
+
+gExpandPlaceholderFuncTable: ; 81E72F8
+ .4byte ExpandPlaceholder_UnknownStringVar
+ .4byte ExpandPlaceholder_PlayerName
+ .4byte ExpandPlaceholder_StringVar1
+ .4byte ExpandPlaceholder_StringVar2
+ .4byte ExpandPlaceholder_StringVar3
+ .4byte ExpandPlaceholder_UnknownString
+ .4byte ExpandPlaceholder_RivalName
+ .4byte ExpandPlaceholder_Version
+ .4byte ExpandPlaceholder_EvilTeam
+ .4byte ExpandPlaceholder_GoodTeam
+ .4byte ExpandPlaceholder_EvilTeamLeader
+ .4byte ExpandPlaceholder_GoodTeamLeader
+ .4byte ExpandPlaceholder_CurVersionMascot
+ .4byte ExpandPlaceholder_OppVersionMascot
diff --git a/ewram_syms.txt b/ewram_syms.txt
new file mode 100644
index 000000000..5e6593754
--- /dev/null
+++ b/ewram_syms.txt
@@ -0,0 +1,5 @@
+gStringVar1 = 0x20231CC;
+gStringVar2 = 0x20232CC;
+gStringVar3 = 0x20233CC;
+
+gSaveBlock2 = 0x2024EA4;
diff --git a/include/gba/io_reg.h b/include/gba/io_reg.h
new file mode 100644
index 000000000..ed27f33b8
--- /dev/null
+++ b/include/gba/io_reg.h
@@ -0,0 +1,415 @@
+#ifndef GUARD_GBA_IO_REG_H
+#define GUARD_GBA_IO_REG_H
+
+#define REG_BASE 0x4000000 // I/O register base address
+
+// I/O register offsets
+
+#define REG_OFFSET_DISPCNT 0x0
+#define REG_OFFSET_DISPSTAT 0x4
+#define REG_OFFSET_VCOUNT 0x6
+#define REG_OFFSET_BG0CNT 0x8
+#define REG_OFFSET_BG1CNT 0xa
+#define REG_OFFSET_BG2CNT 0xc
+#define REG_OFFSET_BG3CNT 0xe
+#define REG_OFFSET_BG0HOFS 0x10
+#define REG_OFFSET_BG0VOFS 0x12
+#define REG_OFFSET_BG1HOFS 0x14
+#define REG_OFFSET_BG1VOFS 0x16
+#define REG_OFFSET_BG2HOFS 0x18
+#define REG_OFFSET_BG2VOFS 0x1a
+#define REG_OFFSET_BG3HOFS 0x1c
+#define REG_OFFSET_BG3VOFS 0x1e
+#define REG_OFFSET_BG2PA 0x20
+#define REG_OFFSET_BG2PB 0x22
+#define REG_OFFSET_BG2PC 0x24
+#define REG_OFFSET_BG2PD 0x26
+#define REG_OFFSET_BG2X_L 0x28
+#define REG_OFFSET_BG2X_H 0x2a
+#define REG_OFFSET_BG2Y_L 0x2c
+#define REG_OFFSET_BG2Y_H 0x2e
+#define REG_OFFSET_BG3PA 0x30
+#define REG_OFFSET_BG3PB 0x32
+#define REG_OFFSET_BG3PC 0x34
+#define REG_OFFSET_BG3PD 0x36
+#define REG_OFFSET_BG3X_L 0x38
+#define REG_OFFSET_BG3X_H 0x3a
+#define REG_OFFSET_BG3Y_L 0x3c
+#define REG_OFFSET_BG3Y_H 0x3e
+#define REG_OFFSET_WIN0H 0x40
+#define REG_OFFSET_WIN1H 0x42
+#define REG_OFFSET_WIN0V 0x44
+#define REG_OFFSET_WIN1V 0x46
+#define REG_OFFSET_WININ 0x48
+#define REG_OFFSET_WINOUT 0x4a
+#define REG_OFFSET_MOSAIC 0x4c
+#define REG_OFFSET_BLDCNT 0x50
+#define REG_OFFSET_BLDALPHA 0x52
+#define REG_OFFSET_BLDY 0x54
+
+#define REG_OFFSET_SOUND1CNT 0x60
+#define REG_OFFSET_SOUND1CNT_L 0x60
+#define REG_OFFSET_SOUND1CNT_H 0x62
+#define REG_OFFSET_SOUND1CNT_X 0x64
+#define REG_OFFSET_SOUND2CNT 0x68
+#define REG_OFFSET_SOUND2CNT_L 0x68
+#define REG_OFFSET_SOUND2CNT_H 0x6c
+#define REG_OFFSET_SOUND3CNT 0x70
+#define REG_OFFSET_SOUND3CNT_L 0x70
+#define REG_OFFSET_SOUND3CNT_H 0x72
+#define REG_OFFSET_SOUND3CNT_X 0x74
+#define REG_OFFSET_SOUND4CNT 0x78
+#define REG_OFFSET_SOUND4CNT_L 0x78
+#define REG_OFFSET_SOUND4CNT_H 0x7c
+#define REG_OFFSET_SOUNDCNT 0x80
+#define REG_OFFSET_SOUNDCNT_L 0x80
+#define REG_OFFSET_SOUNDCNT_H 0x82
+#define REG_OFFSET_SOUNDCNT_X 0x84
+#define REG_OFFSET_SOUNDBIAS 0x88
+#define REG_OFFSET_WAVE_RAM 0x90
+#define REG_OFFSET_WAVE_RAM0 0x90
+#define REG_OFFSET_WAVE_RAM0_L 0x90
+#define REG_OFFSET_WAVE_RAM0_H 0x92
+#define REG_OFFSET_WAVE_RAM1 0x94
+#define REG_OFFSET_WAVE_RAM1_L 0x94
+#define REG_OFFSET_WAVE_RAM1_H 0x96
+#define REG_OFFSET_WAVE_RAM2 0x98
+#define REG_OFFSET_WAVE_RAM2_L 0x98
+#define REG_OFFSET_WAVE_RAM2_H 0x9a
+#define REG_OFFSET_WAVE_RAM3 0x9c
+#define REG_OFFSET_WAVE_RAM3_L 0x9c
+#define REG_OFFSET_WAVE_RAM3_H 0x9e
+#define REG_OFFSET_FIFO 0xa0
+#define REG_OFFSET_FIFO_A 0xa0
+#define REG_OFFSET_FIFO_A_L 0xa0
+#define REG_OFFSET_FIFO_A_H 0xa2
+#define REG_OFFSET_FIFO_B 0xa4
+#define REG_OFFSET_FIFO_B_L 0xa4
+#define REG_OFFSET_FIFO_B_H 0xa6
+
+#define REG_OFFSET_DMA0 0xb0
+#define REG_OFFSET_DMA0SAD 0xb0
+#define REG_OFFSET_DMA0SAD_L 0xb0
+#define REG_OFFSET_DMA0SAD_H 0xb2
+#define REG_OFFSET_DMA0DAD 0xb4
+#define REG_OFFSET_DMA0DAD_L 0xb4
+#define REG_OFFSET_DMA0DAD_H 0xb6
+#define REG_OFFSET_DMA0CNT 0xb8
+#define REG_OFFSET_DMA0CNT_L 0xb8
+#define REG_OFFSET_DMA0CNT_H 0xba
+#define REG_OFFSET_DMA1 0xbc
+#define REG_OFFSET_DMA1SAD 0xbc
+#define REG_OFFSET_DMA1SAD_L 0xbc
+#define REG_OFFSET_DMA1SAD_H 0xbe
+#define REG_OFFSET_DMA1DAD 0xc0
+#define REG_OFFSET_DMA1DAD_L 0xc0
+#define REG_OFFSET_DMA1DAD_H 0xc2
+#define REG_OFFSET_DMA1CNT 0xc4
+#define REG_OFFSET_DMA1CNT_L 0xc4
+#define REG_OFFSET_DMA1CNT_H 0xc6
+#define REG_OFFSET_DMA2 0xc8
+#define REG_OFFSET_DMA2SAD 0xc8
+#define REG_OFFSET_DMA2SAD_L 0xc8
+#define REG_OFFSET_DMA2SAD_H 0xca
+#define REG_OFFSET_DMA2DAD 0xcc
+#define REG_OFFSET_DMA2DAD_L 0xcc
+#define REG_OFFSET_DMA2DAD_H 0xce
+#define REG_OFFSET_DMA2CNT 0xd0
+#define REG_OFFSET_DMA2CNT_L 0xd0
+#define REG_OFFSET_DMA2CNT_H 0xd2
+#define REG_OFFSET_DMA3 0xd4
+#define REG_OFFSET_DMA3SAD 0xd4
+#define REG_OFFSET_DMA3SAD_L 0xd4
+#define REG_OFFSET_DMA3SAD_H 0xd6
+#define REG_OFFSET_DMA3DAD 0xd8
+#define REG_OFFSET_DMA3DAD_L 0xd8
+#define REG_OFFSET_DMA3DAD_H 0xda
+#define REG_OFFSET_DMA3CNT 0xdc
+#define REG_OFFSET_DMA3CNT_L 0xdc
+#define REG_OFFSET_DMA3CNT_H 0xde
+
+#define REG_OFFSET_TM0CNT 0x100
+#define REG_OFFSET_TM0CNT_L 0x100
+#define REG_OFFSET_TM0CNT_H 0x102
+#define REG_OFFSET_TM1CNT 0x104
+#define REG_OFFSET_TM1CNT_L 0x104
+#define REG_OFFSET_TM1CNT_H 0x106
+#define REG_OFFSET_TM2CNT 0x108
+#define REG_OFFSET_TM2CNT_L 0x108
+#define REG_OFFSET_TM2CNT_H 0x10a
+#define REG_OFFSET_TM3CNT 0x10c
+#define REG_OFFSET_TM3CNT_L 0x10c
+#define REG_OFFSET_TM3CNT_H 0x10e
+
+#define REG_OFFSET_SIOCNT 0x128
+#define REG_OFFSET_SIODATA8 0x12a
+#define REG_OFFSET_SIODATA32 0x120
+#define REG_OFFSET_SIOMLT_SEND 0x12a
+#define REG_OFFSET_SIOMLT_RECV 0x120
+#define REG_OFFSET_SIOMULTI0 0x120
+#define REG_OFFSET_SIOMULTI1 0x122
+#define REG_OFFSET_SIOMULTI2 0x124
+#define REG_OFFSET_SIOMULTI3 0x126
+
+#define REG_OFFSET_KEYINPUT 0x130
+#define REG_OFFSET_KEYCNT 0x132
+
+#define REG_OFFSET_RCNT 0x134
+
+#define REG_OFFSET_JOYCNT 0x140
+#define REG_OFFSET_JOYSTAT 0x158
+#define REG_OFFSET_JOY_RECV 0x150
+#define REG_OFFSET_JOY_RECV_L 0x150
+#define REG_OFFSET_JOY_RECV_H 0x152
+#define REG_OFFSET_JOY_TRANS 0x154
+#define REG_OFFSET_JOY_TRANS_L 0x154
+#define REG_OFFSET_JOY_TRANS_H 0x156
+
+#define REG_OFFSET_IME 0x208
+#define REG_OFFSET_IE 0x200
+#define REG_OFFSET_IF 0x202
+
+#define REG_OFFSET_WAITCNT 0x204
+
+// I/O register addresses
+
+#define REG_ADDR_DISPCNT (REG_BASE + REG_OFFSET_DISPCNT)
+#define REG_ADDR_DISPSTAT (REG_BASE + REG_OFFSET_DISPSTAT)
+#define REG_ADDR_VCOUNT (REG_BASE + REG_OFFSET_VCOUNT)
+#define REG_ADDR_BG0CNT (REG_BASE + REG_OFFSET_BG0CNT)
+#define REG_ADDR_BG1CNT (REG_BASE + REG_OFFSET_BG1CNT)
+#define REG_ADDR_BG2CNT (REG_BASE + REG_OFFSET_BG2CNT)
+#define REG_ADDR_BG3CNT (REG_BASE + REG_OFFSET_BG3CNT)
+#define REG_ADDR_BG0HOFS (REG_BASE + REG_OFFSET_BG0HOFS)
+#define REG_ADDR_BG0VOFS (REG_BASE + REG_OFFSET_BG0VOFS)
+#define REG_ADDR_BG1HOFS (REG_BASE + REG_OFFSET_BG1HOFS)
+#define REG_ADDR_BG1VOFS (REG_BASE + REG_OFFSET_BG1VOFS)
+#define REG_ADDR_BG2HOFS (REG_BASE + REG_OFFSET_BG2HOFS)
+#define REG_ADDR_BG2VOFS (REG_BASE + REG_OFFSET_BG2VOFS)
+#define REG_ADDR_BG3HOFS (REG_BASE + REG_OFFSET_BG3HOFS)
+#define REG_ADDR_BG3VOFS (REG_BASE + REG_OFFSET_BG3VOFS)
+#define REG_ADDR_BG2PA (REG_BASE + REG_OFFSET_BG2PA)
+#define REG_ADDR_BG2PB (REG_BASE + REG_OFFSET_BG2PB)
+#define REG_ADDR_BG2PC (REG_BASE + REG_OFFSET_BG2PC)
+#define REG_ADDR_BG2PD (REG_BASE + REG_OFFSET_BG2PD)
+#define REG_ADDR_BG2X_L (REG_BASE + REG_OFFSET_BG2X_L)
+#define REG_ADDR_BG2X_H (REG_BASE + REG_OFFSET_BG2X_H)
+#define REG_ADDR_BG2Y_L (REG_BASE + REG_OFFSET_BG2Y_L)
+#define REG_ADDR_BG2Y_H (REG_BASE + REG_OFFSET_BG2Y_H)
+#define REG_ADDR_BG3PA (REG_BASE + REG_OFFSET_BG3PA)
+#define REG_ADDR_BG3PB (REG_BASE + REG_OFFSET_BG3PB)
+#define REG_ADDR_BG3PC (REG_BASE + REG_OFFSET_BG3PC)
+#define REG_ADDR_BG3PD (REG_BASE + REG_OFFSET_BG3PD)
+#define REG_ADDR_BG3X_L (REG_BASE + REG_OFFSET_BG3X_L)
+#define REG_ADDR_BG3X_H (REG_BASE + REG_OFFSET_BG3X_H)
+#define REG_ADDR_BG3Y_L (REG_BASE + REG_OFFSET_BG3Y_L)
+#define REG_ADDR_BG3Y_H (REG_BASE + REG_OFFSET_BG3Y_H)
+#define REG_ADDR_WIN0H (REG_BASE + REG_OFFSET_WIN0H)
+#define REG_ADDR_WIN1H (REG_BASE + REG_OFFSET_WIN1H)
+#define REG_ADDR_WIN0V (REG_BASE + REG_OFFSET_WIN0V)
+#define REG_ADDR_WIN1V (REG_BASE + REG_OFFSET_WIN1V)
+#define REG_ADDR_WININ (REG_BASE + REG_OFFSET_WININ)
+#define REG_ADDR_WINOUT (REG_BASE + REG_OFFSET_WINOUT)
+#define REG_ADDR_MOSAIC (REG_BASE + REG_OFFSET_MOSAIC)
+#define REG_ADDR_BLDCNT (REG_BASE + REG_OFFSET_BLDCNT)
+#define REG_ADDR_BLDALPHA (REG_BASE + REG_OFFSET_BLDALPHA)
+#define REG_ADDR_BLDY (REG_BASE + REG_OFFSET_BLDY)
+
+#define REG_ADDR_SOUND1CNT (REG_BASE + REG_OFFSET_SOUND1CNT)
+#define REG_ADDR_SOUND1CNT_L (REG_BASE + REG_OFFSET_SOUND1CNT_L)
+#define REG_ADDR_SOUND1CNT_H (REG_BASE + REG_OFFSET_SOUND1CNT_H)
+#define REG_ADDR_SOUND1CNT_X (REG_BASE + REG_OFFSET_SOUND1CNT_X)
+#define REG_ADDR_SOUND2CNT (REG_BASE + REG_OFFSET_SOUND2CNT)
+#define REG_ADDR_SOUND2CNT_L (REG_BASE + REG_OFFSET_SOUND2CNT_L)
+#define REG_ADDR_SOUND2CNT_H (REG_BASE + REG_OFFSET_SOUND2CNT_H)
+#define REG_ADDR_SOUND3CNT (REG_BASE + REG_OFFSET_SOUND3CNT)
+#define REG_ADDR_SOUND3CNT_L (REG_BASE + REG_OFFSET_SOUND3CNT_L)
+#define REG_ADDR_SOUND3CNT_H (REG_BASE + REG_OFFSET_SOUND3CNT_H)
+#define REG_ADDR_SOUND3CNT_X (REG_BASE + REG_OFFSET_SOUND3CNT_X)
+#define REG_ADDR_SOUND4CNT (REG_BASE + REG_OFFSET_SOUND4CNT)
+#define REG_ADDR_SOUND4CNT_L (REG_BASE + REG_OFFSET_SOUND4CNT_L)
+#define REG_ADDR_SOUND4CNT_H (REG_BASE + REG_OFFSET_SOUND4CNT_H)
+#define REG_ADDR_SOUNDCNT (REG_BASE + REG_OFFSET_SOUNDCNT)
+#define REG_ADDR_SOUNDCNT_L (REG_BASE + REG_OFFSET_SOUNDCNT_L)
+#define REG_ADDR_SOUNDCNT_H (REG_BASE + REG_OFFSET_SOUNDCNT_H)
+#define REG_ADDR_SOUNDCNT_X (REG_BASE + REG_OFFSET_SOUNDCNT_X)
+#define REG_ADDR_SOUNDBIAS (REG_BASE + REG_OFFSET_SOUNDBIAS)
+#define REG_ADDR_WAVE_RAM (REG_BASE + REG_OFFSET_WAVE_RAM)
+#define REG_ADDR_WAVE_RAM0 (REG_BASE + REG_OFFSET_WAVE_RAM0)
+#define REG_ADDR_WAVE_RAM0_L (REG_BASE + REG_OFFSET_WAVE_RAM0_L)
+#define REG_ADDR_WAVE_RAM0_H (REG_BASE + REG_OFFSET_WAVE_RAM0_H)
+#define REG_ADDR_WAVE_RAM1 (REG_BASE + REG_OFFSET_WAVE_RAM1)
+#define REG_ADDR_WAVE_RAM1_L (REG_BASE + REG_OFFSET_WAVE_RAM1_L)
+#define REG_ADDR_WAVE_RAM1_H (REG_BASE + REG_OFFSET_WAVE_RAM1_H)
+#define REG_ADDR_WAVE_RAM2 (REG_BASE + REG_OFFSET_WAVE_RAM2)
+#define REG_ADDR_WAVE_RAM2_L (REG_BASE + REG_OFFSET_WAVE_RAM2_L)
+#define REG_ADDR_WAVE_RAM2_H (REG_BASE + REG_OFFSET_WAVE_RAM2_H)
+#define REG_ADDR_WAVE_RAM3 (REG_BASE + REG_OFFSET_WAVE_RAM3)
+#define REG_ADDR_WAVE_RAM3_L (REG_BASE + REG_OFFSET_WAVE_RAM3_L)
+#define REG_ADDR_WAVE_RAM3_H (REG_BASE + REG_OFFSET_WAVE_RAM3_H)
+#define REG_ADDR_FIFO (REG_BASE + REG_OFFSET_FIFO)
+#define REG_ADDR_FIFO_A (REG_BASE + REG_OFFSET_FIFO_A)
+#define REG_ADDR_FIFO_A_L (REG_BASE + REG_OFFSET_FIFO_A_L)
+#define REG_ADDR_FIFO_A_H (REG_BASE + REG_OFFSET_FIFO_A_H)
+#define REG_ADDR_FIFO_B (REG_BASE + REG_OFFSET_FIFO_B)
+#define REG_ADDR_FIFO_B_L (REG_BASE + REG_OFFSET_FIFO_B_L)
+#define REG_ADDR_FIFO_B_H (REG_BASE + REG_OFFSET_FIFO_B_H)
+
+#define REG_ADDR_DMA0 (REG_BASE + REG_OFFSET_DMA0)
+#define REG_ADDR_DMA0SAD (REG_BASE + REG_OFFSET_DMA0SAD)
+#define REG_ADDR_DMA0DAD (REG_BASE + REG_OFFSET_DMA0DAD)
+#define REG_ADDR_DMA0CNT (REG_BASE + REG_OFFSET_DMA0CNT)
+#define REG_ADDR_DMA0CNT_L (REG_BASE + REG_OFFSET_DMA0CNT_L)
+#define REG_ADDR_DMA0CNT_H (REG_BASE + REG_OFFSET_DMA0CNT_H)
+#define REG_ADDR_DMA1 (REG_BASE + REG_OFFSET_DMA1)
+#define REG_ADDR_DMA1SAD (REG_BASE + REG_OFFSET_DMA1SAD)
+#define REG_ADDR_DMA1DAD (REG_BASE + REG_OFFSET_DMA1DAD)
+#define REG_ADDR_DMA1CNT (REG_BASE + REG_OFFSET_DMA1CNT)
+#define REG_ADDR_DMA1CNT_L (REG_BASE + REG_OFFSET_DMA1CNT_L)
+#define REG_ADDR_DMA1CNT_H (REG_BASE + REG_OFFSET_DMA1CNT_H)
+#define REG_ADDR_DMA2 (REG_BASE + REG_OFFSET_DMA2)
+#define REG_ADDR_DMA2SAD (REG_BASE + REG_OFFSET_DMA2SAD)
+#define REG_ADDR_DMA2DAD (REG_BASE + REG_OFFSET_DMA2DAD)
+#define REG_ADDR_DMA2CNT (REG_BASE + REG_OFFSET_DMA2CNT)
+#define REG_ADDR_DMA2CNT_L (REG_BASE + REG_OFFSET_DMA2CNT_L)
+#define REG_ADDR_DMA2CNT_H (REG_BASE + REG_OFFSET_DMA2CNT_H)
+#define REG_ADDR_DMA3 (REG_BASE + REG_OFFSET_DMA3)
+#define REG_ADDR_DMA3SAD (REG_BASE + REG_OFFSET_DMA3SAD)
+#define REG_ADDR_DMA3DAD (REG_BASE + REG_OFFSET_DMA3DAD)
+#define REG_ADDR_DMA3CNT (REG_BASE + REG_OFFSET_DMA3CNT)
+#define REG_ADDR_DMA3CNT_L (REG_BASE + REG_OFFSET_DMA3CNT_L)
+#define REG_ADDR_DMA3CNT_H (REG_BASE + REG_OFFSET_DMA3CNT_H)
+
+#define REG_ADDR_TM0CNT (REG_BASE + REG_OFFSET_TM0CNT)
+#define REG_ADDR_TM0CNT_L (REG_BASE + REG_OFFSET_TM0CNT_L)
+#define REG_ADDR_TM0CNT_H (REG_BASE + REG_OFFSET_TM0CNT_H)
+#define REG_ADDR_TM1CNT (REG_BASE + REG_OFFSET_TM1CNT)
+#define REG_ADDR_TM1CNT_L (REG_BASE + REG_OFFSET_TM1CNT_L)
+#define REG_ADDR_TM1CNT_H (REG_BASE + REG_OFFSET_TM1CNT_H)
+#define REG_ADDR_TM2CNT (REG_BASE + REG_OFFSET_TM2CNT)
+#define REG_ADDR_TM2CNT_L (REG_BASE + REG_OFFSET_TM2CNT_L)
+#define REG_ADDR_TM2CNT_H (REG_BASE + REG_OFFSET_TM2CNT_H)
+#define REG_ADDR_TM3CNT (REG_BASE + REG_OFFSET_TM3CNT)
+#define REG_ADDR_TM3CNT_L (REG_BASE + REG_OFFSET_TM3CNT_L)
+#define REG_ADDR_TM3CNT_H (REG_BASE + REG_OFFSET_TM3CNT_H)
+
+#define REG_ADDR_SIOCNT (REG_BASE + REG_OFFSET_SIOCNT)
+#define REG_ADDR_SIODATA8 (REG_BASE + REG_OFFSET_SIODATA8)
+#define REG_ADDR_SIODATA32 (REG_BASE + REG_OFFSET_SIODATA32)
+#define REG_ADDR_SIOMLT_SEND (REG_BASE + REG_OFFSET_SIOMLT_SEND)
+#define REG_ADDR_SIOMLT_RECV (REG_BASE + REG_OFFSET_SIOMLT_RECV)
+#define REG_ADDR_SIOMULTI0 (REG_BASE + REG_OFFSET_SIOMULTI0)
+#define REG_ADDR_SIOMULTI1 (REG_BASE + REG_OFFSET_SIOMULTI1)
+#define REG_ADDR_SIOMULTI2 (REG_BASE + REG_OFFSET_SIOMULTI2)
+#define REG_ADDR_SIOMULTI3 (REG_BASE + REG_OFFSET_SIOMULTI3)
+
+#define REG_ADDR_KEYINPUT (REG_BASE + REG_OFFSET_KEYINPUT)
+#define REG_ADDR_KEYCNT (REG_BASE + REG_OFFSET_KEYCNT)
+
+#define REG_ADDR_RCNT (REG_BASE + REG_OFFSET_RCNT)
+
+#define REG_ADDR_JOYCNT (REG_BASE + REG_OFFSET_JOYCNT)
+#define REG_ADDR_JOYSTAT (REG_BASE + REG_OFFSET_JOYSTAT)
+#define REG_ADDR_JOY_RECV (REG_BASE + REG_OFFSET_JOY_RECV)
+#define REG_ADDR_JOY_RECV_L (REG_BASE + REG_OFFSET_JOY_RECV_L)
+#define REG_ADDR_JOY_RECV_H (REG_BASE + REG_OFFSET_JOY_RECV_H)
+#define REG_ADDR_JOY_TRANS (REG_BASE + REG_OFFSET_JOY_TRANS)
+#define REG_ADDR_JOY_TRANS_L (REG_BASE + REG_OFFSET_JOY_TRANS_L)
+#define REG_ADDR_JOY_TRANS_H (REG_BASE + REG_OFFSET_JOY_TRANS_H)
+
+#define REG_ADDR_IME (REG_BASE + REG_OFFSET_IME)
+#define REG_ADDR_IE (REG_BASE + REG_OFFSET_IE)
+#define REG_ADDR_IF (REG_BASE + REG_OFFSET_IF)
+
+#define REG_ADDR_WAITCNT (REG_BASE + REG_OFFSET_WAITCNT)
+
+// I/O registers
+
+#define REG_DISPCNT (*(vu32 *)REG_ADDR_DISPCNT)
+#define REG_DISPSTAT (*(vu16 *)REG_ADDR_DISPSTAT)
+#define REG_VCOUNT (*(vu16 *)REG_ADDR_VCOUNT)
+
+#define REG_DMA0SAD (*(vu32 *)REG_ADDR_DMA0SAD)
+#define REG_DMA0DAD (*(vu32 *)REG_ADDR_DMA0DAD)
+#define REG_DMA0CNT (*(vu32 *)REG_ADDR_DMA0CNT)
+#define REG_DMA0CNT_L (*(vu16 *)REG_ADDR_DMA0CNT_L)
+#define REG_DMA0CNT_H (*(vu16 *)REG_ADDR_DMA0CNT_H)
+
+#define REG_DMA1SAD (*(vu32 *)REG_ADDR_DMA1SAD)
+#define REG_DMA1DAD (*(vu32 *)REG_ADDR_DMA1DAD)
+#define REG_DMA1CNT (*(vu32 *)REG_ADDR_DMA1CNT)
+#define REG_DMA1CNT_L (*(vu16 *)REG_ADDR_DMA1CNT_L)
+#define REG_DMA1CNT_H (*(vu16 *)REG_ADDR_DMA1CNT_H)
+
+#define REG_DMA2SAD (*(vu32 *)REG_ADDR_DMA2SAD)
+#define REG_DMA2DAD (*(vu32 *)REG_ADDR_DMA2DAD)
+#define REG_DMA2CNT (*(vu32 *)REG_ADDR_DMA2CNT)
+#define REG_DMA2CNT_L (*(vu16 *)REG_ADDR_DMA2CNT_L)
+#define REG_DMA2CNT_H (*(vu16 *)REG_ADDR_DMA2CNT_H)
+
+#define REG_DMA3SAD (*(vu32 *)REG_ADDR_DMA3SAD)
+#define REG_DMA3DAD (*(vu32 *)REG_ADDR_DMA3DAD)
+#define REG_DMA3CNT (*(vu32 *)REG_ADDR_DMA3CNT)
+#define REG_DMA3CNT_L (*(vu16 *)REG_ADDR_DMA3CNT_L)
+#define REG_DMA3CNT_H (*(vu16 *)REG_ADDR_DMA3CNT_H)
+
+#define REG_IME (*(vu16 *)REG_ADDR_IME)
+#define REG_IE (*(vu16 *)REG_ADDR_IE)
+#define REG_IF (*(vu16 *)REG_ADDR_IF)
+
+// I/O register fields
+
+// DISPCNT
+#define DISPCNT_MODE_0 0x0000
+#define DISPCNT_MODE_1 0x0001
+#define DISPCNT_MODE_2 0x0002
+#define DISPCNT_MODE_3 0x0003
+#define DISPCNT_MODE_4 0x0004
+#define DISPCNT_MODE_5 0x0005
+#define DISPCNT_OBJ_1D_MAP 0x0040
+#define DISPCNT_FORCED_BLANK 0x0080
+
+// DISPSTAT
+#define DISPSTAT_VBLANK 0x0001 // in V-Blank
+#define DISPSTAT_HBLANK 0x0002 // in H-Blank
+#define DISPSTAT_VCOUNT 0x0004 // V-Count match
+#define DISPSTAT_VBLANK_INTR 0x0008 // V-Blank interrupt enabled
+#define DISPSTAT_HBLANK_INTR 0x0010 // H-Blank interrupt enabled
+#define DISPSTAT_VCOUNT_INTR 0x0020 // V-Count interrupt enabled
+
+// DMA
+#define DMA_DEST_INC 0x0000
+#define DMA_DEST_DEC 0x0020
+#define DMA_DEST_FIXED 0x0040
+#define DMA_DEST_RELOAD 0x0060
+#define DMA_SRC_INC 0x0000
+#define DMA_SRC_DEC 0x0080
+#define DMA_SRC_FIXED 0x0100
+#define DMA_REPEAT 0x0200
+#define DMA_16BIT 0x0000
+#define DMA_32BIT 0x0400
+#define DMA_DREQ_ON 0x0800
+#define DMA_START_NOW 0x0000
+#define DMA_START_VBLANK 0x1000
+#define DMA_START_HBLANK 0x2000
+#define DMA_START_SPECIAL 0x3000
+#define DMA_INTR_ENABLE 0x4000
+#define DMA_ENABLE 0x8000
+
+// interrupt flags
+#define INTR_FLAG_VBLANK (1 << 0)
+#define INTR_FLAG_HBLANK (1 << 1)
+#define INTR_FLAG_VCOUNT (1 << 2)
+#define INTR_FLAG_TIMER0 (1 << 3)
+#define INTR_FLAG_TIMER1 (1 << 4)
+#define INTR_FLAG_TIMER2 (1 << 5)
+#define INTR_FLAG_TIMER3 (1 << 6)
+#define INTR_FLAG_SERIAL (1 << 7)
+#define INTR_FLAG_DMA0 (1 << 8)
+#define INTR_FLAG_DMA1 (1 << 9)
+#define INTR_FLAG_DMA2 (1 << 10)
+#define INTR_FLAG_DMA3 (1 << 11)
+#define INTR_FLAG_KEYPAD (1 << 12)
+#define INTR_FLAG_GAMEPAK (1 << 13)
+
+#endif // GUARD_GBA_IO_REG_H
diff --git a/include/gba/macro.h b/include/gba/macro.h
new file mode 100644
index 000000000..42830d47c
--- /dev/null
+++ b/include/gba/macro.h
@@ -0,0 +1,52 @@
+#ifndef GUARD_GBA_MACRO_H
+#define GUARD_GBA_MACRO_H
+
+#define CPU_FILL(dest, value, size, bit) \
+do { \
+ vu##bit tmp = (vu##bit)(value); \
+ CpuSet((void *)&tmp, \
+ dest, \
+ CPU_SET_##bit##BIT | CPU_SET_SRC_FIXED | ((size)/(bit/8) & 0x1FFFFF)); \
+} while (0)
+
+#define CpuFill16(dest, value, size) CPU_FILL(dest, value, size, 16)
+#define CpuFill32(dest, value, size) CPU_FILL(dest, value, size, 32)
+
+#define CPU_COPY(src, dest, size, bit) CpuSet(src, dest, CPU_SET_##bit##BIT | ((size)/(bit/8) & 0x1FFFFF))
+
+#define CpuCopy16(src, dest, size) CPU_COPY(src, dest, size, 16)
+#define CpuCopy32(src, dest, size) CPU_COPY(src, dest, size, 32)
+
+#define DmaSet(dmaNum, src, dest, controlData) \
+do { \
+ vu32 *dmaRegs = (vu32 *)REG_ADDR_DMA##dmaNum; \
+ dmaRegs[0] = (vu32)(src); \
+ dmaRegs[1] = (vu32)(dest); \
+ dmaRegs[2] = (vu32)(controlData); \
+ dmaRegs[2]; \
+} while (0)
+
+#define DMA_FILL(dmaNum, dest, value, size, bit) \
+do { \
+ vu##bit tmp = (vu##bit)(value); \
+ DmaSet(dmaNum, \
+ &tmp, \
+ dest, \
+ (DMA_ENABLE | DMA_START_NOW | DMA_##bit##BIT | DMA_SRC_FIXED | DMA_DEST_INC) << 16 \
+ | ((size)/(bit/8))); \
+} while (0)
+
+#define DmaFill16(dmaNum, dest, value, size) DMA_FILL(dmaNum, dest, value, size, 16)
+#define DmaFill32(dmaNum, dest, value, size) DMA_FILL(dmaNum, dest, value, size, 32)
+
+#define DMA_COPY(dmaNum, src, dest, size, bit) \
+ DmaSet(dmaNum, \
+ src, \
+ dest, \
+ (DMA_ENABLE | DMA_START_NOW | DMA_##bit##BIT | DMA_SRC_INC | DMA_DEST_INC) << 16 \
+ | ((size)/(bit/8)))
+
+#define DmaCopy16(dmaNum, src, dest, size) DMA_COPY(dmaNum, src, dest, size, 16)
+#define DmaCopy32(dmaNum, src, dest, size) DMA_COPY(dmaNum, src, dest, size, 32)
+
+#endif // GUARD_GBA_MACRO_H
diff --git a/include/gba/syscall.h b/include/gba/syscall.h
new file mode 100644
index 000000000..0f4198b44
--- /dev/null
+++ b/include/gba/syscall.h
@@ -0,0 +1,10 @@
+#ifndef GUARD_GBA_SYSCALL_H
+#define GUARD_GBA_SYSCALL_H
+
+#define CPU_SET_SRC_FIXED 0x01000000
+#define CPU_SET_16BIT 0x00000000
+#define CPU_SET_32BIT 0x04000000
+
+extern void CpuSet(void *src, void *dest, u32 controlData);
+
+#endif // GUARD_GBA_SYSCALL_H
diff --git a/include/global.h b/include/global.h
new file mode 100644
index 000000000..37473afc8
--- /dev/null
+++ b/include/global.h
@@ -0,0 +1,34 @@
+#ifndef GUARD_GLOBAL_H
+#define GUARD_GLOBAL_H
+
+typedef unsigned char u8;
+typedef unsigned short u16;
+typedef unsigned int u32;
+typedef signed char s8;
+typedef signed short s16;
+typedef signed int s32;
+
+typedef volatile u8 vu8;
+typedef volatile u16 vu16;
+typedef volatile u32 vu32;
+typedef volatile s8 vs8;
+typedef volatile s16 vs16;
+typedef volatile s32 vs32;
+
+typedef float f32;
+typedef double f64;
+
+typedef u8 bool8;
+typedef u16 bool16;
+typedef u32 bool32;
+
+#define NULL (void *)0
+
+#define TRUE 1
+#define FALSE 0
+
+#include "gba/io_reg.h"
+#include "gba/syscall.h"
+#include "gba/macro.h"
+
+#endif // GUARD_GLOBAL_H
diff --git a/iwram_syms.txt b/iwram_syms.txt
new file mode 100644
index 000000000..b9128685f
--- /dev/null
+++ b/iwram_syms.txt
@@ -0,0 +1 @@
+gUnknownStringVar = 0x3002900;
diff --git a/src/string_util.c b/src/string_util.c
new file mode 100644
index 000000000..a5a9dc19e
--- /dev/null
+++ b/src/string_util.c
@@ -0,0 +1,560 @@
+#include "global.h"
+
+#define CHAR_SPACE 0x00
+#define CHAR_QUESTION_MARK 0xAC
+
+#define EXT_CTRL_CODE_BEGIN 0xFC // extended control code
+#define PLACEHOLDER_BEGIN 0xFD // string placeholder
+#define EOS 0xFF // end of string
+
+#define MAX_PLACEHOLDER_ID 0xD
+
+#define MALE 0
+#define FEMALE 1
+
+struct SaveBlock2 {
+ u8 playerName[8];
+ u8 playerGender;
+};
+
+typedef u8 *(*ExpandPlaceholderFunc)();
+
+extern u8 gDigits[];
+extern s32 gPowersOfTen[];
+extern u8 gUnknown_081E72EC[];
+extern u8 gUnknown_081E72F0[];
+extern ExpandPlaceholderFunc gExpandPlaceholderFuncTable[];
+
+extern u8 gExpandedPlaceholder_Empty[];
+extern u8 gExpandedPlaceholder_MaleEmpty[];
+extern u8 gExpandedPlaceholder_FemaleEmpty[];
+extern u8 gExpandedPlaceholder_Sapphire[];
+extern u8 gExpandedPlaceholder_Ruby[];
+extern u8 gExpandedPlaceholder_Aqua[];
+extern u8 gExpandedPlaceholder_Magma[];
+extern u8 gExpandedPlaceholder_Archie[];
+extern u8 gExpandedPlaceholder_Maxie[];
+extern u8 gExpandedPlaceholder_Kyogre[];
+extern u8 gExpandedPlaceholder_Groudon[];
+extern u8 gExpandedPlaceholder_Brendan[];
+extern u8 gExpandedPlaceholder_May[];
+
+extern u8 gUnknownStringVar[];
+extern u8 gStringVar1[];
+extern u8 gStringVar2[];
+extern u8 gStringVar3[];
+extern struct SaveBlock2 gSaveBlock2;
+
+enum StringConvertMode {
+ STR_CONV_MODE_LEFT_ALIGN,
+ STR_CONV_MODE_RIGHT_ALIGN,
+ STR_CONV_MODE_LEADING_ZEROS
+};
+
+extern u8 GetExtCtrlCodeLength(u8 code);
+
+u8 *GetExpandedPlaceholder(u32 id);
+
+u8 *StringCopy10(u8 *dest, u8 *src)
+{
+ u8 i;
+ u32 limit = 10;
+
+ for (i = 0; i < limit; i++)
+ {
+ dest[i] = src[i];
+
+ if (dest[i] == EOS)
+ return &dest[i];
+ }
+
+ dest[i] = EOS;
+ return &dest[i];
+}
+
+u8 *StringGetEnd10(u8 *str)
+{
+ u8 i;
+ u32 limit = 10;
+
+ for (i = 0; i < limit; i++)
+ if (str[i] == EOS)
+ return &str[i];
+
+ str[i] = EOS;
+ return &str[i];
+}
+
+u8 *StringCopy8(u8 *dest, u8 *src)
+{
+ s32 i;
+
+ for (i = 0; i < 8; i++)
+ {
+ dest[i] = src[i];
+
+ if (dest[i] == EOS)
+ return &dest[i];
+ }
+
+ dest[i] = EOS;
+ return &dest[i];
+}
+
+u8 *StringCopy(u8 *dest, u8 *src)
+{
+ while (*src != EOS)
+ {
+ *dest = *src;
+ dest++;
+ src++;
+ }
+
+ *dest = EOS;
+ return dest;
+}
+
+u8 *StringAppend(u8 *dest, u8 *src)
+{
+ while (*dest != EOS)
+ dest++;
+
+ return StringCopy(dest, src);
+}
+
+u8 *StringCopyN(u8 *dest, u8 *src, u8 n)
+{
+ u16 i;
+
+ for (i = 0; i < n; i++)
+ dest[i] = src[i];
+
+ return &dest[n];
+}
+
+u8 *StringAppendN(u8 *dest, u8 *src, u8 n)
+{
+ while (*dest != EOS)
+ dest++;
+
+ return StringCopyN(dest, src, n);
+}
+
+u16 StringGetLength(u8 *str)
+{
+ u16 length = 0;
+
+ while (str[length] != EOS)
+ {
+ u16 temp = length;
+ length++;
+ if (str[temp] == EXT_CTRL_CODE_BEGIN)
+ length += GetExtCtrlCodeLength(str[length]);
+ }
+
+ return length;
+}
+
+s32 StringCompare(u8 *str1, u8 *str2)
+{
+ while (*str1 == *str2)
+ {
+ if (*str1 == EOS)
+ return 0;
+ str1++;
+ str2++;
+ }
+
+ return *str1 - *str2;
+}
+
+s32 StringCompareN(u8 *str1, u8 *str2, u32 n)
+{
+ while (*str1 == *str2)
+ {
+ if (*str1 == EOS)
+ return 0;
+ str1++;
+ str2++;
+ if (--n == 0)
+ return 0;
+ }
+
+ return *str1 - *str2;
+}
+
+u8 *ConvertIntToDecimalStringN(u8 *dest, s32 value, enum StringConvertMode mode, u8 n)
+{
+ enum { WAITING_FOR_NONZERO_DIGIT, WRITING_DIGITS, WRITING_SPACES } state;
+ s32 powerOfTen;
+ s32 largestPowerOfTen = gPowersOfTen[n - 1];
+
+ state = WAITING_FOR_NONZERO_DIGIT;
+
+ if (mode == STR_CONV_MODE_RIGHT_ALIGN)
+ state = WRITING_SPACES;
+
+ if (mode == STR_CONV_MODE_LEADING_ZEROS)
+ state = WRITING_DIGITS;
+
+ for (powerOfTen = largestPowerOfTen; powerOfTen > 0; powerOfTen /= 10)
+ {
+ char *out;
+ u8 c;
+ u16 digit = value / powerOfTen;
+ s32 temp = value - (powerOfTen * digit);
+
+ if (state == WRITING_DIGITS)
+ {
+ out = dest++;
+
+ if (digit <= 9)
+ c = gDigits[digit];
+ else
+ c = CHAR_QUESTION_MARK;
+
+ *out = c;
+ }
+ else if (digit != 0 || powerOfTen == 1)
+ {
+ state = WRITING_DIGITS;
+ out = dest++;
+
+ if (digit <= 9)
+ c = gDigits[digit];
+ else
+ c = CHAR_QUESTION_MARK;
+
+ *out = c;
+ }
+ else if (state == WRITING_SPACES)
+ {
+ *dest++ = CHAR_SPACE;
+ }
+
+ value = temp;
+ }
+
+ *dest = EOS;
+ return dest;
+}
+
+u8 *ConvertIntToDecimalStringN_UnknownExtCtrlCode(u8 *dest, s32 value, enum StringConvertMode mode, u8 n)
+{
+ enum { WAITING_FOR_NONZERO_DIGIT, WRITING_DIGITS, WRITING_SPACES } state;
+ s32 powerOfTen;
+ s32 largestPowerOfTen = gPowersOfTen[n - 1];
+
+ *dest++ = EXT_CTRL_CODE_BEGIN;
+ *dest++ = 0x14;
+ *dest++ = 0x06;
+
+ state = WAITING_FOR_NONZERO_DIGIT;
+
+ if (mode == STR_CONV_MODE_RIGHT_ALIGN)
+ state = WRITING_SPACES;
+
+ if (mode == STR_CONV_MODE_LEADING_ZEROS)
+ state = WRITING_DIGITS;
+
+ for (powerOfTen = largestPowerOfTen; powerOfTen > 0; powerOfTen /= 10)
+ {
+ char *out;
+ u8 c;
+ u16 digit = value / powerOfTen;
+ s32 temp = value - (powerOfTen * digit);
+
+ if (state == WRITING_DIGITS)
+ {
+ out = dest++;
+
+ if (digit <= 9)
+ c = gDigits[digit];
+ else
+ c = CHAR_QUESTION_MARK;
+
+ *out = c;
+ }
+ else if (digit != 0 || powerOfTen == 1)
+ {
+ state = WRITING_DIGITS;
+ out = dest++;
+
+ if (digit <= 9)
+ c = gDigits[digit];
+ else
+ c = CHAR_QUESTION_MARK;
+
+ *out = c;
+ }
+ else if (state == WRITING_SPACES)
+ {
+ *dest++ = CHAR_SPACE;
+ }
+
+ value = temp;
+ }
+
+ *dest++ = EXT_CTRL_CODE_BEGIN;
+ *dest++ = 0x14;
+ *dest++ = 0x00;
+
+ *dest = EOS;
+ return dest;
+}
+
+u8 *ConvertIntToHexStringN(u8 *dest, s32 value, enum StringConvertMode mode, u8 n)
+{
+ enum { WAITING_FOR_NONZERO_DIGIT, WRITING_DIGITS, WRITING_SPACES } state;
+ u8 i;
+ s32 powerOfSixteen;
+ s32 largestPowerOfSixteen = 1;
+
+ for (i = 1; i < n; i++)
+ largestPowerOfSixteen *= 16;
+
+ state = WAITING_FOR_NONZERO_DIGIT;
+
+ if (mode == STR_CONV_MODE_RIGHT_ALIGN)
+ state = WRITING_SPACES;
+
+ if (mode == STR_CONV_MODE_LEADING_ZEROS)
+ state = WRITING_DIGITS;
+
+ for (powerOfSixteen = largestPowerOfSixteen; powerOfSixteen > 0; powerOfSixteen /= 16)
+ {
+ char *out;
+ u8 c;
+ u32 digit = value / powerOfSixteen;
+ s32 temp = value % powerOfSixteen;
+
+ if (state == WRITING_DIGITS)
+ {
+ out = dest++;
+
+ if (digit <= 0xF)
+ c = gDigits[digit];
+ else
+ c = CHAR_QUESTION_MARK;
+
+ *out = c;
+ }
+ else if (digit != 0 || powerOfSixteen == 1)
+ {
+ state = 1;
+ out = dest++;
+
+ if (digit <= 0xF)
+ c = gDigits[digit];
+ else
+ c = CHAR_QUESTION_MARK;
+
+ *out = c;
+ }
+ else if (state == WRITING_SPACES)
+ {
+ *dest++ = CHAR_SPACE;
+ }
+
+ value = temp;
+ }
+
+ *dest = EOS;
+ return dest;
+}
+
+u8 *ConvertIntToDecimalString(u8 *dest, s32 value)
+{
+ char temp[12];
+ s32 length = 0;
+
+ do
+ {
+ temp[length++] = gDigits[value % 10];
+ value /= 10;
+ } while (value != 0);
+
+ length--;
+
+ while (length != -1)
+ {
+ *dest++ = temp[length];
+ length--;
+ }
+
+ *dest = EOS;
+ return dest;
+}
+
+u8 *StringExpandPlaceholders(u8 *dest, u8 *src)
+{
+ for (;;)
+ {
+ u8 c = *src++;
+ u8 placeholderId;
+ u8 *expandedString;
+ u8 length;
+
+ switch (c)
+ {
+ case PLACEHOLDER_BEGIN:
+ placeholderId = *src++;
+ expandedString = GetExpandedPlaceholder(placeholderId);
+ dest = StringExpandPlaceholders(dest, expandedString);
+ break;
+ case EXT_CTRL_CODE_BEGIN:
+ *dest++ = c;
+ length = GetExtCtrlCodeLength(*src);
+ memcpy(dest, src, length);
+ dest += length;
+ src += length;
+ break;
+ case EOS:
+ *dest = EOS;
+ return dest;
+ case 0xFA:
+ case 0xFB:
+ case 0xFE:
+ default:
+ *dest++ = c;
+ }
+ }
+}
+
+u8 *UnknownStringFunc(u8 *dest, u8 *src)
+{
+ u8 array1[4];
+ u8 array2[5];
+
+ memcpy(array1, gUnknown_081E72EC, 4);
+ memcpy(array2, gUnknown_081E72F0, 5);
+
+ dest = StringCopy(dest, array1);
+
+ for (;;)
+ {
+ u8 c = *src++;
+
+ switch (c)
+ {
+ case EOS:
+ *dest = c;
+ return dest;
+ case 0xFE:
+ dest = StringCopy(dest, array2);
+ break;
+ default:
+ *dest++ = c;
+ *dest++ = c + 0x40;
+ break;
+ }
+ }
+}
+
+u8 *ExpandPlaceholder_UnknownStringVar()
+{
+ return gUnknownStringVar;
+}
+
+u8 *ExpandPlaceholder_PlayerName()
+{
+ return gSaveBlock2.playerName;
+}
+
+u8 *ExpandPlaceholder_StringVar1()
+{
+ return gStringVar1;
+}
+
+u8 *ExpandPlaceholder_StringVar2()
+{
+ return gStringVar2;
+}
+
+u8 *ExpandPlaceholder_StringVar3()
+{
+ return gStringVar3;
+}
+
+u8 *ExpandPlaceholder_UnknownString()
+{
+ if (gSaveBlock2.playerGender == MALE)
+ return gExpandedPlaceholder_MaleEmpty;
+ else
+ return gExpandedPlaceholder_FemaleEmpty;
+}
+
+u8 *ExpandPlaceholder_RivalName()
+{
+ if (gSaveBlock2.playerGender == MALE)
+ return gExpandedPlaceholder_May;
+ else
+ return gExpandedPlaceholder_Brendan;
+}
+
+#define VERSION_DEPENDENT_PH_LIST \
+ X(Version, Ruby, Sapphire) \
+ X(EvilTeam, Magma, Aqua) \
+ X(GoodTeam, Aqua, Magma) \
+ X(EvilTeamLeader, Maxie, Archie) \
+ X(GoodTeamLeader, Archie, Maxie) \
+ X(CurVersionMascot, Groudon, Kyogre) \
+ X(OppVersionMascot, Kyogre, Groudon)
+
+#ifdef SAPPHIRE
+#define X(ph, r, s) \
+u8 *ExpandPlaceholder_##ph() { return gExpandedPlaceholder_##s; }
+VERSION_DEPENDENT_PH_LIST
+#else
+#define X(ph, r, s) \
+u8 *ExpandPlaceholder_##ph() { return gExpandedPlaceholder_##r; }
+VERSION_DEPENDENT_PH_LIST
+#endif
+
+#undef X
+
+u8 *GetExpandedPlaceholder(u32 id)
+{
+ if (id > MAX_PLACEHOLDER_ID)
+ return gExpandedPlaceholder_Empty;
+ else
+ return gExpandPlaceholderFuncTable[id]();
+}
+
+u8 *StringFill(u8 *dest, u8 c, u16 n)
+{
+ u16 i;
+
+ for (i = 0; i < n; i++)
+ *dest++ = c;
+
+ *dest = EOS;
+ return dest;
+}
+
+u8 *StringCopyPadded(u8 *dest, u8 *src, u8 c, u16 n)
+{
+ while (*src != EOS)
+ {
+ *dest++ = *src++;
+
+ if (n)
+ n--;
+ }
+
+ n--;
+
+ while (n != (u16)-1)
+ {
+ *dest++ = c;
+ n--;
+ }
+
+ *dest = EOS;
+ return dest;
+}
+
+u8 *StringFillEOS(u8 *dest, u16 n)
+{
+ return StringFill(dest, EOS, n);
+}
diff --git a/wram_syms.txt b/wram_syms.txt
deleted file mode 100644
index e69de29bb..000000000
--- a/wram_syms.txt
+++ /dev/null