summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2018-11-30 16:51:22 -0500
committerPikalaxALT <pikalaxalt@gmail.com>2018-11-30 16:51:22 -0500
commitb9a6cba30a3ee44ccb14548d198accd7f6bbfa8d (patch)
tree79745a054c34cd7e0526aa20e97e663358c0ffdb
parent8a8e86fa4fe0a7932f475c7aa8424ea840327e4b (diff)
Finish decomp of mevent_server
-rw-r--r--asm/mevent_server.s740
-rw-r--r--data/data_8466FB8.s12
-rw-r--r--include/mevent.h9
-rw-r--r--include/script.h1
-rw-r--r--ld_script.txt1
-rw-r--r--src/mevent.c4
-rw-r--r--src/mevent_server.c241
-rw-r--r--src/mevent_server_ish.c43
8 files changed, 257 insertions, 794 deletions
diff --git a/asm/mevent_server.s b/asm/mevent_server.s
deleted file mode 100644
index 1bcc5deed..000000000
--- a/asm/mevent_server.s
+++ /dev/null
@@ -1,740 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_814505C
-sub_814505C: @ 814505C
- push {lr}
- cmp r0, 0
- bne _08145064
- adds r0, r1, 0
-_08145064:
- pop {r1}
- bx r1
- thumb_func_end sub_814505C
-
- thumb_func_start sub_8145068
-sub_8145068: @ 8145068
- push {lr}
- cmp r1, r0
- bcs _08145072
- movs r0, 0
- b _0814507C
-_08145072:
- cmp r1, r0
- beq _0814507A
- movs r0, 0x2
- b _0814507C
-_0814507A:
- movs r0, 0x1
-_0814507C:
- pop {r1}
- bx r1
- thumb_func_end sub_8145068
-
- thumb_func_start sub_8145080
-sub_8145080: @ 8145080
- movs r1, 0x4
- str r1, [r0, 0x8]
- movs r0, 0
- bx lr
- thumb_func_end sub_8145080
-
- thumb_func_start sub_8145088
-sub_8145088: @ 8145088
- movs r0, 0x3
- bx lr
- thumb_func_end sub_8145088
-
- thumb_func_start sub_814508C
-sub_814508C: @ 814508C
- push {r4,lr}
- adds r4, r0, 0
- adds r0, 0x38
- bl sub_8144844
- cmp r0, 0
- beq _0814509E
- movs r0, 0x4
- str r0, [r4, 0x8]
-_0814509E:
- movs r0, 0x1
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_814508C
-
- thumb_func_start sub_81450A8
-sub_81450A8: @ 81450A8
- push {r4,lr}
- adds r4, r0, 0
- adds r0, 0x38
- bl sub_8144850
- cmp r0, 0
- beq _081450BA
- movs r0, 0x4
- str r0, [r4, 0x8]
-_081450BA:
- movs r0, 0x1
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_81450A8
-
- thumb_func_start sub_81450C4
-sub_81450C4: @ 81450C4
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, [r5, 0xC]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- ldr r2, [r5, 0x10]
- adds r4, r2, r1
- adds r0, 0x1
- str r0, [r5, 0xC]
- ldr r0, [r4]
- cmp r0, 0x1D
- bls _081450E0
- b _081455F8
-_081450E0:
- lsls r0, 2
- ldr r1, _081450EC @ =_081450F0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_081450EC: .4byte _081450F0
- .align 2, 0
-_081450F0:
- .4byte _08145168
- .4byte _08145190
- .4byte _08145196
- .4byte _081451C4
- .4byte _08145268
- .4byte _081451E4
- .4byte _08145228
- .4byte _0814527C
- .4byte _081452AC
- .4byte _081452EC
- .4byte _08145320
- .4byte _08145350
- .4byte _08145378
- .4byte _081453D8
- .4byte _081453A4
- .4byte _08145440
- .4byte _0814540C
- .4byte _081454AA
- .4byte _08145458
- .4byte _08145470
- .4byte _0814549C
- .4byte _08145510
- .4byte _081454B8
- .4byte _081454E4
- .4byte _08145538
- .4byte _08145542
- .4byte _0814554C
- .4byte _08145588
- .4byte _081455C0
- .4byte _081455EC
-_08145168:
- ldr r0, [r4, 0x8]
- cmp r0, 0
- beq _0814517C
- ldr r0, _08145188 @ =gUnknown_8466F80 "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c"
- movs r1, 0xB1
- lsls r1, 1
- ldr r2, _0814518C @ =gUnknown_8466FD4 "cmd->parameter == NULL"
- movs r3, 0x1
- bl AGBAssert
-_0814517C:
- movs r0, 0x1
- str r0, [r5, 0x8]
- ldr r0, [r4, 0x4]
- str r0, [r5, 0x4]
- b _081455F8
- .align 2, 0
-_08145188: .4byte gUnknown_8466F80
-_0814518C: .4byte gUnknown_8466FD4
-_08145190:
- movs r0, 0x3
- str r0, [r5, 0x8]
- b _081455F8
-_08145196:
- ldr r0, [r4, 0x8]
- cmp r0, 0
- beq _081451AA
- ldr r0, _081451BC @ =gUnknown_8466F80 "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c"
- movs r1, 0xB6
- lsls r1, 1
- ldr r2, _081451C0 @ =gUnknown_8466FD4 "cmd->parameter == NULL"
- movs r3, 0x1
- bl AGBAssert
-_081451AA:
- adds r0, r5, 0
- adds r0, 0x38
- ldr r1, [r4, 0x4]
- ldr r2, [r5, 0x14]
- bl sub_81448AC
- movs r0, 0x2
- str r0, [r5, 0x8]
- b _081455F8
- .align 2, 0
-_081451BC: .4byte gUnknown_8466F80
-_081451C0: .4byte gUnknown_8466FD4
-_081451C4:
- ldr r0, [r4, 0x4]
- cmp r0, 0
- beq _08145272
- ldr r0, _081451DC @ =gUnknown_8466F80 "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c"
- movs r1, 0xB9
- lsls r1, 1
- ldr r2, _081451E0 @ =gUnknown_8466FEC "cmd->flag == FALSE"
- movs r3, 0x1
- bl AGBAssert
- b _08145272
- .align 2, 0
-_081451DC: .4byte gUnknown_8466F80
-_081451E0: .4byte gUnknown_8466FEC
-_081451E4:
- ldr r0, [r4, 0x4]
- cmp r0, 0
- beq _081451F8
- ldr r0, _08145218 @ =gUnknown_8466F80 "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c"
- movs r1, 0xBC
- lsls r1, 1
- ldr r2, _0814521C @ =gUnknown_8466FEC "cmd->flag == FALSE"
- movs r3, 0x1
- bl AGBAssert
-_081451F8:
- ldr r0, [r4, 0x8]
- cmp r0, 0
- beq _0814520A
- ldr r0, _08145218 @ =gUnknown_8466F80 "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c"
- ldr r1, _08145220 @ =0x00000179
- ldr r2, _08145224 @ =gUnknown_8466FD4 "cmd->parameter == NULL"
- movs r3, 0x1
- bl AGBAssert
-_0814520A:
- ldr r0, [r5, 0x20]
- ldr r1, [r5, 0x14]
- movs r2, 0x64
- bl memcpy
- b _081455F8
- .align 2, 0
-_08145218: .4byte gUnknown_8466F80
-_0814521C: .4byte gUnknown_8466FEC
-_08145220: .4byte 0x00000179
-_08145224: .4byte gUnknown_8466FD4
-_08145228:
- ldr r0, [r4, 0x4]
- cmp r0, 0
- beq _0814523C
- ldr r0, _08145258 @ =gUnknown_8466F80 "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c"
- movs r1, 0xBF
- lsls r1, 1
- ldr r2, _0814525C @ =gUnknown_8466FEC "cmd->flag == FALSE"
- movs r3, 0x1
- bl AGBAssert
-_0814523C:
- ldr r0, [r4, 0x8]
- cmp r0, 0
- beq _0814524E
- ldr r0, _08145258 @ =gUnknown_8466F80 "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c"
- ldr r1, _08145260 @ =0x0000017f
- ldr r2, _08145264 @ =gUnknown_8466FD4 "cmd->parameter == NULL"
- movs r3, 0x1
- bl AGBAssert
-_0814524E:
- ldr r0, [r5, 0x20]
- bl sub_81443D4
- str r0, [r5, 0x4]
- b _081455F8
- .align 2, 0
-_08145258: .4byte gUnknown_8466F80
-_0814525C: .4byte gUnknown_8466FEC
-_08145260: .4byte 0x0000017f
-_08145264: .4byte gUnknown_8466FD4
-_08145268:
- ldr r1, [r5, 0x4]
- ldr r0, [r4, 0x4]
- cmp r1, r0
- beq _08145272
- b _081455F8
-_08145272:
- movs r0, 0
- str r0, [r5, 0xC]
- ldr r0, [r4, 0x8]
- str r0, [r5, 0x10]
- b _081455F8
-_0814527C:
- ldr r0, [r4, 0x4]
- cmp r0, 0
- beq _08145290
- ldr r0, _081452A4 @ =gUnknown_8466F80 "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c"
- movs r1, 0xC6
- lsls r1, 1
- ldr r2, _081452A8 @ =gUnknown_8466FEC "cmd->flag == FALSE"
- movs r3, 0x1
- bl AGBAssert
-_08145290:
- ldr r0, [r4, 0x8]
- ldr r1, [r5, 0x18]
- bl sub_814505C
- adds r2, r0, 0
- ldr r1, [r5, 0x20]
- bl sub_8144418
- str r0, [r5, 0x4]
- b _081455F8
- .align 2, 0
-_081452A4: .4byte gUnknown_8466F80
-_081452A8: .4byte gUnknown_8466FEC
-_081452AC:
- ldr r0, [r4, 0x4]
- cmp r0, 0
- beq _081452C0
- ldr r0, _081452DC @ =gUnknown_8466F80 "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c"
- movs r1, 0xC9
- lsls r1, 1
- ldr r2, _081452E0 @ =gUnknown_8466FEC "cmd->flag == FALSE"
- movs r3, 0x1
- bl AGBAssert
-_081452C0:
- ldr r0, [r4, 0x8]
- cmp r0, 0
- beq _081452D2
- ldr r0, _081452DC @ =gUnknown_8466F80 "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c"
- ldr r1, _081452E4 @ =0x00000193
- ldr r2, _081452E8 @ =gUnknown_8466FD4 "cmd->parameter == NULL"
- movs r3, 0x1
- bl AGBAssert
-_081452D2:
- ldr r0, [r5, 0x14]
- ldr r0, [r0]
- str r0, [r5, 0x4]
- b _081455F8
- .align 2, 0
-_081452DC: .4byte gUnknown_8466F80
-_081452E0: .4byte gUnknown_8466FEC
-_081452E4: .4byte 0x00000193
-_081452E8: .4byte gUnknown_8466FD4
-_081452EC:
- ldr r0, [r4, 0x4]
- cmp r0, 0
- beq _08145300
- ldr r0, _08145318 @ =gUnknown_8466F80 "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c"
- movs r1, 0xCC
- lsls r1, 1
- ldr r2, _0814531C @ =gUnknown_8466FEC "cmd->flag == FALSE"
- movs r3, 0x1
- bl AGBAssert
-_08145300:
- ldr r0, [r4, 0x8]
- adds r1, r5, 0
- adds r1, 0x34
- bl sub_814505C
- adds r2, r0, 0
- ldr r1, [r5, 0x20]
- bl sub_8144434
- str r0, [r5, 0x4]
- b _081455F8
- .align 2, 0
-_08145318: .4byte gUnknown_8466F80
-_0814531C: .4byte gUnknown_8466FEC
-_08145320:
- ldr r0, [r4, 0x8]
- cmp r0, 0
- beq _08145332
- ldr r0, _08145344 @ =gUnknown_8466F80 "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c"
- ldr r1, _08145348 @ =0x0000019f
- ldr r2, _0814534C @ =gUnknown_8466FD4 "cmd->parameter == NULL"
- movs r3, 0x1
- bl AGBAssert
-_08145332:
- ldr r0, [r5, 0x20]
- ldr r1, [r4, 0x4]
- bl sub_81444B0
- lsls r0, 16
- lsrs r0, 16
- str r0, [r5, 0x4]
- b _081455F8
- .align 2, 0
-_08145344: .4byte gUnknown_8466F80
-_08145348: .4byte 0x0000019f
-_0814534C: .4byte gUnknown_8466FD4
-_08145350:
- ldr r0, [r4, 0x4]
- cmp r0, 0
- beq _08145364
- ldr r0, _08145370 @ =gUnknown_8466F80 "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c"
- movs r1, 0xD2
- lsls r1, 1
- ldr r2, _08145374 @ =gUnknown_8466FEC "cmd->flag == FALSE"
- movs r3, 0x1
- bl AGBAssert
-_08145364:
- ldr r0, [r5, 0x20]
- ldr r1, [r4, 0x8]
- bl sub_8144474
- str r0, [r5, 0x4]
- b _081455F8
- .align 2, 0
-_08145370: .4byte gUnknown_8466F80
-_08145374: .4byte gUnknown_8466FEC
-_08145378:
- ldr r0, [r4, 0x4]
- cmp r0, 0
- beq _0814538C
- ldr r0, _0814539C @ =gUnknown_8466F80 "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c"
- movs r1, 0xD5
- lsls r1, 1
- ldr r2, _081453A0 @ =gUnknown_8466FEC "cmd->flag == FALSE"
- movs r3, 0x1
- bl AGBAssert
-_0814538C:
- ldr r0, [r4, 0x8]
- ldr r1, [r5, 0x14]
- ldr r1, [r1]
- bl sub_8145068
- str r0, [r5, 0x4]
- b _081455F8
- .align 2, 0
-_0814539C: .4byte gUnknown_8466F80
-_081453A0: .4byte gUnknown_8466FEC
-_081453A4:
- ldr r0, [r4, 0x4]
- cmp r0, 0
- beq _081453B8
- ldr r0, _081453D0 @ =gUnknown_8466F80 "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c"
- movs r1, 0xD8
- lsls r1, 1
- ldr r2, _081453D4 @ =gUnknown_8466FEC "cmd->flag == FALSE"
- movs r3, 0x1
- bl AGBAssert
-_081453B8:
- ldr r0, [r4, 0x8]
- ldr r1, [r5, 0x1C]
- bl sub_814505C
- adds r2, r0, 0
- movs r3, 0xDE
- lsls r3, 1
- adds r0, r5, 0
- movs r1, 0x17
- bl sub_814501C
- b _081455F8
- .align 2, 0
-_081453D0: .4byte gUnknown_8466F80
-_081453D4: .4byte gUnknown_8466FEC
-_081453D8:
- ldr r0, [r4, 0x4]
- cmp r0, 0
- beq _081453EC
- ldr r0, _08145404 @ =gUnknown_8466F80 "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c"
- movs r1, 0xDB
- lsls r1, 1
- ldr r2, _08145408 @ =gUnknown_8466FEC "cmd->flag == FALSE"
- movs r3, 0x1
- bl AGBAssert
-_081453EC:
- ldr r0, [r4, 0x8]
- ldr r1, [r5, 0x18]
- bl sub_814505C
- adds r2, r0, 0
- movs r3, 0xA6
- lsls r3, 1
- adds r0, r5, 0
- movs r1, 0x16
- bl sub_814501C
- b _081455F8
- .align 2, 0
-_08145404: .4byte gUnknown_8466F80
-_08145408: .4byte gUnknown_8466FEC
-_0814540C:
- ldr r0, [r4, 0x4]
- cmp r0, 0
- beq _08145420
- ldr r0, _08145438 @ =gUnknown_8466F80 "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c"
- movs r1, 0xDE
- lsls r1, 1
- ldr r2, _0814543C @ =gUnknown_8466FEC "cmd->flag == FALSE"
- movs r3, 0x1
- bl AGBAssert
-_08145420:
- ldr r0, [r4, 0x8]
- adds r1, r5, 0
- adds r1, 0x34
- bl sub_814505C
- adds r2, r0, 0
- adds r0, r5, 0
- movs r1, 0x18
- movs r3, 0x4
- bl sub_814501C
- b _081455F8
- .align 2, 0
-_08145438: .4byte gUnknown_8466F80
-_0814543C: .4byte gUnknown_8466FEC
-_08145440:
- ldr r2, [r4, 0x8]
- cmp r2, 0
- bne _0814544C
- ldr r2, [r5, 0x24]
- ldr r3, [r5, 0x28]
- b _0814544E
-_0814544C:
- ldr r3, [r4, 0x4]
-_0814544E:
- adds r0, r5, 0
- movs r1, 0x19
- bl sub_814501C
- b _081455F8
-_08145458:
- ldr r2, [r4, 0x8]
- cmp r2, 0
- bne _08145464
- ldr r2, [r5, 0x2C]
- ldr r3, [r5, 0x30]
- b _08145466
-_08145464:
- ldr r3, [r4, 0x4]
-_08145466:
- adds r0, r5, 0
- movs r1, 0x10
- bl sub_814501C
- b _081455F8
-_08145470:
- ldr r0, [r4, 0x4]
- cmp r0, 0
- beq _08145484
- ldr r0, _08145494 @ =gUnknown_8466F80 "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c"
- movs r1, 0xE9
- lsls r1, 1
- ldr r2, _08145498 @ =gUnknown_8466FEC "cmd->flag == FALSE"
- movs r3, 0x1
- bl AGBAssert
-_08145484:
- ldr r2, [r4, 0x8]
- adds r0, r5, 0
- movs r1, 0x1A
- movs r3, 0xBC
- bl sub_814501C
- b _081455F8
- .align 2, 0
-_08145494: .4byte gUnknown_8466F80
-_08145498: .4byte gUnknown_8466FEC
-_0814549C:
- ldr r2, [r4, 0x8]
- ldr r3, [r4, 0x4]
- adds r0, r5, 0
- movs r1, 0x15
- bl sub_814501C
- b _081455F8
-_081454AA:
- ldr r2, [r4, 0x8]
- ldr r3, [r4, 0x4]
- adds r0, r5, 0
- movs r1, 0x1C
- bl sub_814501C
- b _081455F8
-_081454B8:
- ldr r0, [r4, 0x4]
- cmp r0, 0
- beq _081454CA
- ldr r0, _081454D8 @ =gUnknown_8466F80 "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c"
- ldr r1, _081454DC @ =0x000001e1
- ldr r2, _081454E0 @ =gUnknown_8466FEC "cmd->flag == FALSE"
- movs r3, 0x1
- bl AGBAssert
-_081454CA:
- ldr r0, [r5, 0x18]
- ldr r1, [r4, 0x8]
- movs r2, 0xA6
- lsls r2, 1
- bl memcpy
- b _081455F8
- .align 2, 0
-_081454D8: .4byte gUnknown_8466F80
-_081454DC: .4byte 0x000001e1
-_081454E0: .4byte gUnknown_8466FEC
-_081454E4:
- ldr r0, [r4, 0x4]
- cmp r0, 0
- beq _081454F8
- ldr r0, _08145508 @ =gUnknown_8466F80 "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c"
- movs r1, 0xF3
- lsls r1, 1
- ldr r2, _0814550C @ =gUnknown_8466FEC "cmd->flag == FALSE"
- movs r3, 0x1
- bl AGBAssert
-_081454F8:
- ldr r0, [r5, 0x1C]
- ldr r1, [r4, 0x8]
- movs r2, 0xDE
- lsls r2, 1
- bl memcpy
- b _081455F8
- .align 2, 0
-_08145508: .4byte gUnknown_8466F80
-_0814550C: .4byte gUnknown_8466FEC
-_08145510:
- ldr r0, [r4, 0x4]
- cmp r0, 0
- beq _08145522
- ldr r0, _0814552C @ =gUnknown_8466F80 "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c"
- ldr r1, _08145530 @ =0x000001eb
- ldr r2, _08145534 @ =gUnknown_8466FEC "cmd->flag == FALSE"
- movs r3, 0x1
- bl AGBAssert
-_08145522:
- ldr r0, [r4, 0x8]
- ldr r0, [r0]
- str r0, [r5, 0x34]
- b _081455F8
- .align 2, 0
-_0814552C: .4byte gUnknown_8466F80
-_08145530: .4byte 0x000001eb
-_08145534: .4byte gUnknown_8466FEC
-_08145538:
- ldr r0, [r4, 0x8]
- str r0, [r5, 0x24]
- ldr r0, [r4, 0x4]
- str r0, [r5, 0x28]
- b _081455F8
-_08145542:
- ldr r0, [r4, 0x8]
- str r0, [r5, 0x2C]
- ldr r0, [r4, 0x4]
- str r0, [r5, 0x30]
- b _081455F8
-_0814554C:
- ldr r0, [r4, 0x4]
- cmp r0, 0
- bne _08145558
- ldr r0, [r4, 0x8]
- cmp r0, 0
- beq _08145566
-_08145558:
- ldr r0, _08145580 @ =gUnknown_8466F80 "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c"
- movs r1, 0xFD
- lsls r1, 1
- ldr r2, _08145584 @ =gUnknown_8467000 "cmd->flag == FALSE && cmd->parameter == NULL"
- movs r3, 0x1
- bl AGBAssert
-_08145566:
- ldr r4, [r5, 0x18]
- bl sav1_get_mevent_buffer_1
- adds r1, r0, 0
- movs r2, 0xA6
- lsls r2, 1
- adds r0, r4, 0
- bl memcpy
- ldr r0, [r5, 0x18]
- bl sub_814410C
- b _081455F8
- .align 2, 0
-_08145580: .4byte gUnknown_8466F80
-_08145584: .4byte gUnknown_8467000
-_08145588:
- ldr r0, [r4, 0x4]
- cmp r0, 0
- bne _08145594
- ldr r0, [r4, 0x8]
- cmp r0, 0
- beq _081455A2
-_08145594:
- ldr r0, _081455B8 @ =gUnknown_8466F80 "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c"
- movs r1, 0x80
- lsls r1, 2
- ldr r2, _081455BC @ =gUnknown_8467000 "cmd->flag == FALSE && cmd->parameter == NULL"
- movs r3, 0x1
- bl AGBAssert
-_081455A2:
- ldr r4, [r5, 0x1C]
- bl sub_8143D58
- adds r1, r0, 0
- movs r2, 0xDE
- lsls r2, 1
- adds r0, r4, 0
- bl memcpy
- b _081455F8
- .align 2, 0
-_081455B8: .4byte gUnknown_8466F80
-_081455BC: .4byte gUnknown_8467000
-_081455C0:
- ldr r0, [r4, 0x4]
- cmp r0, 0
- bne _081455CC
- ldr r0, [r4, 0x8]
- cmp r0, 0
- beq _081455D8
-_081455CC:
- ldr r0, _081455E0 @ =gUnknown_8466F80 "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c"
- ldr r1, _081455E4 @ =0x00000205
- ldr r2, _081455E8 @ =gUnknown_8467000 "cmd->flag == FALSE && cmd->parameter == NULL"
- movs r3, 0x1
- bl AGBAssert
-_081455D8:
- bl sub_8069E48
- str r0, [r5, 0x24]
- b _081455F8
- .align 2, 0
-_081455E0: .4byte gUnknown_8466F80
-_081455E4: .4byte 0x00000205
-_081455E8: .4byte gUnknown_8467000
-_081455EC:
- ldr r2, [r4, 0x8]
- ldr r3, [r4, 0x4]
- adds r0, r5, 0
- movs r1, 0x1B
- bl sub_814501C
-_081455F8:
- movs r0, 0x1
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_81450C4
-
- thumb_func_start sub_8145600
-sub_8145600: @ 8145600
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r0, [r4, 0x8]
- cmp r0, 0x4
- bls _08145616
- ldr r0, _08145644 @ =gUnknown_8466F80 "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c"
- ldr r1, _08145648 @ =0x00000222
- ldr r2, _0814564C @ =gUnknown_8467044 "svr->mainseqno < NELEMS(func_tbl)"
- movs r3, 0x1
- bl AGBAssert
-_08145616:
- ldr r1, _08145650 @ =func_tbl
- ldr r0, [r4, 0x8]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- adds r0, r4, 0
- bl _call_via_r1
- adds r5, r0, 0
- ldr r0, [r4, 0x8]
- cmp r0, 0x4
- bls _0814563C
- ldr r0, _08145644 @ =gUnknown_8466F80 "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c"
- movs r1, 0x89
- lsls r1, 2
- ldr r2, _0814564C @ =gUnknown_8467044 "svr->mainseqno < NELEMS(func_tbl)"
- movs r3, 0x1
- bl AGBAssert
-_0814563C:
- adds r0, r5, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08145644: .4byte gUnknown_8466F80
-_08145648: .4byte 0x00000222
-_0814564C: .4byte gUnknown_8467044
-_08145650: .4byte func_tbl
- thumb_func_end sub_8145600
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/data/data_8466FB8.s b/data/data_8466FB8.s
index c34887d86..0ca0bcbf3 100644
--- a/data/data_8466FB8.s
+++ b/data/data_8466FB8.s
@@ -1,18 +1,6 @@
.section .rodata
.align 2
-func_tbl:: @ 8467030
- .4byte sub_8145080
- .4byte sub_8145088
- .4byte sub_814508C
- .4byte sub_81450A8
- .4byte sub_81450C4
-
- .align 2
-gUnknown_8467044:: @ 8467044
- .asciz "svr->mainseqno < NELEMS(func_tbl)"
-
- .align 2
gUnknown_8467068:: @ 8467068
.incbin "baserom.gba", 0x467068, 0x8
diff --git a/include/mevent.h b/include/mevent.h
index 1744bb524..d940b212c 100644
--- a/include/mevent.h
+++ b/include/mevent.h
@@ -33,12 +33,21 @@ struct MEvent_Str_2
u8 fill_00[0x40];
};
+struct MEventBuffer_3120_Sub * sub_8143D58(void);
+struct MEventBuffer_32E0_Sub * sav1_get_mevent_buffer_1(void);
+struct MEventBuffer_3430_Sub * sav1_get_mevent_buffer_2(void);
struct MysteryEventStruct * sub_8143D94(void);
bool32 sub_8143DC8(const struct MEventBuffer_3120_Sub * src);
bool32 sub_8143E1C(void);
bool32 sub_8143EF4(const u8 * src);
bool32 sub_8143F68(const struct MEventBuffer_32E0_Sub * data);
+void sub_814410C(struct MEventBuffer_32E0_Sub * buffer);
bool32 sub_8144254(const u16 * data);
void sub_81442CC(struct MEventStruct_Unk1442CC * data);
+bool32 sub_81443D4(const struct MEventStruct_Unk1442CC * data);
+u32 sub_8144418(const u16 * a0, const struct MEventStruct_Unk1442CC * a1, void * unused);
+u32 sub_8144434(const u16 * a0, const struct MEventStruct_Unk1442CC * a1, void * unused);
+bool32 sub_8144474(const struct MEventStruct_Unk1442CC * a0, const u16 * a1);
+u16 sub_81444B0(const struct MEventStruct_Unk1442CC * a0, u32 command);
#endif //GUARD_MEVENT_H
diff --git a/include/script.h b/include/script.h
index b718af4c1..ebb4caa86 100644
--- a/include/script.h
+++ b/include/script.h
@@ -64,5 +64,6 @@ u8 *sub_8099244(void);
void sub_80992A0(u8 *script, u16 scriptSize);
bool32 sub_8069DFC(void);
void sub_8069EA4(u8 * script, u16 scriptSize);
+u8 * sub_8069E48(void);
#endif // GUARD_SCRIPT_H
diff --git a/ld_script.txt b/ld_script.txt
index 19d8a5862..04be16a01 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -247,7 +247,6 @@ SECTIONS {
src/mevent_server_sub.o(.text);
src/mevent_server_ish.o(.text);
src/mevent_server.o(.text);
- asm/mevent_server.o(.text);
asm/mevent_8145654.o(.text);
src/menews_jisan.o(.text);
asm/seagallop.o(.text);
diff --git a/src/mevent.c b/src/mevent.c
index 9638e0327..7a7fcc399 100644
--- a/src/mevent.c
+++ b/src/mevent.c
@@ -792,7 +792,7 @@ bool32 sub_81443D4(const struct MEventStruct_Unk1442CC * data)
return TRUE;
}
-u32 sub_8144418(const u16 * a0, const struct MEventStruct_Unk1442CC * a1)
+u32 sub_8144418(const u16 * a0, const struct MEventStruct_Unk1442CC * a1, void * unused)
{
if (a1->unk_14 == 0)
return 0;
@@ -801,7 +801,7 @@ u32 sub_8144418(const u16 * a0, const struct MEventStruct_Unk1442CC * a1)
return 2;
}
-u32 sub_8144434(const u16 * a0, const struct MEventStruct_Unk1442CC * a1)
+u32 sub_8144434(const u16 * a0, const struct MEventStruct_Unk1442CC * a1, void * unused)
{
s32 r4 = a1->unk_44 - sub_8144184(&a1->unk_20, a1->unk_44);
if (r4 == 0)
diff --git a/src/mevent_server.c b/src/mevent_server.c
index 027a7e994..2242dabce 100644
--- a/src/mevent_server.c
+++ b/src/mevent_server.c
@@ -13,18 +13,29 @@
extern u16 gBlockRecvBuffer[][128];
+struct mevent_cmd
+{
+ u32 instr;
+ bool32 flag;
+ void * parameter;
+};
+
struct mevent_srv_common
{
u32 unk_00;
u32 unk_04;
u32 mainseqno;
- u32 unk_0C;
- const void * unk_10;
+ u32 cmdidx;
+ const struct mevent_cmd * cmdBuffer;
void * unk_14;
- void * unk_18;
- void * unk_1C;
- void * unk_20;
- u8 filler_24[0x14];
+ struct MEventBuffer_32E0_Sub * unk_18;
+ struct MEventBuffer_3120_Sub * unk_1C;
+ struct MEventStruct_Unk1442CC * unk_20;
+ void * unk_24;
+ u32 unk_28;
+ void * unk_2C;
+ u32 unk_30;
+ void * unk_34;
struct mevent_srv_sub unk_38;
};
@@ -73,8 +84,8 @@ void mevent_srv_init_common(struct mevent_srv_common * svr, const void * a1, u32
svr->unk_1C = AllocZeroed(444);
svr->unk_14 = AllocZeroed(ME_SEND_BUF_SIZE);
svr->unk_20 = AllocZeroed(100);
- svr->unk_10 = a1;
- svr->unk_0C = 0;
+ svr->cmdBuffer = a1;
+ svr->cmdidx = 0;
sub_814485C(&svr->unk_38, a2, a3);
}
@@ -86,15 +97,213 @@ void mevent_srv_free_resources(struct mevent_srv_common * svr)
Free(svr->unk_20);
}
-const char gUnknown_8466F80[] = "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c";
-const char gUnknown_8466FB8[] = "size <= ME_SEND_BUF_SIZE";
-const char gUnknown_8466FD4[] = "cmd->parameter == NULL";
-const char gUnknown_8466FEC[] = "cmd->flag == FALSE";
-const char gUnknown_8467000[] = "cmd->flag == FALSE && cmd->parameter == NULL";
-
void sub_814501C(struct mevent_srv_common * svr, u32 a1, void * a2, u32 size)
{
- // AGB_ASSERT_EX(size <= ME_SEND_BUF_SIZE, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c", 257);
- size <= ME_SEND_BUF_SIZE ? NULL : AGBAssert(gUnknown_8466F80, 257, gUnknown_8466FB8, 1);
+ AGB_ASSERT_EX(size <= ME_SEND_BUF_SIZE, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c", 257);
sub_8144888(&svr->unk_38, a1, a2, size);
}
+
+void * sub_814505C(void * a0, void * a1)
+{
+ if (a0 != NULL)
+ return a0;
+ else
+ return a1;
+}
+
+u32 sub_8145068(void * a0, void * a1)
+{
+ if (a1 < a0)
+ return 0;
+ else if (a1 == a0)
+ return 1;
+ else
+ return 2;
+}
+
+u32 sub_8145080(struct mevent_srv_common * svr)
+{
+ svr->mainseqno = 4;
+ return 0;
+}
+
+u32 sub_8145088(struct mevent_srv_common * svr)
+{
+ return 3;
+}
+
+u32 sub_814508C(struct mevent_srv_common * svr)
+{
+ if (sub_8144844(&svr->unk_38))
+ svr->mainseqno = 4;
+ return 1;
+}
+
+u32 sub_81450A8(struct mevent_srv_common * svr)
+{
+ if (sub_8144850(&svr->unk_38))
+ svr->mainseqno = 4;
+ return 1;
+}
+
+u32 sub_81450C4(struct mevent_srv_common * svr)
+{
+ const struct mevent_cmd * cmd = &svr->cmdBuffer[svr->cmdidx];
+ void * ptr;
+ svr->cmdidx++;
+
+ switch (cmd->instr)
+ {
+ case 0:
+ AGB_ASSERT_EX(cmd->parameter == NULL, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c", 354);
+ svr->mainseqno = 1;
+ svr->unk_04 = cmd->flag;
+ break;
+ case 1:
+ svr->mainseqno = 3;
+ break;
+ case 2:
+ AGB_ASSERT_EX(cmd->parameter == NULL, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c", 364);
+ sub_81448AC(&svr->unk_38, cmd->flag, svr->unk_14);
+ svr->mainseqno = 2;
+ break;
+ case 3:
+ AGB_ASSERT_EX(cmd->flag == FALSE, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c", 370);
+ svr->cmdidx = 0;
+ svr->cmdBuffer = cmd->parameter;
+ break;
+ case 5:
+ AGB_ASSERT_EX(cmd->flag == FALSE, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c", 376);
+ AGB_ASSERT_EX(cmd->parameter == NULL, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c", 377);
+ memcpy(svr->unk_20, svr->unk_14, 100);
+ break;
+ case 6:
+ AGB_ASSERT_EX(cmd->flag == FALSE, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c", 382);
+ AGB_ASSERT_EX(cmd->parameter == NULL, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c", 383);
+ svr->unk_04 = sub_81443D4(svr->unk_20);
+ break;
+ case 4:
+ if (svr->unk_04 == cmd->flag)
+ {
+ svr->cmdidx = 0;
+ svr->cmdBuffer = cmd->parameter;
+ }
+ break;
+ case 7:
+ AGB_ASSERT_EX(cmd->flag == FALSE, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c", 396);
+ ptr = sub_814505C(cmd->parameter, svr->unk_18);
+ svr->unk_04 = sub_8144418(ptr, svr->unk_20, ptr);
+ break;
+ case 8:
+ AGB_ASSERT_EX(cmd->flag == FALSE, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c", 402);
+ AGB_ASSERT_EX(cmd->parameter == NULL, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c", 403);
+ svr->unk_04 = *(u32 *)svr->unk_14;
+ break;
+ case 9:
+ AGB_ASSERT_EX(cmd->flag == FALSE, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c", 408);
+ ptr = sub_814505C(cmd->parameter, &svr->unk_34);
+ svr->unk_04 = sub_8144434(ptr, svr->unk_20, ptr);
+ break;
+ case 10:
+ AGB_ASSERT_EX(cmd->parameter == NULL, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c", 415);
+ svr->unk_04 = sub_81444B0(svr->unk_20, cmd->flag);
+ break;
+ case 11:
+ AGB_ASSERT_EX(cmd->flag == FALSE, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c", 420);
+ svr->unk_04 = sub_8144474(svr->unk_20, cmd->parameter);
+ break;
+ case 12:
+ AGB_ASSERT_EX(cmd->flag == FALSE, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c", 426);
+ svr->unk_04 = sub_8145068(cmd->parameter, *(void **)svr->unk_14);
+ break;
+ case 14:
+ AGB_ASSERT_EX(cmd->flag == FALSE, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c", 432);
+ sub_814501C(svr, 0x17, sub_814505C(cmd->parameter, svr->unk_1C), 444);
+ break;
+ case 13:
+ AGB_ASSERT_EX(cmd->flag == FALSE, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c", 438);
+ sub_814501C(svr, 0x16, sub_814505C(cmd->parameter, svr->unk_18), 332);
+ break;
+ case 16:
+ AGB_ASSERT_EX(cmd->flag == FALSE, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c", 444);
+ sub_814501C(svr, 0x18, sub_814505C(cmd->parameter, &svr->unk_34), 4);
+ break;
+ case 15:
+ if (cmd->parameter == NULL)
+ sub_814501C(svr, 0x19, svr->unk_24, svr->unk_28);
+ else
+ sub_814501C(svr, 0x19, cmd->parameter, cmd->flag);
+ break;
+ case 18:
+ if (cmd->parameter == NULL)
+ sub_814501C(svr, 0x10, svr->unk_2C, svr->unk_30);
+ else
+ sub_814501C(svr, 0x10, cmd->parameter, cmd->flag);
+ break;
+ case 19:
+ AGB_ASSERT_EX(cmd->flag == FALSE, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c", 466);
+ sub_814501C(svr, 0x1a, cmd->parameter, 188);
+ break;
+ case 20:
+ sub_814501C(svr, 0x15, cmd->parameter, cmd->flag);
+ break;
+ case 17:
+ sub_814501C(svr, 0x1c, cmd->parameter, cmd->flag);
+ break;
+ case 22:
+ AGB_ASSERT_EX(cmd->flag == FALSE, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c", 481);
+ memcpy(svr->unk_18, cmd->parameter, 332);
+ break;
+ case 23:
+ AGB_ASSERT_EX(cmd->flag == FALSE, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c", 486);
+ memcpy(svr->unk_1C, cmd->parameter, 444);
+ break;
+ case 21:
+ AGB_ASSERT_EX(cmd->flag == FALSE, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c", 491);
+ svr->unk_34 = *(void **)cmd->parameter;
+ break;
+ case 24:
+ svr->unk_24 = cmd->parameter;
+ svr->unk_28 = cmd->flag;
+ break;
+ case 25:
+ svr->unk_2C = cmd->parameter;
+ svr->unk_30 = cmd->flag;
+ break;
+ case 26:
+ AGB_ASSERT_EX(cmd->flag == FALSE && cmd->parameter == NULL, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c", 506);
+ memcpy(svr->unk_18, sav1_get_mevent_buffer_1(), 332);
+ sub_814410C(svr->unk_18);
+ break;
+ case 27:
+ AGB_ASSERT_EX(cmd->flag == FALSE && cmd->parameter == NULL, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c", 512);
+ memcpy(svr->unk_1C, sub_8143D58(), 444);
+ break;
+ case 28:
+ AGB_ASSERT_EX(cmd->flag == FALSE && cmd->parameter == NULL, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c", 517);
+ svr->unk_24 = sub_8069E48();
+ break;
+ case 29:
+ sub_814501C(svr, 0x1b, cmd->parameter, cmd->flag);
+ break;
+ }
+
+ return 1;
+}
+
+static u32 (*const func_tbl[])(struct mevent_srv_common *) = {
+ sub_8145080,
+ sub_8145088,
+ sub_814508C,
+ sub_81450A8,
+ sub_81450C4
+};
+
+u32 sub_8145600(struct mevent_srv_common * svr)
+{
+ u32 response;
+ AGB_ASSERT_EX(svr->mainseqno < NELEMS(func_tbl), "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c", 546);
+ response = func_tbl[svr->mainseqno](svr);
+ AGB_ASSERT_EX(svr->mainseqno < NELEMS(func_tbl), "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c", 548);
+ return response;
+}
diff --git a/src/mevent_server_ish.c b/src/mevent_server_ish.c
index 7e9639303..e544c0f42 100644
--- a/src/mevent_server_ish.c
+++ b/src/mevent_server_ish.c
@@ -13,27 +13,26 @@
extern u16 gBlockRecvBuffer[][128];
+struct mevent_cmd
+{
+ u32 instr;
+ u32 parameter;
+};
+
struct mevent_srv_ish
{
u32 unk_00;
u32 unk_04;
u32 mainseqno;
u32 unk_0C;
- u32 unk_10;
+ u32 cmdidx;
void * unk_14;
void * unk_18;
- void * unk_1C;
+ struct mevent_cmd * cmdBuffer;
void * unk_20;
struct mevent_srv_sub unk_24;
};
-struct mevent_cmd
-{
- u32 instr;
- bool32 flag;
- u32 parameter;
-};
-
EWRAM_DATA struct mevent_srv_ish * gUnknown_203F3C0 = NULL;
void mevent_srv_ish_init(struct mevent_srv_ish *, u32, u32);
@@ -85,7 +84,7 @@ void mevent_srv_ish_init(struct mevent_srv_ish * svr, u32 a1, u32 a2)
svr->unk_0C = 0;
svr->unk_14 = AllocZeroed(ME_SEND_BUF_SIZE);
svr->unk_18 = AllocZeroed(ME_SEND_BUF_SIZE);
- svr->unk_1C = AllocZeroed(ME_SEND_BUF_SIZE);
+ svr->cmdBuffer = AllocZeroed(ME_SEND_BUF_SIZE);
svr->unk_20 = AllocZeroed(0x40);
sub_814485C(&svr->unk_24, a1, a2);
}
@@ -94,14 +93,14 @@ void sub_8144BC0(struct mevent_srv_ish * svr)
{
Free(svr->unk_14);
Free(svr->unk_18);
- Free(svr->unk_1C);
+ Free(svr->cmdBuffer);
Free(svr->unk_20);
}
void sub_8144BE4(struct mevent_srv_ish * svr)
{
- memcpy(svr->unk_1C, svr->unk_18, ME_SEND_BUF_SIZE);
- svr->unk_10 = 0;
+ memcpy(svr->cmdBuffer, svr->unk_18, ME_SEND_BUF_SIZE);
+ svr->cmdidx = 0;
}
void sub_8144C00(struct mevent_srv_ish * svr, u32 a1, u32 a2)
@@ -111,12 +110,10 @@ void sub_8144C00(struct mevent_srv_ish * svr, u32 a1, u32 a2)
sub_8144888(&svr->unk_24, a1, svr->unk_14, 4);
}
-// funcs in array gUnknown_8466F60
-
u32 sub_8144C34(struct mevent_srv_ish * svr)
{
- memcpy(svr->unk_1C, gUnknown_84687E0, ME_SEND_BUF_SIZE);
- svr->unk_10 = 0;
+ memcpy(svr->cmdBuffer, gUnknown_84687E0, ME_SEND_BUF_SIZE);
+ svr->cmdidx = 0;
svr->mainseqno = 4;
svr->unk_0C = 0;
return 0;
@@ -149,19 +146,19 @@ u32 sub_8144C80(struct mevent_srv_ish * svr)
u32 sub_8144CA0(struct mevent_srv_ish * svr)
{
- u32 * r2 = (u32 *)svr->unk_1C + 2 * svr->unk_10;
- ++svr->unk_10;
- switch (r2[0])
+ struct mevent_cmd * cmd = &svr->cmdBuffer[svr->cmdidx];
+ ++svr->cmdidx;
+ switch (cmd->instr)
{
case 0:
break;
case 1:
- svr->unk_04 = r2[1];
+ svr->unk_04 = cmd->parameter;
svr->mainseqno = 1;
svr->unk_0C = 0;
break;
case 2:
- sub_81448AC(&svr->unk_24, r2[1], svr->unk_18);
+ sub_81448AC(&svr->unk_24, cmd->parameter, svr->unk_18);
svr->mainseqno = 2;
svr->unk_0C = 0;
break;
@@ -175,7 +172,7 @@ u32 sub_8144CA0(struct mevent_srv_ish * svr)
svr->unk_0C = 0;
break;
case 19:
- sub_8144C00(svr, 0x12, GetGameStat(r2[1]));
+ sub_8144C00(svr, 0x12, GetGameStat(cmd->parameter));
svr->mainseqno = 3;
svr->unk_0C = 0;
break;