help_system: through sub_813C3AC

This commit is contained in:
PikalaxALT
2019-06-13 13:45:46 -04:00
parent 2ffcf13f6b
commit e30052e271
7 changed files with 588 additions and 544 deletions
-540
View File
@@ -5,546 +5,6 @@
.text
thumb_func_start sub_813C004
sub_813C004: @ 813C004
push {r4-r6,lr}
sub sp, 0x8
lsls r0, 24
lsrs r2, r0, 24
lsls r1, 24
lsrs r6, r1, 24
cmp r6, 0
beq _0813C01A
cmp r6, 0x1
beq _0813C040
b _0813C06A
_0813C01A:
ldr r5, _0813C03C @ =0x000001ff
movs r4, 0x1
str r4, [sp]
str r6, [sp, 0x4]
adds r0, r5, 0
movs r1, 0x1C
movs r2, 0x3
movs r3, 0x1
bl sub_813BC78
str r4, [sp]
str r6, [sp, 0x4]
adds r0, r5, 0
movs r1, 0x1C
movs r2, 0x12
b _0813C050
.align 2, 0
_0813C03C: .4byte 0x000001ff
_0813C040:
cmp r2, 0
bne _0813C058
movs r0, 0xFF
lsls r0, 1
str r6, [sp]
str r2, [sp, 0x4]
movs r1, 0x1C
movs r2, 0x3
_0813C050:
movs r3, 0x1
bl sub_813BC78
b _0813C06A
_0813C058:
ldr r0, _0813C074 @ =0x000001fd
str r6, [sp]
movs r1, 0
str r1, [sp, 0x4]
movs r1, 0x1C
movs r2, 0x12
movs r3, 0x1
bl sub_813BC78
_0813C06A:
add sp, 0x8
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0813C074: .4byte 0x000001fd
thumb_func_end sub_813C004
thumb_func_start HelpSystemRenderText
HelpSystemRenderText: @ 813C078
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x38
str r1, [sp, 0x28]
mov r9, r2
ldr r1, [sp, 0x58]
ldr r2, [sp, 0x5C]
ldr r4, [sp, 0x60]
lsls r0, 24
lsrs r0, 24
str r0, [sp, 0x24]
lsls r3, 24
lsrs r7, r3, 24
lsls r1, 24
lsrs r1, 24
mov r10, r1
lsls r2, 24
lsrs r2, 24
str r2, [sp, 0x2C]
lsls r4, 24
lsrs r4, 24
str r4, [sp, 0x30]
str r7, [sp, 0x34]
_0813C0AC:
mov r0, r9
ldrb r1, [r0]
movs r2, 0x1
add r9, r2
adds r0, r1, 0
subs r0, 0xF8
cmp r0, 0x7
bls _0813C0BE
b _0813C358
_0813C0BE:
lsls r0, 2
ldr r1, _0813C0C8 @ =_0813C0CC
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0813C0C8: .4byte _0813C0CC
.align 2, 0
_0813C0CC:
.4byte _0813C2D4
.4byte _0813C348
.4byte _0813C1E4
.4byte _0813C1E4
.4byte _0813C200
.4byte _0813C0EC
.4byte _0813C1E4
.4byte _0813C39C
_0813C0EC:
mov r0, r9
ldrb r1, [r0]
movs r2, 0x1
add r9, r2
cmp r1, 0x1
bne _0813C154
movs r4, 0
ldr r0, _0813C14C @ =gSaveBlock2Ptr
ldr r1, [r0]
ldrb r1, [r1]
cmp r1, 0xFF
beq _0813C0AC
ldr r5, _0813C150 @ =gGlyphInfo + 0x80
_0813C106:
ldr r0, [r0]
adds r0, r4
ldrb r1, [r0]
ldr r0, [sp, 0x28]
str r0, [sp]
str r7, [sp, 0x4]
mov r2, r10
str r2, [sp, 0x8]
ldr r0, [sp, 0x2C]
str r0, [sp, 0xC]
ldr r2, [sp, 0x30]
str r2, [sp, 0x10]
ldr r0, [sp, 0x24]
add r2, sp, 0x14
add r3, sp, 0x1C
bl sub_813C3AC
ldr r0, [sp, 0x24]
ldrb r0, [r5]
adds r0, r7, r0
lsls r0, 24
lsrs r7, r0, 24
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x9
bhi _0813C0AC
ldr r0, _0813C14C @ =gSaveBlock2Ptr
ldr r1, [r0]
adds r1, r4
ldrb r1, [r1]
cmp r1, 0xFF
bne _0813C106
b _0813C0AC
.align 2, 0
_0813C14C: .4byte gSaveBlock2Ptr
_0813C150: .4byte gGlyphInfo + 0x80
_0813C154:
cmp r1, 0x2
bne _0813C0AC
movs r4, 0
ldr r5, _0813C160 @ =gGlyphInfo + 0x80
b _0813C1BC
.align 2, 0
_0813C160: .4byte gGlyphInfo + 0x80
_0813C164:
ldrb r1, [r1]
ldr r2, [sp, 0x28]
str r2, [sp]
str r7, [sp, 0x4]
mov r0, r10
str r0, [sp, 0x8]
ldr r2, [sp, 0x2C]
str r2, [sp, 0xC]
ldr r0, [sp, 0x30]
str r0, [sp, 0x10]
ldr r0, [sp, 0x24]
add r2, sp, 0x14
add r3, sp, 0x1C
bl sub_813C3AC
b _0813C1AC
_0813C184:
ldr r0, _0813C1D8 @ =gUnknown_841CB41
adds r1, r4, r0
ldrb r0, [r1]
cmp r0, 0xFF
beq _0813C0AC
adds r1, r0, 0
ldr r2, [sp, 0x28]
str r2, [sp]
str r7, [sp, 0x4]
mov r0, r10
str r0, [sp, 0x8]
ldr r2, [sp, 0x2C]
str r2, [sp, 0xC]
ldr r0, [sp, 0x30]
str r0, [sp, 0x10]
ldr r0, [sp, 0x24]
add r2, sp, 0x14
add r3, sp, 0x1C
bl sub_813C3AC
_0813C1AC:
ldr r1, [sp, 0x24]
ldrb r0, [r5]
adds r0, r7, r0
lsls r0, 24
lsrs r7, r0, 24
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
_0813C1BC:
ldr r0, _0813C1DC @ =0x00000834
bl FlagGet
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _0813C184
ldr r0, _0813C1E0 @ =gUnknown_841CB3C
adds r1, r4, r0
ldrb r0, [r1]
cmp r0, 0xFF
bne _0813C164
b _0813C0AC
.align 2, 0
_0813C1D8: .4byte gUnknown_841CB41
_0813C1DC: .4byte 0x00000834
_0813C1E0: .4byte gUnknown_841CB3C
_0813C1E4:
ldr r7, [sp, 0x34]
ldr r1, _0813C1FC @ =gGlyphInfo
adds r1, 0x81
mov r0, r10
adds r0, 0x1
ldrb r1, [r1]
adds r0, r1
lsls r0, 24
lsrs r0, 24
mov r10, r0
b _0813C0AC
.align 2, 0
_0813C1FC: .4byte gGlyphInfo
_0813C200:
mov r2, r9
ldrb r1, [r2]
movs r0, 0x1
add r9, r0
subs r0, r1, 0x1
cmp r0, 0x15
bls _0813C210
b _0813C0AC
_0813C210:
lsls r0, 2
ldr r1, _0813C21C @ =_0813C220
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0813C21C: .4byte _0813C220
.align 2, 0
_0813C220:
.4byte _0813C2C8
.4byte _0813C2C8
.4byte _0813C2C8
.4byte _0813C278
.4byte _0813C2C8
.4byte _0813C2C8
.4byte _0813C0AC
.4byte _0813C2C8
.4byte _0813C0AC
.4byte _0813C0AC
.4byte _0813C27C
.4byte _0813C2C8
.4byte _0813C2C8
.4byte _0813C2C8
.4byte _0813C0AC
.4byte _0813C27C
.4byte _0813C2CE
.4byte _0813C2CE
.4byte _0813C282
.4byte _0813C2CE
.4byte _0813C0AC
.4byte _0813C0AC
_0813C278:
movs r1, 0x1
add r9, r1
_0813C27C:
movs r2, 0x1
add r9, r2
b _0813C2C8
_0813C282:
mov r2, r9
ldrb r0, [r2]
ldr r1, [sp, 0x34]
adds r0, r1
subs r6, r0, r7
cmp r6, 0
ble _0813C2C8
ldr r2, [sp, 0x28]
str r2, [sp, 0x1C]
ldr r1, [sp, 0x2C]
lsls r0, r1, 3
add r4, sp, 0x1C
movs r5, 0
strh r0, [r4, 0x4]
ldr r2, [sp, 0x30]
lsls r0, r2, 3
strh r0, [r4, 0x6]
ldr r0, [sp, 0x24]
movs r1, 0x1
bl GetFontAttribute
lsls r0, 24
lsrs r0, 24
lsls r3, r6, 16
lsrs r3, 16
str r0, [sp]
str r5, [sp, 0x4]
adds r0, r4, 0
adds r1, r7, 0
mov r2, r10
bl FillBitmapRect4Bit
adds r0, r7, r6
lsls r0, 24
lsrs r7, r0, 24
_0813C2C8:
movs r0, 0x1
add r9, r0
b _0813C0AC
_0813C2CE:
movs r1, 0x1
add r9, r1
b _0813C0AC
_0813C2D4:
mov r2, r9
ldrb r1, [r2]
movs r0, 0x1
add r9, r0
adds r6, r1, 0
adds r0, r6, 0
bl GetKeypadIconTileOffset
lsls r0, 24
lsrs r0, 19
ldr r1, _0813C344 @ =gKeypadIconTiles
adds r0, r1
str r0, [sp, 0x14]
add r1, sp, 0x14
movs r2, 0
mov r8, r2
movs r0, 0x80
strh r0, [r1, 0x4]
strh r0, [r1, 0x6]
ldr r0, [sp, 0x28]
str r0, [sp, 0x1C]
ldr r1, [sp, 0x2C]
lsls r0, r1, 3
add r5, sp, 0x1C
strh r0, [r5, 0x4]
ldr r2, [sp, 0x30]
lsls r0, r2, 3
strh r0, [r5, 0x6]
adds r0, r6, 0
bl GetKeypadIconWidth
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
adds r0, r6, 0
bl GetKeypadIconHeight
lsls r0, 24
lsrs r0, 24
str r7, [sp]
mov r1, r10
str r1, [sp, 0x4]
str r4, [sp, 0x8]
str r0, [sp, 0xC]
mov r2, r8
str r2, [sp, 0x10]
add r0, sp, 0x14
adds r1, r5, 0
movs r2, 0
movs r3, 0
bl BlitBitmapRect4Bit
adds r0, r6, 0
bl GetKeypadIconWidth
b _0813C38E
.align 2, 0
_0813C344: .4byte gKeypadIconTiles
_0813C348:
mov r0, r9
ldrb r1, [r0]
movs r2, 0x80
lsls r2, 1
adds r0, r2, 0
orrs r1, r0
movs r0, 0x1
add r9, r0
_0813C358:
cmp r1, 0
bne _0813C36A
ldr r1, [sp, 0x24]
cmp r1, 0
bne _0813C366
adds r0, r7, 0x5
b _0813C390
_0813C366:
adds r0, r7, 0x4
b _0813C390
_0813C36A:
add r3, sp, 0x1C
ldr r2, [sp, 0x28]
str r2, [sp]
str r7, [sp, 0x4]
mov r0, r10
str r0, [sp, 0x8]
ldr r2, [sp, 0x2C]
str r2, [sp, 0xC]
ldr r0, [sp, 0x30]
str r0, [sp, 0x10]
ldr r0, [sp, 0x24]
add r2, sp, 0x14
bl sub_813C3AC
ldr r1, [sp, 0x24]
ldr r0, _0813C398 @ =gGlyphInfo
adds r0, 0x80
ldrb r0, [r0]
_0813C38E:
adds r0, r7, r0
_0813C390:
lsls r0, 24
lsrs r7, r0, 24
b _0813C0AC
.align 2, 0
_0813C398: .4byte gGlyphInfo
_0813C39C:
add sp, 0x38
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end HelpSystemRenderText
thumb_func_start sub_813C3AC
sub_813C3AC: @ 813C3AC
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x14
adds r7, r2, 0
mov r8, r3
ldr r2, [sp, 0x38]
ldr r3, [sp, 0x3C]
ldr r4, [sp, 0x40]
ldr r5, [sp, 0x44]
lsls r0, 24
lsrs r6, r0, 24
lsls r1, 16
lsrs r0, r1, 16
adds r1, r0, 0
lsls r2, 24
lsrs r2, 24
mov r10, r2
lsls r3, 24
lsrs r3, 24
mov r9, r3
lsls r4, 24
lsrs r4, 24
lsls r5, 24
lsrs r5, 24
cmp r6, 0
bne _0813C3EE
movs r1, 0
bl DecompressGlyphFont0
b _0813C402
_0813C3EE:
cmp r6, 0x5
bne _0813C3FA
movs r1, 0
bl DecompressGlyphFont5
b _0813C402
_0813C3FA:
adds r0, r1, 0
movs r1, 0
bl DecompressGlyphFont2
_0813C402:
ldr r1, _0813C450 @ =gGlyphInfo
str r1, [r7]
movs r2, 0
movs r0, 0x10
strh r0, [r7, 0x4]
strh r0, [r7, 0x6]
ldr r0, [sp, 0x34]
mov r3, r8
str r0, [r3]
lsls r0, r4, 3
strh r0, [r3, 0x4]
lsls r0, r5, 3
strh r0, [r3, 0x6]
mov r0, r10
str r0, [sp]
mov r3, r9
str r3, [sp, 0x4]
adds r0, r1, 0
adds r0, 0x80
ldrb r0, [r0]
str r0, [sp, 0x8]
adds r1, 0x81
ldrb r0, [r1]
str r0, [sp, 0xC]
str r2, [sp, 0x10]
adds r0, r7, 0
mov r1, r8
movs r3, 0
bl BlitBitmapRect4Bit
add sp, 0x14
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0813C450: .4byte gGlyphInfo
thumb_func_end sub_813C3AC
thumb_func_start sub_813C454
sub_813C454: @ 813C454
push {r4,lr}