Finish decomp of mevent_server

This commit is contained in:
PikalaxALT
2018-11-30 16:51:22 -05:00
parent 8a8e86fa4f
commit b9a6cba30a
8 changed files with 257 additions and 794 deletions
-740
View File
@@ -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.
-12
View File
@@ -1,17 +1,5 @@
.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
+9
View File
@@ -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
+1
View File
@@ -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
-1
View File
@@ -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);
+2 -2
View File
@@ -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)
+225 -16
View File
@@ -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;
}
+20 -23
View File
@@ -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;