through sub_8111D90
This commit is contained in:
-140
@@ -5,146 +5,6 @@
|
|||||||
|
|
||||||
.text
|
.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
|
thumb_func_start sub_8111E20
|
||||||
sub_8111E20: @ 8111E20
|
sub_8111E20: @ 8111E20
|
||||||
push {r4,lr}
|
push {r4,lr}
|
||||||
|
|||||||
@@ -0,0 +1 @@
|
|||||||
|
换换烫烫��������������������������������������������������������������������������������烫烫换换
|
||||||
@@ -1,12 +1,6 @@
|
|||||||
.section .rodata
|
.section .rodata
|
||||||
|
|
||||||
.align 2, 0
|
.align 2, 0
|
||||||
gUnknown_8456638:: @ 8456638
|
|
||||||
.incbin "baserom.gba", 0x456638, 0x60
|
|
||||||
|
|
||||||
gUnknown_8456698:: @ 8456698
|
|
||||||
.incbin "baserom.gba", 0x456698, 0x4
|
|
||||||
|
|
||||||
gUnknown_845669C:: @ 845669C
|
gUnknown_845669C:: @ 845669C
|
||||||
.incbin "baserom.gba", 0x45669C, 0x8
|
.incbin "baserom.gba", 0x45669C, 0x8
|
||||||
|
|
||||||
|
|||||||
@@ -79,6 +79,7 @@ void sub_8111AD8(void);
|
|||||||
void sub_8111B80(void);
|
void sub_8111B80(void);
|
||||||
u8 sub_8111BD4(void);
|
u8 sub_8111BD4(void);
|
||||||
void sub_8111D10(void);
|
void sub_8111D10(void);
|
||||||
|
void sub_8111D90(u8);
|
||||||
void sub_8111E20(void);
|
void sub_8111E20(void);
|
||||||
void sub_8111E64(s8);
|
void sub_8111E64(s8);
|
||||||
bool8 sub_8111F60(void);
|
bool8 sub_8111F60(void);
|
||||||
@@ -111,6 +112,10 @@ const struct WindowTemplate gUnknown_845661C[3] = {
|
|||||||
|
|
||||||
const struct TextColor gUnknown_8456634 = {15, 1, 12};
|
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)
|
void sub_8110840(void * a0)
|
||||||
{
|
{
|
||||||
size_t r1 = (void *)gSaveBlock1Ptr - a0;
|
size_t r1 = (void *)gSaveBlock1Ptr - a0;
|
||||||
@@ -1099,3 +1104,57 @@ void sub_8111CF0(void)
|
|||||||
if (gUnknown_203ADFA == 2)
|
if (gUnknown_203ADFA == 2)
|
||||||
sub_8111070(gUnknown_203ADF9);
|
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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user