Files
Pokemon-Firered/asm/help_system.s
T
2019-06-13 13:45:46 -04:00

751 lines
12 KiB
ArmAsm

.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start sub_813C454
sub_813C454: @ 813C454
push {r4,lr}
sub sp, 0xC
adds r4, r0, 0
movs r0, 0x1
movs r1, 0xF
movs r2, 0x2
bl GenerateFontHalfRowLookupTable
ldr r1, _0813C484 @ =gDecompressionBuffer + 0x3D00
movs r2, 0x2
str r2, [sp]
movs r0, 0x7
str r0, [sp, 0x4]
str r2, [sp, 0x8]
movs r0, 0x5
adds r2, r4, 0
movs r3, 0x6
bl HelpSystemRenderText
add sp, 0xC
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0813C484: .4byte gDecompressionBuffer + 0x3D00
thumb_func_end sub_813C454
thumb_func_start sub_813C488
sub_813C488: @ 813C488
push {r4,r5,lr}
sub sp, 0xC
adds r5, r0, 0
movs r0, 0
adds r1, r5, 0
movs r2, 0
bl GetStringWidth
movs r4, 0x7C
subs r4, r0
movs r0, 0x1
movs r1, 0xF
movs r2, 0x2
bl GenerateFontHalfRowLookupTable
ldr r1, _0813C4C8 @ =gDecompressionBuffer + 0x3400
lsls r4, 24
lsrs r4, 24
movs r2, 0x2
str r2, [sp]
movs r0, 0x10
str r0, [sp, 0x4]
str r2, [sp, 0x8]
movs r0, 0
adds r2, r5, 0
adds r3, r4, 0
bl HelpSystemRenderText
add sp, 0xC
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0813C4C8: .4byte gDecompressionBuffer + 0x3400
thumb_func_end sub_813C488
thumb_func_start sub_813C4CC
sub_813C4CC: @ 813C4CC
push {r4-r6,lr}
sub sp, 0xC
adds r6, r0, 0
adds r5, r1, 0
adds r4, r2, 0
lsls r5, 24
lsrs r5, 24
lsls r4, 24
lsrs r4, 24
movs r0, 0x1
movs r1, 0xF
movs r2, 0x2
bl GenerateFontHalfRowLookupTable
ldr r1, _0813C508 @ =gDecompressionBuffer
str r4, [sp]
movs r0, 0x1A
str r0, [sp, 0x4]
movs r0, 0x10
str r0, [sp, 0x8]
movs r0, 0x2
adds r2, r6, 0
adds r3, r5, 0
bl HelpSystemRenderText
add sp, 0xC
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0813C508: .4byte gDecompressionBuffer
thumb_func_end sub_813C4CC
thumb_func_start sub_813C50C
sub_813C50C: @ 813C50C
push {r4-r6,lr}
mov r6, r9
mov r5, r8
push {r5,r6}
sub sp, 0x10
mov r8, r0
mov r9, r1
add r1, sp, 0xC
ldr r2, _0813C578 @ =0x0000eeee
adds r0, r2, 0
strh r0, [r1]
ldr r4, _0813C57C @ =gDecompressionBuffer
ldr r2, _0813C580 @ =0x01001a00
adds r0, r1, 0
adds r1, r4, 0
bl CpuSet
movs r0, 0x1
movs r1, 0xE
movs r2, 0x2
bl GenerateFontHalfRowLookupTable
movs r6, 0
str r6, [sp]
movs r5, 0x1A
str r5, [sp, 0x4]
movs r0, 0x10
str r0, [sp, 0x8]
movs r0, 0x2
adds r1, r4, 0
mov r2, r8
movs r3, 0
bl HelpSystemRenderText
movs r0, 0x9C
lsls r0, 4
adds r4, r0
str r6, [sp]
str r5, [sp, 0x4]
movs r0, 0xD
str r0, [sp, 0x8]
movs r0, 0x2
adds r1, r4, 0
mov r2, r9
movs r3, 0
bl HelpSystemRenderText
add sp, 0x10
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0813C578: .4byte 0x0000eeee
_0813C57C: .4byte gDecompressionBuffer
_0813C580: .4byte 0x01001a00
thumb_func_end sub_813C50C
thumb_func_start sub_813C584
sub_813C584: @ 813C584
push {r4,r5,lr}
sub sp, 0x10
adds r5, r0, 0
add r1, sp, 0xC
ldr r2, _0813C5C8 @ =0x00001111
adds r0, r2, 0
strh r0, [r1]
ldr r4, _0813C5CC @ =gDecompressionBuffer + 0x23C0
ldr r2, _0813C5D0 @ =0x01000820
adds r0, r1, 0
adds r1, r4, 0
bl CpuSet
movs r0, 0x2
movs r1, 0x1
movs r2, 0x3
bl GenerateFontHalfRowLookupTable
movs r0, 0x6
str r0, [sp]
movs r0, 0x1A
str r0, [sp, 0x4]
movs r0, 0x5
str r0, [sp, 0x8]
movs r0, 0x2
adds r1, r4, 0
adds r2, r5, 0
movs r3, 0x2
bl HelpSystemRenderText
add sp, 0x10
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0813C5C8: .4byte 0x00001111
_0813C5CC: .4byte gDecompressionBuffer + 0x23C0
_0813C5D0: .4byte 0x01000820
thumb_func_end sub_813C584
thumb_func_start sub_813C5D4
sub_813C5D4: @ 813C5D4
push {lr}
sub sp, 0x4
mov r1, sp
ldr r2, _0813C5F0 @ =0x0000ffff
adds r0, r2, 0
strh r0, [r1]
ldr r1, _0813C5F4 @ =gDecompressionBuffer + 0x3D00
ldr r2, _0813C5F8 @ =0x010000e0
mov r0, sp
bl CpuSet
add sp, 0x4
pop {r0}
bx r0
.align 2, 0
_0813C5F0: .4byte 0x0000ffff
_0813C5F4: .4byte gDecompressionBuffer + 0x3D00
_0813C5F8: .4byte 0x010000e0
thumb_func_end sub_813C5D4
thumb_func_start sub_813C5FC
sub_813C5FC: @ 813C5FC
push {lr}
sub sp, 0x4
mov r1, sp
ldr r2, _0813C618 @ =0x0000ffff
adds r0, r2, 0
strh r0, [r1]
ldr r1, _0813C61C @ =gDecompressionBuffer + 0x3400
ldr r2, _0813C620 @ =0x01000200
mov r0, sp
bl CpuSet
add sp, 0x4
pop {r0}
bx r0
.align 2, 0
_0813C618: .4byte 0x0000ffff
_0813C61C: .4byte gDecompressionBuffer + 0x3400
_0813C620: .4byte 0x01000200
thumb_func_end sub_813C5FC
thumb_func_start sub_813C624
sub_813C624: @ 813C624
push {lr}
sub sp, 0x4
mov r1, sp
ldr r2, _0813C640 @ =0x0000ffff
adds r0, r2, 0
strh r0, [r1]
ldr r1, _0813C644 @ =gDecompressionBuffer
ldr r2, _0813C648 @ =0x01001a00
mov r0, sp
bl CpuSet
add sp, 0x4
pop {r0}
bx r0
.align 2, 0
_0813C640: .4byte 0x0000ffff
_0813C644: .4byte gDecompressionBuffer
_0813C648: .4byte 0x01001a00
thumb_func_end sub_813C624
thumb_func_start sub_813C64C
sub_813C64C: @ 813C64C
push {r4-r7,lr}
ldr r4, _0813C680 @ =gUnknown_203F190
adds r3, r4, 0
ldm r0!, {r5-r7}
stm r3!, {r5-r7}
movs r0, 0
strb r1, [r4, 0xC]
strb r2, [r4, 0xD]
strb r0, [r4, 0xE]
ldrh r0, [r4, 0x4]
ldrh r1, [r4, 0x6]
cmp r0, r1
bcs _0813C668
strh r0, [r4, 0x6]
_0813C668:
movs r0, 0
bl sub_813BDA4
bl sub_813C624
bl sub_813C7CC
bl sub_813C828
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0813C680: .4byte gUnknown_203F190
thumb_func_end sub_813C64C
thumb_func_start sub_813C684
sub_813C684: @ 813C684
ldr r1, _0813C68C @ =gUnknown_203F176
strb r0, [r1]
bx lr
.align 2, 0
_0813C68C: .4byte gUnknown_203F176
thumb_func_end sub_813C684
thumb_func_start sub_813C690
sub_813C690: @ 813C690
push {lr}
ldr r1, _0813C6A0 @ =gUnknown_203F176
ldrb r0, [r1]
cmp r0, 0
beq _0813C6A4
subs r0, 0x1
strb r0, [r1]
b _0813C752
.align 2, 0
_0813C6A0: .4byte gUnknown_203F176
_0813C6A4:
ldr r2, _0813C6C8 @ =gMain
ldrh r1, [r2, 0x2E]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _0813C6D0
movs r0, 0x5
bl PlaySE
ldr r1, _0813C6CC @ =gUnknown_203F190
ldrb r0, [r1, 0xC]
ldrb r2, [r1, 0xD]
adds r0, r2
ldr r1, [r1]
lsls r0, 3
adds r0, r1
ldr r0, [r0, 0x4]
b _0813C756
.align 2, 0
_0813C6C8: .4byte gMain
_0813C6CC: .4byte gUnknown_203F190
_0813C6D0:
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _0813C6E4
movs r0, 0x5
bl PlaySE
movs r0, 0x2
negs r0, r0
b _0813C756
_0813C6E4:
movs r0, 0xC0
lsls r0, 2
ands r0, r1
cmp r0, 0
beq _0813C6F4
movs r0, 0x6
negs r0, r0
b _0813C756
_0813C6F4:
ldrh r1, [r2, 0x30]
movs r0, 0x40
ands r0, r1
cmp r0, 0
beq _0813C702
movs r0, 0x1
b _0813C718
_0813C702:
movs r0, 0x80
ands r0, r1
cmp r0, 0
beq _0813C70E
movs r0, 0x1
b _0813C73A
_0813C70E:
movs r0, 0x20
ands r0, r1
cmp r0, 0
beq _0813C730
movs r0, 0x7
_0813C718:
movs r1, 0
bl sub_813C944
lsls r0, 24
cmp r0, 0
bne _0813C72A
movs r0, 0x5
bl PlaySE
_0813C72A:
movs r0, 0x4
negs r0, r0
b _0813C756
_0813C730:
movs r0, 0x10
ands r0, r1
cmp r0, 0
beq _0813C752
movs r0, 0x7
_0813C73A:
movs r1, 0x1
bl sub_813C944
lsls r0, 24
cmp r0, 0
bne _0813C74C
movs r0, 0x5
bl PlaySE
_0813C74C:
movs r0, 0x5
negs r0, r0
b _0813C756
_0813C752:
movs r0, 0x1
negs r0, r0
_0813C756:
pop {r1}
bx r1
thumb_func_end sub_813C690
thumb_func_start sub_813C75C
sub_813C75C: @ 813C75C
push {r4-r6,lr}
ldr r5, _0813C784 @ =gUnknown_203F190
ldrh r1, [r5, 0x4]
subs r0, r1, 0x7
lsls r0, 24
lsrs r6, r0, 24
cmp r1, 0x7
bls _0813C7C4
ldrb r4, [r5, 0xC]
ldrb r0, [r5, 0xD]
adds r4, r0
movs r0, 0
movs r1, 0
bl sub_813C004
cmp r4, 0
bne _0813C788
movs r0, 0x1
b _0813C7A2
.align 2, 0
_0813C784: .4byte gUnknown_203F190
_0813C788:
ldrb r0, [r5, 0xC]
cmp r0, 0
bne _0813C798
ldrb r0, [r5, 0xD]
cmp r0, 0
beq _0813C798
movs r0, 0x1
b _0813C7A2
_0813C798:
ldr r0, _0813C7AC @ =gUnknown_203F190
ldrb r0, [r0, 0xC]
cmp r0, r6
bne _0813C7B0
movs r0, 0
_0813C7A2:
movs r1, 0x1
bl sub_813C004
b _0813C7C4
.align 2, 0
_0813C7AC: .4byte gUnknown_203F190
_0813C7B0:
cmp r0, 0
beq _0813C7C4
movs r0, 0
movs r1, 0x1
bl sub_813C004
movs r0, 0x1
movs r1, 0x1
bl sub_813C004
_0813C7C4:
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_813C75C
thumb_func_start sub_813C7CC
sub_813C7CC: @ 813C7CC
push {r4-r7,lr}
mov r7, r8
push {r7}
movs r0, 0x2
movs r1, 0x1
bl GetFontAttribute
adds r0, 0x1
lsls r0, 24
lsrs r0, 24
mov r8, r0
ldr r3, _0813C824 @ =gUnknown_203F190
ldrb r5, [r3, 0xC]
movs r6, 0
ldrh r0, [r3, 0x6]
cmp r6, r0
bge _0813C81A
adds r4, r3, 0
movs r7, 0
_0813C7F2:
ldrb r1, [r4, 0x8]
adds r1, 0x8
lsls r1, 24
lsrs r1, 24
ldrb r2, [r4, 0x9]
adds r2, r7
lsls r2, 24
lsrs r2, 24
ldr r3, [r4]
lsls r0, r5, 3
adds r0, r3
ldr r0, [r0]
bl sub_813C4CC
adds r5, 0x1
add r7, r8
adds r6, 0x1
ldrh r0, [r4, 0x6]
cmp r6, r0
blt _0813C7F2
_0813C81A:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0813C824: .4byte gUnknown_203F190
thumb_func_end sub_813C7CC
thumb_func_start sub_813C828
sub_813C828: @ 813C828
push {r4,lr}
movs r0, 0x2
movs r1, 0x1
bl GetFontAttribute
adds r0, 0x1
lsls r0, 24
lsrs r0, 24
ldr r3, _0813C858 @ =gUnknown_203F190
ldrb r1, [r3, 0x8]
ldrb r2, [r3, 0xD]
adds r4, r2, 0
muls r4, r0
adds r2, r4, 0
ldrb r3, [r3, 0x9]
adds r2, r3
lsls r2, 24
lsrs r2, 24
ldr r0, _0813C85C @ =gFameCheckerText_ListMenuCursor
bl sub_813C4CC
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0813C858: .4byte gUnknown_203F190
_0813C85C: .4byte gFameCheckerText_ListMenuCursor
thumb_func_end sub_813C828
thumb_func_start sub_813C860
sub_813C860: @ 813C860
push {r4,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
movs r0, 0x2
movs r1, 0x1
bl GetFontAttribute
adds r0, 0x1
lsls r0, 24
lsrs r0, 24
ldr r3, _0813C894 @ =gUnknown_203F190
ldrb r1, [r3, 0x8]
adds r2, r4, 0
muls r2, r0
ldrb r3, [r3, 0x9]
adds r2, r3
lsls r2, 24
lsrs r2, 24
ldr r0, _0813C898 @ =gUnknown_841CB4E
bl sub_813C4CC
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0813C894: .4byte gUnknown_203F190
_0813C898: .4byte gUnknown_841CB4E
thumb_func_end sub_813C860
thumb_func_start sub_813C89C
sub_813C89C: @ 813C89C
push {r4,r5,lr}
lsls r0, 24
cmp r0, 0
bne _0813C8EC
ldr r0, _0813C8B4 @ =gUnknown_203F190
ldrh r1, [r0, 0x6]
adds r5, r0, 0
cmp r1, 0x1
bne _0813C8B8
movs r4, 0
b _0813C8CA
.align 2, 0
_0813C8B4: .4byte gUnknown_203F190
_0813C8B8:
ldrh r0, [r5, 0x6]
lsrs r2, r0, 1
movs r1, 0x1
ands r1, r0
adds r2, r1
subs r0, r2
subs r0, 0x1
lsls r0, 16
lsrs r4, r0, 16
_0813C8CA:
ldrb r1, [r5, 0xC]
cmp r1, 0
bne _0813C8DA
ldrb r0, [r5, 0xD]
cmp r0, 0
beq _0813C926
subs r0, 0x1
b _0813C93A
_0813C8DA:
ldrb r0, [r5, 0xD]
cmp r0, r4
bls _0813C8E4
subs r0, 0x1
b _0813C93A
_0813C8E4:
subs r0, r1, 0x1
strb r0, [r5, 0xC]
movs r0, 0x2
b _0813C93E
_0813C8EC:
ldr r0, _0813C8FC @ =gUnknown_203F190
ldrh r1, [r0, 0x6]
adds r5, r0, 0
cmp r1, 0x1
bne _0813C900
movs r4, 0
b _0813C90A
.align 2, 0
_0813C8FC: .4byte gUnknown_203F190
_0813C900:
ldrh r0, [r5, 0x6]
lsrs r2, r0, 1
movs r1, 0x1
ands r0, r1
adds r4, r2, r0
_0813C90A:
adds r1, r5, 0
ldrb r2, [r1, 0xC]
ldrh r0, [r1, 0x4]
ldrh r3, [r1, 0x6]
subs r0, r3
cmp r2, r0
bne _0813C92A
ldrb r2, [r1, 0xD]
subs r0, r3, 0x1
cmp r2, r0
bge _0813C926
adds r0, r2, 0x1
strb r0, [r1, 0xD]
b _0813C93C
_0813C926:
movs r0, 0
b _0813C93E
_0813C92A:
ldrb r0, [r1, 0xD]
cmp r0, r4
bcc _0813C938
adds r0, r2, 0x1
strb r0, [r1, 0xC]
movs r0, 0x2
b _0813C93E
_0813C938:
adds r0, 0x1
_0813C93A:
strb r0, [r5, 0xD]
_0813C93C:
movs r0, 0x1
_0813C93E:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_813C89C
thumb_func_start sub_813C944
sub_813C944: @ 813C944
push {r4-r7,lr}
lsls r0, 24
lsrs r2, r0, 24
lsls r1, 24
lsrs r6, r1, 24
ldr r0, _0813C97C @ =gUnknown_203F190
ldrb r7, [r0, 0xD]
movs r5, 0
cmp r5, r2
bge _0813C96C
adds r4, r2, 0
_0813C95A:
adds r0, r6, 0
bl sub_813C89C
orrs r5, r0
lsls r0, r5, 24
lsrs r5, r0, 24
subs r4, 0x1
cmp r4, 0
bne _0813C95A
_0813C96C:
cmp r5, 0x1
beq _0813C980
cmp r5, 0x1
ble _0813C978
cmp r5, 0x3
ble _0813C990
_0813C978:
movs r0, 0x1
b _0813C9D6
.align 2, 0
_0813C97C: .4byte gUnknown_203F190
_0813C980:
adds r0, r7, 0
bl sub_813C860
bl sub_813C828
bl sub_813BC5C
b _0813C9D4
_0813C990:
bl sub_812BF88
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _0813C9B8
movs r0, 0x2
bl sub_813C684
bl sub_813C624
bl sub_813C7CC
bl sub_813C828
bl sub_812BDEC
bl sub_813C75C
b _0813C9D0
_0813C9B8:
movs r0, 0
bl sub_813BDA4
bl sub_813C624
bl sub_813C7CC
bl sub_813C828
movs r0, 0x1
bl sub_813BDA4
_0813C9D0:
bl sub_813BC5C
_0813C9D4:
movs r0, 0
_0813C9D6:
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_813C944
.align 2, 0 @ Don't pad with nop.