through sub_8111D90

This commit is contained in:
PikalaxALT
2018-10-12 10:09:38 -04:00
parent cd3594802c
commit 714d387cbd
4 changed files with 60 additions and 146 deletions
-140
View File
@@ -5,146 +5,6 @@
.text
thumb_func_start sub_8111D10
sub_8111D10: @ 8111D10
push {r4,r5,lr}
sub sp, 0x14
movs r4, 0
movs r1, 0
ldr r2, _08111D80 @ =gStringVar4
ldrb r0, [r2]
ldr r5, _08111D84 @ =gUnknown_203ADFE
cmp r0, 0xFF
beq _08111D42
_08111D22:
adds r0, r1, r2
ldrb r0, [r0]
cmp r0, 0xFE
bne _08111D30
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
_08111D30:
adds r0, r1, 0x1
lsls r0, 16
lsrs r1, r0, 16
cmp r1, 0xFF
bhi _08111D42
adds r0, r1, r2
ldrb r0, [r0]
cmp r0, 0xFF
bne _08111D22
_08111D42:
ldrb r0, [r5, 0x2]
bl PutWindowTilemap
ldrb r0, [r5, 0x2]
bl sub_8111D90
ldrb r0, [r5, 0x2]
ldr r1, _08111D88 @ =gUnknown_8456698
adds r1, r4, r1
ldrb r3, [r1]
movs r1, 0x1
str r1, [sp]
movs r2, 0
str r2, [sp, 0x4]
ldr r1, _08111D8C @ =gUnknown_8456634
str r1, [sp, 0x8]
str r2, [sp, 0xC]
ldr r1, _08111D80 @ =gStringVar4
str r1, [sp, 0x10]
movs r1, 0x2
movs r2, 0x2
bl AddTextPrinterParametrized2
movs r0, 0
bl schedule_bg_copy_tilemap_to_vram
add sp, 0x14
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08111D80: .4byte gStringVar4
_08111D84: .4byte gUnknown_203ADFE
_08111D88: .4byte gUnknown_8456698
_08111D8C: .4byte gUnknown_8456634
thumb_func_end sub_8111D10
thumb_func_start sub_8111D90
sub_8111D90: @ 8111D90
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
lsls r0, 24
lsrs r0, 24
mov r10, r0
ldr r0, _08111DC0 @ =gUnknown_8456638
mov r9, r0
movs r0, 0xB4
lsls r0, 5
bl Alloc
mov r8, r0
cmp r0, 0
beq _08111E0C
movs r1, 0
_08111DB4:
cmp r1, 0
beq _08111DC4
cmp r1, 0x5
beq _08111DC8
movs r0, 0x1
b _08111DCA
.align 2, 0
_08111DC0: .4byte gUnknown_8456638
_08111DC4:
movs r0, 0
b _08111DCA
_08111DC8:
movs r0, 0x2
_08111DCA:
movs r4, 0
lsls r6, r0, 5
lsls r0, r1, 4
adds r7, r1, 0x1
subs r0, r1
lsls r5, r0, 1
_08111DD6:
adds r1, r5, r4
lsls r1, 5
add r1, r8
mov r2, r9
adds r0, r2, r6
ldr r2, _08111E1C @ =0x04000008
bl CpuSet
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x1D
bls _08111DD6
lsls r0, r7, 24
lsrs r1, r0, 24
cmp r1, 0x5
bls _08111DB4
movs r2, 0xB4
lsls r2, 5
mov r0, r10
mov r1, r8
movs r3, 0
bl CopyToWindowPixelBuffer
mov r0, r8
bl Free
_08111E0C:
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08111E1C: .4byte 0x04000008
thumb_func_end sub_8111D90
thumb_func_start sub_8111E20
sub_8111E20: @ 8111E20
push {r4,lr}
+1
View File
@@ -0,0 +1 @@
换换烫烫烫烫换换
-6
View File
@@ -1,12 +1,6 @@
.section .rodata
.align 2, 0
gUnknown_8456638:: @ 8456638
.incbin "baserom.gba", 0x456638, 0x60
gUnknown_8456698:: @ 8456698
.incbin "baserom.gba", 0x456698, 0x4
gUnknown_845669C:: @ 845669C
.incbin "baserom.gba", 0x45669C, 0x8
+59
View File
@@ -79,6 +79,7 @@ void sub_8111AD8(void);
void sub_8111B80(void);
u8 sub_8111BD4(void);
void sub_8111D10(void);
void sub_8111D90(u8);
void sub_8111E20(void);
void sub_8111E64(s8);
bool8 sub_8111F60(void);
@@ -111,6 +112,10 @@ const struct WindowTemplate gUnknown_845661C[3] = {
const struct TextColor gUnknown_8456634 = {15, 1, 12};
const u16 gUnknown_8456638[] = INCBIN_U16("data/graphics/unknown_8456638.bin");
const u8 gUnknown_8456698[] = {17, 10, 3};
void sub_8110840(void * a0)
{
size_t r1 = (void *)gSaveBlock1Ptr - a0;
@@ -1099,3 +1104,57 @@ void sub_8111CF0(void)
if (gUnknown_203ADFA == 2)
sub_8111070(gUnknown_203ADF9);
}
void sub_8111D10(void)
{
u16 i;
u8 count = 0;
for (i = 0; i < 0x100 && gStringVar4[i] != EOS; i++)
{
if (gStringVar4[i] == CHAR_NEWLINE)
count++;
}
PutWindowTilemap(gUnknown_203ADFE[2]);
sub_8111D90(gUnknown_203ADFE[2]);
AddTextPrinterParametrized2(gUnknown_203ADFE[2], 2, 2, gUnknown_8456698[count], 1, 0, &gUnknown_8456634, 0, gStringVar4);
schedule_bg_copy_tilemap_to_vram(0);
}
void sub_8111D90(u8 a0)
{
const u16 * src = gUnknown_8456638;
u16 * buffer = Alloc(0x1680);
u8 i, j, y;
if (buffer)
{
for (i = 0; i < 6; i++)
{
switch (i)
{
default:
y = 1;
break;
case 0:
y = 0;
break;
case 5:
y = 2;
break;
}
// r6 = y * 32
// r5 = 2 * (i % 16)
// r4 = j
for (j = 0; j < 30; j++)
{
CpuCopy32(src + 16 * y, buffer + 16 * (2 * (15 * i) + j), 32);
}
}
CopyToWindowPixelBuffer(a0, (const u8 *)buffer, 0x1680, 0);
Free(buffer);
}
}