start decompiling mevent_8145654
This commit is contained in:
@@ -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
@@ -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
@@ -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
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user