help_system: through sub_813BFC0

This commit is contained in:
PikalaxALT
2019-06-13 11:15:37 -04:00
parent 15722bdd2d
commit 2ffcf13f6b
2 changed files with 144 additions and 493 deletions
-493
View File
@@ -5,499 +5,6 @@
.text
thumb_func_start sub_813BC78
sub_813BC78: @ 813BC78
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
ldr r4, [sp, 0x20]
ldr r5, [sp, 0x24]
lsls r0, 16
lsrs r6, r0, 16
lsls r1, 24
lsrs r1, 24
mov r9, r1
lsls r2, 24
lsls r3, 24
lsrs r3, 24
mov r8, r3
lsls r4, 24
lsrs r4, 24
lsls r5, 16
lsrs r7, r5, 16
lsrs r0, r2, 24
adds r2, r0, r4
cmp r0, r2
bge _0813BCDE
mov r12, r2
ldr r1, _0813BCF0 @ =gDecompressionBuffer + 0x3800
mov r10, r1
_0813BCAE:
mov r4, r9
mov r2, r8
adds r1, r4, r2
adds r3, r0, 0x1
cmp r4, r1
bge _0813BCD6
lsls r2, r0, 6
mov r5, r10
_0813BCBE:
lsls r0, r4, 1
adds r0, r2, r0
adds r0, r5
strh r6, [r0]
adds r0, r6, r7
lsls r0, 16
lsrs r6, r0, 16
adds r0, r4, 0x1
lsls r0, 16
lsrs r4, r0, 16
cmp r4, r1
blt _0813BCBE
_0813BCD6:
lsls r0, r3, 16
lsrs r0, 16
cmp r0, r12
blt _0813BCAE
_0813BCDE:
bl sub_813BC5C
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0813BCF0: .4byte gDecompressionBuffer + 0x3800
thumb_func_end sub_813BC78
thumb_func_start sub_813BCF4
sub_813BCF4: @ 813BCF4
push {lr}
sub sp, 0x8
ldr r0, _0813BD10 @ =0x000001ff
movs r1, 0x14
str r1, [sp]
movs r1, 0
str r1, [sp, 0x4]
movs r2, 0
movs r3, 0x1E
bl sub_813BC78
add sp, 0x8
pop {r0}
bx r0
.align 2, 0
_0813BD10: .4byte 0x000001ff
thumb_func_end sub_813BCF4
thumb_func_start sub_813BD14
sub_813BD14: @ 813BD14
push {lr}
sub sp, 0x8
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0
beq _0813BD26
cmp r2, 0x1
beq _0813BD40
b _0813BD54
_0813BD26:
ldr r0, _0813BD3C @ =0x000001ff
movs r1, 0x2
str r1, [sp]
str r2, [sp, 0x4]
movs r1, 0x1
movs r2, 0
movs r3, 0x7
bl sub_813BC78
b _0813BD54
.align 2, 0
_0813BD3C: .4byte 0x000001ff
_0813BD40:
movs r0, 0xF4
lsls r0, 1
movs r1, 0x2
str r1, [sp]
str r2, [sp, 0x4]
movs r1, 0x1
movs r2, 0
movs r3, 0x7
bl sub_813BC78
_0813BD54:
add sp, 0x8
pop {r0}
bx r0
thumb_func_end sub_813BD14
thumb_func_start sub_813BD5C
sub_813BD5C: @ 813BD5C
push {lr}
sub sp, 0x8
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0
beq _0813BD6E
cmp r2, 0x1
beq _0813BD88
b _0813BD9C
_0813BD6E:
ldr r0, _0813BD84 @ =0x000001ff
movs r1, 0x2
str r1, [sp]
str r2, [sp, 0x4]
movs r1, 0xD
movs r2, 0
movs r3, 0x10
bl sub_813BC78
b _0813BD9C
.align 2, 0
_0813BD84: .4byte 0x000001ff
_0813BD88:
movs r0, 0xD0
lsls r0, 1
movs r1, 0x2
str r1, [sp]
str r2, [sp, 0x4]
movs r1, 0xD
movs r2, 0
movs r3, 0x10
bl sub_813BC78
_0813BD9C:
add sp, 0x8
pop {r0}
bx r0
thumb_func_end sub_813BD5C
thumb_func_start sub_813BDA4
sub_813BDA4: @ 813BDA4
push {lr}
sub sp, 0x8
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0
beq _0813BDB6
cmp r2, 0x1
beq _0813BDD0
b _0813BDE2
_0813BDB6:
ldr r0, _0813BDCC @ =0x000001ff
movs r1, 0x10
str r1, [sp]
str r2, [sp, 0x4]
movs r1, 0x2
movs r2, 0x3
movs r3, 0x1A
bl sub_813BC78
b _0813BDE2
.align 2, 0
_0813BDCC: .4byte 0x000001ff
_0813BDD0:
movs r0, 0x10
str r0, [sp]
str r2, [sp, 0x4]
movs r0, 0
movs r1, 0x2
movs r2, 0x3
movs r3, 0x1A
bl sub_813BC78
_0813BDE2:
add sp, 0x8
pop {r0}
bx r0
thumb_func_end sub_813BDA4
thumb_func_start sub_813BDE8
sub_813BDE8: @ 813BDE8
push {lr}
sub sp, 0x8
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0
beq _0813BDFA
cmp r2, 0x1
beq _0813BE14
b _0813BE2A
_0813BDFA:
ldr r0, _0813BE10 @ =0x000001ff
movs r1, 0x10
str r1, [sp]
str r2, [sp, 0x4]
movs r1, 0x1
movs r2, 0x3
movs r3, 0x1C
bl sub_813BC78
b _0813BE2A
.align 2, 0
_0813BE10: .4byte 0x000001ff
_0813BE14:
movs r0, 0xFD
lsls r0, 1
movs r1, 0x11
str r1, [sp]
movs r1, 0
str r1, [sp, 0x4]
movs r1, 0x1
movs r2, 0x3
movs r3, 0x1C
bl sub_813BC78
_0813BE2A:
add sp, 0x8
pop {r0}
bx r0
thumb_func_end sub_813BDE8
thumb_func_start sub_813BE30
sub_813BE30: @ 813BE30
push {lr}
sub sp, 0x8
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0
beq _0813BE42
cmp r2, 0x1
beq _0813BE5C
b _0813BE70
_0813BE42:
ldr r0, _0813BE58 @ =0x000001ff
movs r1, 0x5
str r1, [sp]
str r2, [sp, 0x4]
movs r1, 0x2
movs r2, 0xE
movs r3, 0x1A
bl sub_813BC78
b _0813BE70
.align 2, 0
_0813BE58: .4byte 0x000001ff
_0813BE5C:
movs r0, 0x8F
lsls r0, 1
movs r1, 0x5
str r1, [sp]
str r2, [sp, 0x4]
movs r1, 0x2
movs r2, 0xE
movs r3, 0x1A
bl sub_813BC78
_0813BE70:
add sp, 0x8
pop {r0}
bx r0
thumb_func_end sub_813BE30
thumb_func_start sub_813BE78
sub_813BE78: @ 813BE78
push {r4-r6,lr}
sub sp, 0x8
lsls r0, 24
lsrs r6, r0, 24
cmp r6, 0
beq _0813BE8A
cmp r6, 0x1
beq _0813BEB4
b _0813BED8
_0813BE8A:
ldr r5, _0813BEB0 @ =0x000001ff
movs r4, 0x1
str r4, [sp]
str r6, [sp, 0x4]
adds r0, r5, 0
movs r1, 0x1
movs r2, 0x2
movs r3, 0x1C
bl sub_813BC78
str r4, [sp]
str r6, [sp, 0x4]
adds r0, r5, 0
movs r1, 0x1
movs r2, 0x13
movs r3, 0x1C
bl sub_813BC78
b _0813BED8
.align 2, 0
_0813BEB0: .4byte 0x000001ff
_0813BEB4:
ldr r0, _0813BEE0 @ =0x000001f7
str r6, [sp]
movs r4, 0
str r4, [sp, 0x4]
movs r1, 0x1
movs r2, 0x2
movs r3, 0x1C
bl sub_813BC78
movs r0, 0xFC
lsls r0, 1
str r6, [sp]
str r4, [sp, 0x4]
movs r1, 0x1
movs r2, 0x13
movs r3, 0x1C
bl sub_813BC78
_0813BED8:
add sp, 0x8
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0813BEE0: .4byte 0x000001f7
thumb_func_end sub_813BE78
thumb_func_start sub_813BEE4
sub_813BEE4: @ 813BEE4
push {r4-r6,lr}
sub sp, 0x8
lsls r0, 24
lsrs r6, r0, 24
cmp r6, 0
beq _0813BEF6
cmp r6, 0x1
beq _0813BF20
b _0813BF44
_0813BEF6:
ldr r5, _0813BF1C @ =0x000001ff
movs r4, 0x1
str r4, [sp]
str r6, [sp, 0x4]
adds r0, r5, 0
movs r1, 0x1
movs r2, 0x2
movs r3, 0x1C
bl sub_813BC78
str r4, [sp]
str r6, [sp, 0x4]
adds r0, r5, 0
movs r1, 0x1
movs r2, 0x13
movs r3, 0x1C
bl sub_813BC78
b _0813BF44
.align 2, 0
_0813BF1C: .4byte 0x000001ff
_0813BF20:
ldr r0, _0813BF4C @ =0x000001fb
str r6, [sp]
movs r4, 0
str r4, [sp, 0x4]
movs r1, 0x1
movs r2, 0x2
movs r3, 0x1C
bl sub_813BC78
movs r0, 0xFE
lsls r0, 1
str r6, [sp]
str r4, [sp, 0x4]
movs r1, 0x1
movs r2, 0x13
movs r3, 0x1C
bl sub_813BC78
_0813BF44:
add sp, 0x8
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0813BF4C: .4byte 0x000001fb
thumb_func_end sub_813BEE4
thumb_func_start sub_813BF50
sub_813BF50: @ 813BF50
push {r4-r6,lr}
sub sp, 0x8
lsls r0, 24
lsrs r6, r0, 24
cmp r6, 0
beq _0813BF62
cmp r6, 0x1
beq _0813BF8C
b _0813BFB2
_0813BF62:
ldr r5, _0813BF88 @ =0x000001ff
movs r4, 0x14
str r4, [sp]
str r6, [sp, 0x4]
adds r0, r5, 0
movs r1, 0
movs r2, 0
movs r3, 0x1
bl sub_813BC78
str r4, [sp]
str r6, [sp, 0x4]
adds r0, r5, 0
movs r1, 0x1D
movs r2, 0
movs r3, 0x1
bl sub_813BC78
b _0813BFB2
.align 2, 0
_0813BF88: .4byte 0x000001ff
_0813BF8C:
ldr r6, _0813BFBC @ =0x000001f9
movs r5, 0x14
str r5, [sp]
movs r4, 0
str r4, [sp, 0x4]
adds r0, r6, 0
movs r1, 0
movs r2, 0
movs r3, 0x1
bl sub_813BC78
str r5, [sp]
str r4, [sp, 0x4]
adds r0, r6, 0
movs r1, 0x1D
movs r2, 0
movs r3, 0x1
bl sub_813BC78
_0813BFB2:
add sp, 0x8
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0813BFBC: .4byte 0x000001f9
thumb_func_end sub_813BF50
thumb_func_start sub_813BFC0
sub_813BFC0: @ 813BFC0
push {lr}
sub sp, 0x8
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0
beq _0813BFD2
cmp r2, 0x1
beq _0813BFE8
b _0813BFFC
_0813BFD2:
ldr r0, _0813BFE4 @ =0x000001ff
movs r1, 0x1
str r1, [sp]
str r2, [sp, 0x4]
movs r2, 0x5
movs r3, 0x1C
bl sub_813BC78
b _0813BFFC
.align 2, 0
_0813BFE4: .4byte 0x000001ff
_0813BFE8:
movs r0, 0xFE
lsls r0, 1
str r2, [sp]
movs r1, 0
str r1, [sp, 0x4]
movs r1, 0x1
movs r2, 0x5
movs r3, 0x1C
bl sub_813BC78
_0813BFFC:
add sp, 0x8
pop {r0}
bx r0
thumb_func_end sub_813BFC0
thumb_func_start sub_813C004
sub_813C004: @ 813C004
push {r4-r6,lr}
+144
View File
@@ -235,3 +235,147 @@ void sub_813BC5C(void)
{
RequestDma3Copy(gDecompressionBuffer, (void *)BG_CHAR_ADDR(3), BG_CHAR_SIZE, 0);
}
void sub_813BC78(u16 baseTile, u8 left, u8 top, u8 width, u8 height, u16 increment)
{
u16 i, j;
for (i = top; i < top + height; i++)
{
for (j = left; j < left + width; j++)
{
*((u16 *)(gDecompressionBuffer + 0x3800 + 64 * i + 2 * j)) = baseTile;
baseTile += increment;
}
}
sub_813BC5C();
}
void sub_813BCF4(void)
{
sub_813BC78(0x1FF, 0, 0, 30, 20, 0);
}
void sub_813BD14(u8 mode)
{
switch (mode)
{
case 0:
sub_813BC78(0x1FF, 1, 0, 7, 2, 0);
break;
case 1:
sub_813BC78(0x1E8, 1, 0, 7, 2, 1);
break;
}
}
void sub_813BD5C(u8 mode)
{
switch (mode)
{
case 0:
sub_813BC78(0x1FF, 13, 0, 16, 2, 0);
break;
case 1:
sub_813BC78(0x1A0, 13, 0, 16, 2, 1);
break;
}
}
void sub_813BDA4(u8 mode)
{
switch (mode)
{
case 0:
sub_813BC78(0x1FF, 2, 3, 26, 16, 0);
break;
case 1:
sub_813BC78(0x000, 2, 3, 26, 16, 1);
break;
}
}
void sub_813BDE8(u8 mode)
{
switch (mode)
{
case 0:
sub_813BC78(0x1FF, 1, 3, 28, 16, 0);
break;
case 1:
sub_813BC78(0x1FA, 1, 3, 28, 17, 0);
break;
}
}
void sub_813BE30(u8 mode)
{
switch (mode)
{
case 0:
sub_813BC78(0x1FF, 2, 14, 26, 5, 0);
break;
case 1:
sub_813BC78(0x11E, 2, 14, 26, 5, 1);
break;
}
}
void sub_813BE78(u8 mode)
{
switch (mode)
{
case 0:
sub_813BC78(0x1FF, 1, 2, 28, 1, 0);
sub_813BC78(0x1FF, 1, 19, 28, 1, 0);
break;
case 1:
sub_813BC78(0x1F7, 1, 2, 28, 1, 0);
sub_813BC78(0x1F8, 1, 19, 28, 1, 0);
break;
}
}
void sub_813BEE4(u8 mode)
{
switch (mode)
{
case 0:
sub_813BC78(0x1FF, 1, 2, 28, 1, 0);
sub_813BC78(0x1FF, 1, 19, 28, 1, 0);
break;
case 1:
sub_813BC78(0x1FB, 1, 2, 28, 1, 0);
sub_813BC78(0x1FC, 1, 19, 28, 1, 0);
break;
}
}
void sub_813BF50(u8 mode)
{
switch (mode)
{
case 0:
sub_813BC78(0x1FF, 0, 0, 1, 20, 0);
sub_813BC78(0x1FF, 29, 0, 1, 20, 0);
break;
case 1:
sub_813BC78(0x1F9, 0, 0, 1, 20, 0);
sub_813BC78(0x1F9, 29, 0, 1, 20, 0);
break;
}
}
void sub_813BFC0(u8 mode)
{
switch (mode)
{
case 0:
sub_813BC78(0x1FF, 1, 5, 28, 1, 0);
break;
case 1:
sub_813BC78(0x1FC, 1, 5, 28, 1, 0);
break;
}
}