summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/mevent_8145654.s84
-rw-r--r--data/data_8466FB8.s18
-rw-r--r--include/global.h3
-rw-r--r--src/mevent_8145654.c35
4 files changed, 33 insertions, 107 deletions
diff --git a/asm/mevent_8145654.s b/asm/mevent_8145654.s
index c76fd8260..0d232dcc2 100644
--- a/asm/mevent_8145654.s
+++ b/asm/mevent_8145654.s
@@ -5,90 +5,6 @@
.text
- thumb_func_start sub_8146980
-sub_8146980: @ 8146980
- push {r4-r6,lr}
- movs r5, 0
- ldr r4, =gUnknown_203F3CC
- ldr r1, [r4]
- movs r2, 0xE7
- lsls r2, 1
- adds r0, r1, r2
- adds r1, 0x4
- movs r2, 0x28
- bl memcpy
- ldr r0, [r4]
- movs r3, 0xFB
- lsls r3, 1
- adds r1, r0, r3
- movs r0, 0xFF
- strb r0, [r1]
- adds r6, r4, 0
-_081469A4:
- ldr r2, [r6]
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r4, r1, r5
- adds r0, r4, r2
- ldr r3, =0x000001f7
- adds r0, r3
- adds r1, r2
- adds r1, 0x2C
- movs r2, 0x28
- bl memcpy
- ldr r0, [r6]
- ldr r1, =0x0000021f
- adds r0, r1
- adds r0, r4
- movs r1, 0xFF
- strb r1, [r0]
- cmp r5, 0x7
- bls _081469E8
- ldr r1, [r6]
- ldr r2, =0x000001f7
- adds r0, r1, r2
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0xFF
- beq _081469E8
- movs r3, 0xE2
- lsls r3, 1
- adds r1, r3
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_081469E8:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x9
- bls _081469A4
- ldr r2, =gUnknown_203F3CC
- ldr r1, [r2]
- movs r4, 0xE5
- lsls r4, 2
- adds r1, r4
- ldr r0, =gUnknown_8468050
- ldm r0!, {r3-r5}
- stm r1!, {r3-r5}
- ldr r0, [r0]
- str r0, [r1]
- ldr r2, [r2]
- movs r5, 0xE2
- lsls r5, 1
- adds r0, r2, r5
- ldrh r1, [r0]
- movs r3, 0xE7
- lsls r3, 2
- adds r0, r2, r3
- strh r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8146980
-
thumb_func_start sub_8146A30
sub_8146A30: @ 8146A30
push {r4-r7,lr}
diff --git a/data/data_8466FB8.s b/data/data_8466FB8.s
index 389b0d584..276658b7a 100644
--- a/data/data_8466FB8.s
+++ b/data/data_8466FB8.s
@@ -3,25 +3,7 @@
.section .rodata
- .macro window_template bg, left, top, width, height, pal, baseTile
- .byte \bg, \left, \top, \width, \height, \pal
- .2byte \baseTile
- .endm
-
-gUnknown_8468038:: @ 8468038
- .byte 0x00, 0x02, 0x03
- .byte 0x00, 0x01, 0x02
-
.align 2
-gUnknown_8468040:: @ 8468040
- window_template 0x00, 0x01, 0x00, 0x1c, 0x03, 0x0f, 0x0000
- window_template 0x02, 0x01, 0x03, 0x1c, 0x14, 0x0f, 0x0000
-
- .align 2
-gUnknown_8468050:: @ 8468050
- .byte 0x02, 0xe8, 0x18, 0x03, 0xe8, 0x98
- .2byte 0x0000, 0x0002, 0x1000, 0x1000, 0x0000
-
gUnknown_8468060::
.incbin "baserom.gba", 0x468060, 0x20
diff --git a/include/global.h b/include/global.h
index 840c90725..775b3115e 100644
--- a/include/global.h
+++ b/include/global.h
@@ -600,7 +600,8 @@ struct MEventBuffer_3120_Sub
u16 unk_00;
u8 unk_02;
u8 unk_03;
- u8 filler_04[440];
+ u8 unk_04[40];
+ u8 unk_2C[10][40];
};
struct MEventBuffer_3120
diff --git a/src/mevent_8145654.c b/src/mevent_8145654.c
index 443aa0b76..0be18ad8f 100644
--- a/src/mevent_8145654.c
+++ b/src/mevent_8145654.c
@@ -465,7 +465,9 @@ struct UnkStruct_203F3CC
/*01c4*/ u16 unk_01C4;
/*01c6*/ u16 unk_01C6;
/*01c8*/ u16 unk_01C8[2];
- /*01cc*/ u8 filler_01CC[0x1C8];
+ /*01cc*/ u8 filler_01CC[2];
+ /*01ce*/ u8 unk_01CE[41];
+ /*01f7*/ u8 unk_01F7[10][41];
/*0394*/ struct ScrollIndicatorArrowPairTemplate unk_0394;
/*03a4*/ u8 buffer_03A4[0x1000];
};
@@ -476,10 +478,19 @@ void sub_8146980(void);
void sub_8146A30(void);
void sub_8146B58(void);
-extern const struct TextColor gUnknown_8468038[2];
-extern const struct WindowTemplate gUnknown_8468040[2];
+const struct TextColor gUnknown_8468038[] = {
+ {0, 2, 3},
+ {0, 1, 2}
+};
+const struct WindowTemplate gUnknown_8468040[] = {
+ {0, 1, 0, 28, 3, 15, 0x000},
+ {2, 1, 3, 28, 20, 15, 0x000}
+};
+const struct ScrollIndicatorArrowPairTemplate gUnknown_8468050 = {
+ 0x02, 0xe8, 0x18, 0x03, 0xe8, 0x98,
+ 0x0000, 0x0002, 0x1000, 0x1000, 0x0, 0x000
+};
extern const struct UnkStruct_8468720 gUnknown_8468720[8];
-extern const struct ScrollIndicatorArrowPairTemplate gUnknown_8468050;
bool32 sub_8146288(const struct MEventBuffer_3120_Sub * a0)
{
@@ -702,3 +713,19 @@ u8 sub_8146884(u16 input)
else
return 3;
}
+
+void sub_8146980(void)
+{
+ u8 i = 0;
+ memcpy(gUnknown_203F3CC->unk_01CE, gUnknown_203F3CC->unk_0000.unk_04, 40);
+ gUnknown_203F3CC->unk_01CE[40] = EOS;
+ for (i = 0; i < 10; ++i)
+ {
+ memcpy(gUnknown_203F3CC->unk_01F7[i], gUnknown_203F3CC->unk_0000.unk_2C[i], 40);
+ gUnknown_203F3CC->unk_01F7[i][40] = EOS;
+ if (i > 7 && gUnknown_203F3CC->unk_01F7[i][0] != EOS)
+ ++gUnknown_203F3CC->unk_01C4;
+ }
+ gUnknown_203F3CC->unk_0394 = gUnknown_8468050;
+ gUnknown_203F3CC->unk_0394.unk_08 = gUnknown_203F3CC->unk_01C4;
+}