diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2018-11-30 11:48:13 -0500 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2018-11-30 11:48:13 -0500 |
commit | de6cf9f0de562bfc3085ffc2e07825b4487b4b9e (patch) | |
tree | a1380f5c05d15a5ce0bd82936e37156cb104cff3 | |
parent | 5a80a339cd04864f36bae99eb4b35de2f8bbab16 (diff) |
through sub_8144C80
-rw-r--r-- | asm/mevent_server.s | 247 | ||||
-rw-r--r-- | src/mevent_server.c | 115 |
2 files changed, 113 insertions, 249 deletions
diff --git a/asm/mevent_server.s b/asm/mevent_server.s index d41ad7af4..7c5042b15 100644 --- a/asm/mevent_server.s +++ b/asm/mevent_server.s @@ -5,253 +5,6 @@ .text - thumb_func_start sub_8144AEC -sub_8144AEC: @ 8144AEC - push {r4,lr} - ldr r4, _08144B08 @ =gUnknown_203F3C0 - movs r0, 0x4C - bl AllocZeroed - str r0, [r4] - movs r1, 0x1 - movs r2, 0 - bl mevent_srv_ish_init - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08144B08: .4byte gUnknown_203F3C0 - thumb_func_end sub_8144AEC - - thumb_func_start sub_8144B0C -sub_8144B0C: @ 8144B0C - push {r4-r6,lr} - adds r6, r0, 0 - ldr r4, _08144B1C @ =gUnknown_203F3C0 - ldr r0, [r4] - cmp r0, 0 - bne _08144B20 - movs r0, 0x6 - b _08144B40 - .align 2, 0 -_08144B1C: .4byte gUnknown_203F3C0 -_08144B20: - bl mevent_srv_ish_exec - adds r5, r0, 0 - cmp r5, 0x6 - bne _08144B3E - ldr r0, [r4] - ldr r1, [r0, 0x4] - strh r1, [r6] - bl sub_8144BC0 - ldr r0, [r4] - bl Free - movs r0, 0 - str r0, [r4] -_08144B3E: - adds r0, r5, 0 -_08144B40: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_8144B0C - - thumb_func_start sub_8144B48 -sub_8144B48: @ 8144B48 - ldr r0, _08144B54 @ =gUnknown_203F3C0 - ldr r1, [r0] - ldr r0, [r1, 0xC] - adds r0, 0x1 - str r0, [r1, 0xC] - bx lr - .align 2, 0 -_08144B54: .4byte gUnknown_203F3C0 - thumb_func_end sub_8144B48 - - thumb_func_start sub_8144B58 -sub_8144B58: @ 8144B58 - ldr r0, _08144B60 @ =gUnknown_203F3C0 - ldr r0, [r0] - ldr r0, [r0, 0x20] - bx lr - .align 2, 0 -_08144B60: .4byte gUnknown_203F3C0 - thumb_func_end sub_8144B58 - - thumb_func_start sub_8144B64 -sub_8144B64: @ 8144B64 - ldr r1, _08144B6C @ =gUnknown_203F3C0 - ldr r1, [r1] - str r0, [r1, 0x4] - bx lr - .align 2, 0 -_08144B6C: .4byte gUnknown_203F3C0 - thumb_func_end sub_8144B64 - - thumb_func_start mevent_srv_ish_init -mevent_srv_ish_init: @ 8144B70 - push {r4-r6,lr} - mov r6, r8 - push {r6} - adds r4, r0, 0 - adds r6, r1, 0 - mov r8, r2 - movs r0, 0 - str r0, [r4] - str r0, [r4, 0x8] - str r0, [r4, 0xC] - movs r5, 0x80 - lsls r5, 3 - adds r0, r5, 0 - bl AllocZeroed - str r0, [r4, 0x14] - adds r0, r5, 0 - bl AllocZeroed - str r0, [r4, 0x18] - adds r0, r5, 0 - bl AllocZeroed - str r0, [r4, 0x1C] - movs r0, 0x40 - bl AllocZeroed - str r0, [r4, 0x20] - adds r4, 0x24 - adds r0, r4, 0 - adds r1, r6, 0 - mov r2, r8 - bl sub_814485C - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end mevent_srv_ish_init - - thumb_func_start sub_8144BC0 -sub_8144BC0: @ 8144BC0 - push {r4,lr} - adds r4, r0, 0 - ldr r0, [r4, 0x14] - bl Free - ldr r0, [r4, 0x18] - bl Free - ldr r0, [r4, 0x1C] - bl Free - ldr r0, [r4, 0x20] - bl Free - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8144BC0 - - thumb_func_start sub_8144BE4 -sub_8144BE4: @ 8144BE4 - push {r4,lr} - adds r4, r0, 0 - ldr r0, [r4, 0x1C] - ldr r1, [r4, 0x18] - movs r2, 0x80 - lsls r2, 3 - bl memcpy - movs r0, 0 - str r0, [r4, 0x10] - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8144BE4 - - thumb_func_start sub_8144C00 -sub_8144C00: @ 8144C00 - push {r4-r6,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r6, r1, 0 - adds r5, r2, 0 - movs r0, 0 - str r0, [sp] - ldr r1, [r4, 0x14] - ldr r2, _08144C30 @ =0x05000100 - mov r0, sp - bl CpuSet - ldr r2, [r4, 0x14] - str r5, [r2] - adds r4, 0x24 - adds r0, r4, 0 - adds r1, r6, 0 - movs r3, 0x4 - bl sub_8144888 - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08144C30: .4byte 0x05000100 - thumb_func_end sub_8144C00 - - thumb_func_start sub_8144C34 -sub_8144C34: @ 8144C34 - push {r4,lr} - adds r4, r0, 0 - ldr r0, [r4, 0x1C] - ldr r1, _08144C58 @ =gUnknown_84687E0 - movs r2, 0x80 - lsls r2, 3 - bl memcpy - movs r1, 0 - str r1, [r4, 0x10] - movs r0, 0x4 - str r0, [r4, 0x8] - str r1, [r4, 0xC] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08144C58: .4byte gUnknown_84687E0 - thumb_func_end sub_8144C34 - - thumb_func_start sub_8144C5C -sub_8144C5C: @ 8144C5C - movs r0, 0x6 - bx lr - thumb_func_end sub_8144C5C - - thumb_func_start sub_8144C60 -sub_8144C60: @ 8144C60 - push {r4,lr} - adds r4, r0, 0 - adds r0, 0x24 - bl sub_8144844 - cmp r0, 0 - beq _08144C76 - movs r0, 0x4 - str r0, [r4, 0x8] - movs r0, 0 - str r0, [r4, 0xC] -_08144C76: - movs r0, 0x1 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8144C60 - - thumb_func_start sub_8144C80 -sub_8144C80: @ 8144C80 - push {r4,lr} - adds r4, r0, 0 - adds r0, 0x24 - bl sub_8144850 - cmp r0, 0 - beq _08144C96 - movs r0, 0x4 - str r0, [r4, 0x8] - movs r0, 0 - str r0, [r4, 0xC] -_08144C96: - movs r0, 0x1 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8144C80 - thumb_func_start sub_8144CA0 sub_8144CA0: @ 8144CA0 push {r4,lr} diff --git a/src/mevent_server.c b/src/mevent_server.c index 8c68a9350..a94d8a0a1 100644 --- a/src/mevent_server.c +++ b/src/mevent_server.c @@ -51,6 +51,11 @@ EWRAM_DATA struct mevent_srv_ish * gUnknown_203F3C0 = NULL; u32 sub_814490C(struct mevent_srv_sub *); u32 sub_81449E0(struct mevent_srv_sub *); +void mevent_srv_ish_init(struct mevent_srv_ish *, u32, u32); +u32 mevent_srv_ish_exec(struct mevent_srv_ish *); +void sub_8144BC0(struct mevent_srv_ish *); + +extern u8 gUnknown_84687E0[0x400]; u32 sub_8144844(struct mevent_srv_sub * srv) { @@ -62,7 +67,7 @@ u32 sub_8144850(struct mevent_srv_sub * srv) return srv->unk_24(srv); } -void sub_814485C(struct mevent_srv_sub * srv, u8 a1, u8 a2) +void sub_814485C(struct mevent_srv_sub * srv, u32 a1, u32 a2) { srv->unk_04 = a1; srv->unk_05 = a2; @@ -79,7 +84,7 @@ void sub_814485C(struct mevent_srv_sub * srv, u8 a1, u8 a2) srv->unk_20 = sub_814490C; } -void sub_8144888(struct mevent_srv_sub * srv, u16 a1, void * a2, u32 a3) +void sub_8144888(struct mevent_srv_sub * srv, u32 a1, void * a2, u32 a3) { srv->unk_00 = 0; srv->unk_0E = a1; @@ -247,3 +252,109 @@ bool32 sub_81449E0(struct mevent_srv_sub * srv) return FALSE; } + +void sub_8144AEC(void) +{ + gUnknown_203F3C0 = AllocZeroed(sizeof(struct mevent_srv_ish)); + mevent_srv_ish_init(gUnknown_203F3C0, 1, 0); +} + +u32 sub_8144B0C(u16 * a0) +{ + u32 result; + if (gUnknown_203F3C0 == NULL) + return 6; + result = mevent_srv_ish_exec(gUnknown_203F3C0); + if (result == 6) + { + *a0 = gUnknown_203F3C0->unk_04; + sub_8144BC0(gUnknown_203F3C0); + Free(gUnknown_203F3C0); + gUnknown_203F3C0 = NULL; + } + return result; +} + +void sub_8144B48(void) +{ + gUnknown_203F3C0->unk_0C++; +} + +void * sub_8144B58(void) +{ + return gUnknown_203F3C0->unk_20; +} + +void sub_8144B64(u32 a0) +{ + gUnknown_203F3C0->unk_04 = a0; +} + +void mevent_srv_ish_init(struct mevent_srv_ish * srv, u32 a1, u32 a2) +{ + srv->unk_00 = 0; + srv->unk_08 = 0; + srv->unk_0C = 0; + srv->unk_14 = AllocZeroed(0x400); + srv->unk_18 = AllocZeroed(0x400); + srv->unk_1C = AllocZeroed(0x400); + srv->unk_20 = AllocZeroed(0x40); + sub_814485C(&srv->unk_24, a1, a2); +} + +void sub_8144BC0(struct mevent_srv_ish * srv) +{ + Free(srv->unk_14); + Free(srv->unk_18); + Free(srv->unk_1C); + Free(srv->unk_20); +} + +void sub_8144BE4(struct mevent_srv_ish * srv) +{ + memcpy(srv->unk_1C, srv->unk_18, 0x400); + srv->unk_10 = 0; +} + +void sub_8144C00(struct mevent_srv_ish * srv, u32 a1, u32 a2) +{ + CpuFill32(0, srv->unk_14, 0x400); + *(u32 *)srv->unk_14 = a2; + sub_8144888(&srv->unk_24, a1, srv->unk_14, 4); +} + +// funcs in array gUnknown_8466F60 + +u32 sub_8144C34(struct mevent_srv_ish * srv) +{ + memcpy(srv->unk_1C, gUnknown_84687E0, sizeof(gUnknown_84687E0)); + srv->unk_10 = 0; + srv->unk_08 = 4; + srv->unk_0C = 0; + return 0; +} + +u32 sub_8144C5C(struct mevent_srv_ish * srv) +{ + return 6; +} + +u32 sub_8144C60(struct mevent_srv_ish * srv) +{ + if (sub_8144844(&srv->unk_24)) + { + srv->unk_08 = 4; + srv->unk_0C = 0; + } + return 1; +} + +u32 sub_8144C80(struct mevent_srv_ish * srv) +{ + if (sub_8144850(&srv->unk_24)) + { + srv->unk_08 = 4; + srv->unk_0C = 0; + } + return 1; +} |