start decompiling mevent_8145654

This commit is contained in:
PikalaxALT
2018-12-02 10:02:39 -05:00
parent 2fbe528d5e
commit 884f1934e8
5 changed files with 182 additions and 115 deletions
-108
View File
@@ -5,114 +5,6 @@
.text
thumb_func_start sub_8145654
sub_8145654: @ 8145654
push {r4-r7,lr}
adds r5, r0, 0
adds r6, r1, 0
cmp r5, 0
beq _08145670
cmp r6, 0
beq _08145670
ldr r7, _08145674 @ =gUnknown_203F3C8
ldr r0, _08145678 @ =0x0000145c
bl AllocZeroed
str r0, [r7]
cmp r0, 0
bne _0814567C
_08145670:
movs r0, 0
b _081456E6
.align 2, 0
_08145674: .4byte gUnknown_203F3C8
_08145678: .4byte 0x0000145c
_0814567C:
movs r4, 0xA6
lsls r4, 1
adds r1, r5, 0
adds r2, r4, 0
bl memcpy
ldr r1, [r7]
adds r1, r4
adds r0, r6, 0
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
ldr r2, [r7]
ldrb r1, [r2, 0x8]
lsls r0, r1, 26
lsrs r0, 28
cmp r0, 0x7
bls _081456AE
movs r0, 0x3D
negs r0, r0
ands r0, r1
strb r0, [r2, 0x8]
_081456AE:
ldr r2, [r7]
ldrb r1, [r2, 0x8]
lsls r0, r1, 30
lsrs r0, 30
cmp r0, 0x2
bls _081456C2
movs r0, 0x4
negs r0, r0
ands r0, r1
strb r0, [r2, 0x8]
_081456C2:
ldr r1, [r7]
ldrb r0, [r1, 0x9]
cmp r0, 0x7
bls _081456CE
movs r0, 0
strb r0, [r1, 0x9]
_081456CE:
ldr r0, [r7]
movs r1, 0xB8
lsls r1, 1
adds r2, r0, r1
ldrb r0, [r0, 0x8]
lsls r0, 26
lsrs r0, 28
lsls r0, 4
ldr r1, _081456EC @ =gUnknown_8467FB8
adds r0, r1
str r0, [r2]
movs r0, 0x1
_081456E6:
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_081456EC: .4byte gUnknown_8467FB8
thumb_func_end sub_8145654
thumb_func_start sub_81456F0
sub_81456F0: @ 81456F0
push {r4,lr}
ldr r4, _08145714 @ =gUnknown_203F3C8
ldr r0, [r4]
cmp r0, 0
beq _0814570C
ldr r2, _08145718 @ =0x0000145c
movs r1, 0
bl memset
ldr r0, [r4]
bl Free
movs r0, 0
str r0, [r4]
_0814570C:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08145714: .4byte gUnknown_203F3C8
_08145718: .4byte 0x0000145c
thumb_func_end sub_81456F0
thumb_func_start sub_814571C
sub_814571C: @ 814571C
push {r4-r6,lr}
+127 -6
View File
@@ -5,13 +5,78 @@
.align 2
gUnknown_8467068:: @ 8467068
.incbin "baserom.gba", 0x467068, 0x8
.byte 0x00, 0x02, 0x03
.byte 0x00, 0x01, 0x02
.align 2
gUnknown_8467070:: @ 8467070
.incbin "baserom.gba", 0x467070, 0x4
.byte 0x07, 0x04, 0x07
.align 2
gUnknown_8467074:: @ 8467074
.incbin "baserom.gba", 0x467074, 0xEE4
@ {0x01, 0x01, 0x01, 0x19, 0x04, 0x0f, 0x029c},
@ {0x01, 0x01, 0x06, 0x1c, 0x08, 0x0f, 0x01bc},
@ {0x01, 0x01, 0x0e, 0x1c, 0x05, 0x0f, 0x0130}
.byte 0x01, 0x01, 0x01, 0x19, 0x04, 0x0f
.2byte 0x029c
.byte 0x01, 0x01, 0x06, 0x1c, 0x08, 0x0f
.2byte 0x01bc
.byte 0x01, 0x01, 0x0e, 0x1c, 0x05, 0x0f
.2byte 0x0130
gUnknown_846708C::
.incbin "baserom.gba", 0x46708c, 0x20
gUnknown_84670AC::
.incbin "baserom.gba", 0x4670ac, 0x20
gUnknown_84670CC::
.incbin "baserom.gba", 0x4670cc, 0x20
gUnknown_84670EC::
.incbin "baserom.gba", 0x4670ec, 0x20
gUnknown_846710C::
.incbin "baserom.gba", 0x46710c, 0x20
gUnknown_846712C::
.incbin "baserom.gba", 0x46712c, 0x20
gUnknown_846714C::
.incbin "baserom.gba", 0x46714c, 0x20
gUnknown_846716C::
.incbin "baserom.gba", 0x46716c, 0x20
gUnknown_846718C::
.incbin "baserom.gba", 0x46718c, 0xFC
gUnknown_8467288::
.incbin "baserom.gba", 0x467288, 0xF4
gUnknown_846737C::
.incbin "baserom.gba", 0x46737c, 0xF4
gUnknown_8467470::
.incbin "baserom.gba", 0x467470, 0xE8
gUnknown_8467558::
.incbin "baserom.gba", 0x467558, 0xD4
gUnknown_846762C::
.incbin "baserom.gba", 0x46762c, 0xD4
gUnknown_8467700::
.incbin "baserom.gba", 0x467700, 0x234
gUnknown_8467934::
.incbin "baserom.gba", 0x467934, 0x148
gUnknown_8467A7C::
.incbin "baserom.gba", 0x467a7c, 0x230
gUnknown_8467CAC::
.incbin "baserom.gba", 0x467cac, 0x2AC
gUnknown_8467F58:: @ 8467F58
.incbin "baserom.gba", 0x467F58, 0x8
@@ -23,7 +88,14 @@ gUnknown_8467FA0:: @ 8467FA0
.incbin "baserom.gba", 0x467FA0, 0x18
gUnknown_8467FB8:: @ 8467FB8
.incbin "baserom.gba", 0x467FB8, 0x80
.4byte 0x0001, gUnknown_846718C, gUnknown_8467288, gUnknown_846708C
.4byte 0x1001, gUnknown_846737C, gUnknown_8467470, gUnknown_84670AC
.4byte 0x2001, gUnknown_8467558, gUnknown_846762C, gUnknown_84670CC
.4byte 0x3001, gUnknown_8467558, gUnknown_846762C, gUnknown_84670EC
.4byte 0x4001, gUnknown_8467558, gUnknown_846762C, gUnknown_846710C
.4byte 0x5001, gUnknown_8467558, gUnknown_846762C, gUnknown_846712C
.4byte 0x6001, gUnknown_8467700, gUnknown_8467934, gUnknown_846714C
.4byte 0x7001, gUnknown_8467A7C, gUnknown_8467CAC, gUnknown_846716C
gUnknown_8468038:: @ 8468038
.incbin "baserom.gba", 0x468038, 0x8
@@ -32,10 +104,59 @@ gUnknown_8468040:: @ 8468040
.incbin "baserom.gba", 0x468040, 0x10
gUnknown_8468050:: @ 8468050
.incbin "baserom.gba", 0x468050, 0x6D0
.incbin "baserom.gba", 0x468050, 0x10
gUnknown_8468060::
.incbin "baserom.gba", 0x468060, 0x20
gUnknown_8468080::
.incbin "baserom.gba", 0x468080, 0x20
gUnknown_84680A0::
.incbin "baserom.gba", 0x4680A0, 0x20
gUnknown_84680C0::
.incbin "baserom.gba", 0x4680C0, 0x80
gUnknown_8468140::
.incbin "baserom.gba", 0x468140, 0xdc
gUnknown_846821C::
.incbin "baserom.gba", 0x46821C, 0x30
gUnknown_846824C::
.incbin "baserom.gba", 0x46824C, 0xc0
gUnknown_846830C::
.incbin "baserom.gba", 0x46830C, 0x70
gUnknown_846837C::
.incbin "baserom.gba", 0x46837C, 0xcc
gUnknown_8468448::
.incbin "baserom.gba", 0x468448, 0x90
gUnknown_84684D8::
.incbin "baserom.gba", 0x4684D8, 0xdc
gUnknown_84685B4::
.incbin "baserom.gba", 0x4685B4, 0x90
gUnknown_8468644::
.incbin "baserom.gba", 0x468644, 0xdc
gUnknown_8468720:: @ 8468720
.incbin "baserom.gba", 0x468720, 0xC0
.4byte 1, gUnknown_84680C0, gUnknown_8468140, gUnknown_8468060
.4byte 1, gUnknown_846821C, gUnknown_846824C, gUnknown_84670AC
.4byte 1, gUnknown_846830C, gUnknown_846837C, gUnknown_84670CC
.4byte 1, gUnknown_846830C, gUnknown_846837C, gUnknown_84670EC
.4byte 1, gUnknown_846830C, gUnknown_846837C, gUnknown_846710C
.4byte 1, gUnknown_846830C, gUnknown_846837C, gUnknown_846712C
.4byte 1, gUnknown_8468448, gUnknown_84684D8, gUnknown_8468080
.4byte 1, gUnknown_84685B4, gUnknown_8468644, gUnknown_84680A0
gUnknown_84687A0::
.incbin "baserom.gba", 0x4687a0, 0x40
.include "data/mevent/script_ish.inc"
.include "data/mevent/script_common.inc"
+1 -1
View File
@@ -599,7 +599,7 @@ struct MEventBuffer_3120_Sub
{
u16 unk_00;
u8 unk_02;
u16 filler_04[220];
u8 filler_04[440];
};
struct MEventBuffer_3120
+2
View File
@@ -246,6 +246,7 @@ SECTIONS {
src/mevent.o(.text);
src/mevent_server_helpers.o(.text);
src/mevent_server.o(.text);
src/mevent_8145654.o(.text);
asm/mevent_8145654.o(.text);
src/menews_jisan.o(.text);
asm/seagallop.o(.text);
@@ -382,6 +383,7 @@ SECTIONS {
src/mevent.o(.rodata);
src/mevent_server_helpers.o(.rodata);
src/mevent_server.o(.rodata);
src/mevent_8145654.o(.rodata);
data/data_8466FB8.o(.rodata);
src/menews_jisan.o(.rodata);
src/menews_jisan.o(.rodata.str1.4);
+52
View File
@@ -0,0 +1,52 @@
#include "global.h"
#include "malloc.h"
#include "mevent.h"
struct UnkStruct_8467FB8
{
u16 ident;
const void * unk_04;
const void * unk_08;
const void * unk_0C;
};
struct UnkStruct_203F3C8
{
/*0000*/ struct MEventBuffer_32E0_Sub unk_0000;
/*014c*/ struct MEventBuffer_3430_Sub unk_014c;
/*0170*/ const struct UnkStruct_8467FB8 * unk_0170;
/*0174*/ u8 filler_0174[0x12E8];
};
EWRAM_DATA struct UnkStruct_203F3C8 * gUnknown_203F3C8 = NULL;
extern const struct UnkStruct_8467FB8 gUnknown_8467FB8[8];
bool32 sub_8145654(struct MEventBuffer_32E0_Sub * r5, struct MEventBuffer_3430_Sub * r6)
{
if (r5 == NULL || r6 == NULL)
return FALSE;
gUnknown_203F3C8 = AllocZeroed(sizeof(struct UnkStruct_203F3C8));
if (gUnknown_203F3C8 == NULL)
return FALSE;
gUnknown_203F3C8->unk_0000 = *r5;
gUnknown_203F3C8->unk_014c = *r6;
if (gUnknown_203F3C8->unk_0000.unk_08_2 > 7)
gUnknown_203F3C8->unk_0000.unk_08_2 = 0;
if (gUnknown_203F3C8->unk_0000.unk_08_0 > 2)
gUnknown_203F3C8->unk_0000.unk_08_0 = 0;
if (gUnknown_203F3C8->unk_0000.unk_09 > 7)
gUnknown_203F3C8->unk_0000.unk_09 = 0;
gUnknown_203F3C8->unk_0170 = &gUnknown_8467FB8[gUnknown_203F3C8->unk_0000.unk_08_2];
return TRUE;
}
void sub_81456F0(void)
{
if (gUnknown_203F3C8 != NULL)
{
*gUnknown_203F3C8 = (struct UnkStruct_203F3C8){};
Free(gUnknown_203F3C8);
gUnknown_203F3C8 = NULL;
}
}