summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/mevent.s259
-rw-r--r--data/data_845FD54.s86
-rw-r--r--data/data_8466FB8.s76
-rw-r--r--include/global.h4
-rw-r--r--ld_script.txt2
-rw-r--r--src/mevent.c135
6 files changed, 215 insertions, 347 deletions
diff --git a/asm/mevent.s b/asm/mevent.s
index 0e02d5b2b..819179c2b 100644
--- a/asm/mevent.s
+++ b/asm/mevent.s
@@ -5,265 +5,6 @@
.text
- thumb_func_start sub_81444B0
-sub_81444B0: @ 81444B0
- push {lr}
- adds r2, r0, 0
- cmp r1, 0x4
- bhi _081444FC
- lsls r0, r1, 2
- ldr r1, _081444C4 @ =_081444C8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_081444C4: .4byte _081444C8
- .align 2, 0
-_081444C8:
- .4byte _081444DC
- .4byte _081444E0
- .4byte _081444E4
- .4byte _081444E8
- .4byte _081444F4
-_081444DC:
- ldrh r0, [r2, 0x20]
- b _0814450A
-_081444E0:
- ldrh r0, [r2, 0x22]
- b _0814450A
-_081444E4:
- ldrh r0, [r2, 0x24]
- b _0814450A
-_081444E8:
- adds r0, r2, 0
- bl sub_814449C
- lsls r0, 16
- lsrs r0, 16
- b _0814450A
-_081444F4:
- adds r0, r2, 0
- adds r0, 0x44
- ldrb r0, [r0]
- b _0814450A
-_081444FC:
- ldr r0, _08144510 @ =gUnknown_8466F28 "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent.c"
- ldr r1, _08144514 @ =0x00000339
- ldr r2, _08144518 @ =gUnknown_8466F5C "0"
- movs r3, 0x1
- bl AGBAssert
- movs r0, 0
-_0814450A:
- pop {r1}
- bx r1
- .align 2, 0
-_08144510: .4byte gUnknown_8466F28
-_08144514: .4byte 0x00000339
-_08144518: .4byte gUnknown_8466F5C
- thumb_func_end sub_81444B0
-
- thumb_func_start sub_814451C
-sub_814451C: @ 814451C
- push {r4,lr}
- adds r4, r0, 0
- ldr r2, _08144544 @ =gSaveBlock1Ptr
- ldr r0, [r2]
- ldr r1, _08144548 @ =0x000032e4
- adds r0, r1
- ldrb r1, [r0, 0x8]
- movs r0, 0x3
- ands r0, r1
- adds r3, r2, 0
- cmp r0, 0x2
- bne _081445B6
- movs r2, 0
- cmp r4, 0x4
- bhi _08144582
- lsls r0, r4, 2
- ldr r1, _0814454C @ =_08144550
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08144544: .4byte gSaveBlock1Ptr
-_08144548: .4byte 0x000032e4
-_0814454C: .4byte _08144550
- .align 2, 0
-_08144550:
- .4byte _08144564
- .4byte _08144570
- .4byte _0814457C
- .4byte _08144582
- .4byte _08144582
-_08144564:
- ldr r0, [r3]
- ldr r1, _0814456C @ =0x00003434
- b _08144580
- .align 2, 0
-_0814456C: .4byte 0x00003434
-_08144570:
- ldr r0, [r3]
- ldr r1, _08144578 @ =0x00003436
- b _08144580
- .align 2, 0
-_08144578: .4byte 0x00003436
-_0814457C:
- ldr r0, [r3]
- ldr r1, _08144598 @ =0x00003438
-_08144580:
- adds r2, r0, r1
-_08144582:
- cmp r2, 0
- bne _081445A4
- ldr r0, _0814459C @ =gUnknown_8466F28 "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent.c"
- movs r1, 0xD9
- lsls r1, 2
- ldr r2, _081445A0 @ =gUnknown_8466F5C "0"
- movs r3, 0x1
- bl AGBAssert
- b _081445B6
- .align 2, 0
-_08144598: .4byte 0x00003438
-_0814459C: .4byte gUnknown_8466F28
-_081445A0: .4byte gUnknown_8466F5C
-_081445A4:
- ldrh r0, [r2]
- adds r0, 0x1
- strh r0, [r2]
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _081445BC @ =0x000003e7
- cmp r0, r1
- bls _081445B6
- strh r1, [r2]
-_081445B6:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081445BC: .4byte 0x000003e7
- thumb_func_end sub_814451C
-
- thumb_func_start sub_81445C0
-sub_81445C0: @ 81445C0
- push {lr}
- cmp r0, 0x4
- bhi _081446A4
- lsls r0, 2
- ldr r1, _081445D0 @ =_081445D4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_081445D0: .4byte _081445D4
- .align 2, 0
-_081445D4:
- .4byte _081445E8
- .4byte _08144610
- .4byte _08144638
- .4byte _08144660
- .4byte _08144684
-_081445E8:
- ldr r0, _08144604 @ =gSaveBlock1Ptr
- ldr r2, [r0]
- ldr r1, _08144608 @ =0x000032e4
- adds r0, r2, r1
- ldrb r1, [r0, 0x8]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0x2
- bne _081446A4
- ldr r1, _0814460C @ =0x00003434
- adds r0, r2, r1
- ldrh r0, [r0]
- b _081446B2
- .align 2, 0
-_08144604: .4byte gSaveBlock1Ptr
-_08144608: .4byte 0x000032e4
-_0814460C: .4byte 0x00003434
-_08144610:
- ldr r0, _0814462C @ =gSaveBlock1Ptr
- ldr r2, [r0]
- ldr r1, _08144630 @ =0x000032e4
- adds r0, r2, r1
- ldrb r1, [r0, 0x8]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0x2
- bne _081446A4
- ldr r1, _08144634 @ =0x00003434
- adds r0, r2, r1
- ldrh r0, [r0, 0x2]
- b _081446B2
- .align 2, 0
-_0814462C: .4byte gSaveBlock1Ptr
-_08144630: .4byte 0x000032e4
-_08144634: .4byte 0x00003434
-_08144638:
- ldr r0, _08144654 @ =gSaveBlock1Ptr
- ldr r2, [r0]
- ldr r1, _08144658 @ =0x000032e4
- adds r0, r2, r1
- ldrb r1, [r0, 0x8]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0x2
- bne _081446A4
- ldr r1, _0814465C @ =0x00003434
- adds r0, r2, r1
- ldrh r0, [r0, 0x4]
- b _081446B2
- .align 2, 0
-_08144654: .4byte gSaveBlock1Ptr
-_08144658: .4byte 0x000032e4
-_0814465C: .4byte 0x00003434
-_08144660:
- ldr r0, _0814467C @ =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r1, _08144680 @ =0x000032e4
- adds r0, r1
- ldrb r1, [r0, 0x8]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0x1
- bne _081446A4
- bl sub_8144218
- lsls r0, 16
- lsrs r0, 16
- b _081446B2
- .align 2, 0
-_0814467C: .4byte gSaveBlock1Ptr
-_08144680: .4byte 0x000032e4
-_08144684:
- ldr r0, _0814469C @ =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r1, _081446A0 @ =0x000032e4
- adds r2, r0, r1
- ldrb r1, [r2, 0x8]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0x1
- bne _081446A4
- ldrb r0, [r2, 0x9]
- b _081446B2
- .align 2, 0
-_0814469C: .4byte gSaveBlock1Ptr
-_081446A0: .4byte 0x000032e4
-_081446A4:
- ldr r0, _081446B8 @ =gUnknown_8466F28 "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent.c"
- ldr r1, _081446BC @ =0x00000391
- ldr r2, _081446C0 @ =gUnknown_8466F5C "0"
- movs r3, 0x1
- bl AGBAssert
- movs r0, 0
-_081446B2:
- pop {r1}
- bx r1
- .align 2, 0
-_081446B8: .4byte gUnknown_8466F28
-_081446BC: .4byte 0x00000391
-_081446C0: .4byte gUnknown_8466F5C
- thumb_func_end sub_81445C0
-
thumb_func_start sub_81446C4
sub_81446C4: @ 81446C4
ldr r1, _081446CC @ =gUnknown_203F3BC
diff --git a/data/data_845FD54.s b/data/data_845FD54.s
index d2b52192d..d05e14570 100644
--- a/data/data_845FD54.s
+++ b/data/data_845FD54.s
@@ -598,89 +598,3 @@ gUnknown_8466EE8:: @ 8466EE8
gUnknown_8466EF0:: @ 8466EF0
.incbin "baserom.gba", 0x466EF0, 0x10
-
-gUnknown_8466F00:: @ 8466F00
- .incbin "baserom.gba", 0x466F00, 0x28
-
- .align 2
-gUnknown_8466F28:: @ 8466F28
- .asciz "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent.c"
-
- .align 2
-gUnknown_8466F5C:: @ 8466F5C
- .asciz "0"
-
- .align 2
-gUnknown_8466F60:: @ 8466F60
- .incbin "baserom.gba", 0x466F60, 0x20
-
- .align 2
-gUnknown_8466F80:: @ 8466F80
- .asciz "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c"
-
- .align 2
-gUnknown_8466FB8:: @ 8466FB8
- .asciz "size <= ME_SEND_BUF_SIZE"
-
- .align 2
-gUnknown_8466FD4:: @ 8466FD4
- .asciz "cmd->parameter == NULL"
-
- .align 2
-gUnknown_8466FEC:: @ 8466FEC
- .asciz "cmd->flag == FALSE"
-
- .align 2
-gUnknown_8467000:: @ 8467000
- .asciz "cmd->flag == FALSE && cmd->parameter == NULL"
-
- .align 2
-gUnknown_8467030:: @ 8467030
- .incbin "baserom.gba", 0x467030, 0x14
-
- .align 2
-gUnknown_8467044:: @ 8467044
- .asciz "svr->mainseqno < NELEMS(func_tbl)"
-
- .align 2
-gUnknown_8467068:: @ 8467068
- .incbin "baserom.gba", 0x467068, 0x8
-
-gUnknown_8467070:: @ 8467070
- .incbin "baserom.gba", 0x467070, 0x4
-
-gUnknown_8467074:: @ 8467074
- .incbin "baserom.gba", 0x467074, 0xEE4
-
-gUnknown_8467F58:: @ 8467F58
- .incbin "baserom.gba", 0x467F58, 0x8
-
-gUnknown_8467F60:: @ 8467F60
- .incbin "baserom.gba", 0x467F60, 0x40
-
-gUnknown_8467FA0:: @ 8467FA0
- .incbin "baserom.gba", 0x467FA0, 0x18
-
-gUnknown_8467FB8:: @ 8467FB8
- .incbin "baserom.gba", 0x467FB8, 0x80
-
-gUnknown_8468038:: @ 8468038
- .incbin "baserom.gba", 0x468038, 0x8
-
-gUnknown_8468040:: @ 8468040
- .incbin "baserom.gba", 0x468040, 0x10
-
-gUnknown_8468050:: @ 8468050
- .incbin "baserom.gba", 0x468050, 0x6D0
-
-gUnknown_8468720:: @ 8468720
- .incbin "baserom.gba", 0x468720, 0xC0
-
-gUnknown_84687E0:: @ 84687E0
- .incbin "baserom.gba", 0x4687E0, 0x38C
-
-gUnknown_8468B6C:: @ 8468B6C
- .incbin "baserom.gba", 0x468B6C, 0x60
-
-gUnknown_8468BCC:: @ 8468BCC
- .incbin "baserom.gba", 0x468BCC, 0x90
diff --git a/data/data_8466FB8.s b/data/data_8466FB8.s
new file mode 100644
index 000000000..3f4fd49cd
--- /dev/null
+++ b/data/data_8466FB8.s
@@ -0,0 +1,76 @@
+ .section .rodata
+
+ .align 2
+gUnknown_8466F60:: @ 8466F60
+ .incbin "baserom.gba", 0x466F60, 0x20
+
+ .align 2
+gUnknown_8466F80:: @ 8466F80
+ .asciz "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c"
+
+ .align 2
+gUnknown_8466FB8:: @ 8466FB8
+ .asciz "size <= ME_SEND_BUF_SIZE"
+
+ .align 2
+gUnknown_8466FD4:: @ 8466FD4
+ .asciz "cmd->parameter == NULL"
+
+ .align 2
+gUnknown_8466FEC:: @ 8466FEC
+ .asciz "cmd->flag == FALSE"
+
+ .align 2
+gUnknown_8467000:: @ 8467000
+ .asciz "cmd->flag == FALSE && cmd->parameter == NULL"
+
+ .align 2
+gUnknown_8467030:: @ 8467030
+ .incbin "baserom.gba", 0x467030, 0x14
+
+ .align 2
+gUnknown_8467044:: @ 8467044
+ .asciz "svr->mainseqno < NELEMS(func_tbl)"
+
+ .align 2
+gUnknown_8467068:: @ 8467068
+ .incbin "baserom.gba", 0x467068, 0x8
+
+gUnknown_8467070:: @ 8467070
+ .incbin "baserom.gba", 0x467070, 0x4
+
+gUnknown_8467074:: @ 8467074
+ .incbin "baserom.gba", 0x467074, 0xEE4
+
+gUnknown_8467F58:: @ 8467F58
+ .incbin "baserom.gba", 0x467F58, 0x8
+
+gUnknown_8467F60:: @ 8467F60
+ .incbin "baserom.gba", 0x467F60, 0x40
+
+gUnknown_8467FA0:: @ 8467FA0
+ .incbin "baserom.gba", 0x467FA0, 0x18
+
+gUnknown_8467FB8:: @ 8467FB8
+ .incbin "baserom.gba", 0x467FB8, 0x80
+
+gUnknown_8468038:: @ 8468038
+ .incbin "baserom.gba", 0x468038, 0x8
+
+gUnknown_8468040:: @ 8468040
+ .incbin "baserom.gba", 0x468040, 0x10
+
+gUnknown_8468050:: @ 8468050
+ .incbin "baserom.gba", 0x468050, 0x6D0
+
+gUnknown_8468720:: @ 8468720
+ .incbin "baserom.gba", 0x468720, 0xC0
+
+gUnknown_84687E0:: @ 84687E0
+ .incbin "baserom.gba", 0x4687E0, 0x38C
+
+gUnknown_8468B6C:: @ 8468B6C
+ .incbin "baserom.gba", 0x468B6C, 0x60
+
+gUnknown_8468BCC:: @ 8468BCC
+ .incbin "baserom.gba", 0x468BCC, 0x90
diff --git a/include/global.h b/include/global.h
index 04f89802c..92e6b7da1 100644
--- a/include/global.h
+++ b/include/global.h
@@ -626,7 +626,9 @@ struct MEventBuffer_32E0
struct MEventBuffer_3430_Sub
{
- u8 filler_00[6];
+ u16 unk_00;
+ u16 unk_02;
+ u16 unk_04;
u16 unk_06;
u16 unk_08[2][7];
};
diff --git a/ld_script.txt b/ld_script.txt
index bef37772a..91bd070af 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -379,6 +379,8 @@ SECTIONS {
data/data_83FECCC.o(.rodata.8456C74);
src/fame_checker.o(.rodata);
data/data_845FD54.o(.rodata);
+ src/mevent.o(.rodata);
+ data/data_8466FB8.o(.rodata);
src/menews_jisan.o(.rodata);
src/menews_jisan.o(.rodata.str1.4);
data/data_8468C98.o(.rodata);
diff --git a/src/mevent.c b/src/mevent.c
index d24219f49..bf2d2c1a5 100644
--- a/src/mevent.c
+++ b/src/mevent.c
@@ -76,7 +76,28 @@ extern const u8 gUnknown_841DE9C[];
extern const u8 gUnknownSerialData_Start[];
extern const u8 gUnknownSerialData_End[];
-extern const u16 gUnknown_8466F00[];
+const u16 gUnknown_8466F00[] = {
+ 0x02a7,
+ 0x02a8,
+ 0x02a9,
+ 0x02aa,
+ 0x02ab,
+ 0x02ac,
+ 0x02ad,
+ 0x02ae,
+ 0x02af,
+ 0x02b0,
+ 0x02b1,
+ 0x02b2,
+ 0x02b3,
+ 0x02b4,
+ 0x02b5,
+ 0x02b6,
+ 0x02b7,
+ 0x02b8,
+ 0x02b9,
+ 0x02ba
+};
struct MEvent_Str_1 gUnknown_3005ED0;
@@ -817,3 +838,115 @@ s32 sub_814449C(const struct MEventStruct_Unk1442CC * a0)
{
return sub_8144184(&a0->unk_20, a0->unk_44);
}
+
+//TODO: Remove these later
+const char ALIGNED(4) gUnknown_8466F28[] = "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent.c";
+const char ALIGNED(4) gUnknown_8466F5C[] = "0";
+
+u16 sub_81444B0(const struct MEventStruct_Unk1442CC * a0, u32 command)
+{
+ switch (command)
+ {
+ case 0:
+ return a0->unk_20.unk_00;
+ case 1:
+ return a0->unk_20.unk_02;
+ case 2:
+ return a0->unk_20.unk_04;
+ case 3:
+ return sub_814449C(a0);
+ case 4:
+ return a0->unk_44;
+ default:
+ AGBAssert(gUnknown_8466F28, 825, gUnknown_8466F5C, 1);
+ // AGB_ASSERT_EX(0, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent.c", 825);
+ return 0;
+ }
+}
+
+void sub_814451C(u32 command)
+{
+ struct MEventBuffer_32E0_Sub * data = &gSaveBlock1Ptr->unk_3120.buffer_1c0.data;
+ if (data->unk_08_0 == 2)
+ {
+ u16 * dest = NULL;
+ switch (command)
+ {
+ case 0:
+ dest = &gSaveBlock1Ptr->unk_3120.buffer_310.data.unk_00;
+ break;
+ case 1:
+ dest = &gSaveBlock1Ptr->unk_3120.buffer_310.data.unk_02;
+ break;
+ case 2:
+ dest = &gSaveBlock1Ptr->unk_3120.buffer_310.data.unk_04;
+ break;
+ case 3:
+ break;
+ case 4:
+ break;
+ }
+ if (dest == NULL)
+ {
+ AGBAssert(gUnknown_8466F28, 868, gUnknown_8466F5C, 1);
+ // AGB_ASSERT_EX(0, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent.c", 868);
+ }
+ else if (++(*dest) > 999)
+ {
+ *dest = 999;
+ }
+ }
+}
+
+u16 sub_81445C0(u32 command)
+{
+ switch (command)
+ {
+ case 0:
+ {
+ struct MEventBuffer_32E0_Sub * data = &gSaveBlock1Ptr->unk_3120.buffer_1c0.data;
+ if (data->unk_08_0 == 2)
+ {
+ struct MEventBuffer_3430_Sub * buffer = &gSaveBlock1Ptr->unk_3120.buffer_310.data;
+ return buffer->unk_00;
+ }
+ break;
+ }
+ case 1:
+ {
+ struct MEventBuffer_32E0_Sub * data = &gSaveBlock1Ptr->unk_3120.buffer_1c0.data;
+ if (data->unk_08_0 == 2)
+ {
+ struct MEventBuffer_3430_Sub * buffer = &gSaveBlock1Ptr->unk_3120.buffer_310.data;
+ return buffer->unk_02;
+ }
+ break;
+ }
+ case 2:
+ {
+ struct MEventBuffer_32E0_Sub * data = &gSaveBlock1Ptr->unk_3120.buffer_1c0.data;
+ if (data->unk_08_0 == 2)
+ {
+ struct MEventBuffer_3430_Sub * buffer = &gSaveBlock1Ptr->unk_3120.buffer_310.data;
+ return buffer->unk_04;
+ }
+ break;
+ }
+ case 3:
+ {
+ struct MEventBuffer_32E0_Sub * data = &gSaveBlock1Ptr->unk_3120.buffer_1c0.data;
+ if (data->unk_08_0 == 1)
+ return sub_8144218();
+ break;
+ }
+ case 4:
+ {
+ struct MEventBuffer_32E0_Sub * data = &gSaveBlock1Ptr->unk_3120.buffer_1c0.data;
+ if (data->unk_08_0 == 1)
+ return data->unk_09;
+ break;
+ }
+ }
+ AGBAssert(gUnknown_8466F28, 913, gUnknown_8466F5C, 1);
+ return 0;
+}