Finish decomp of mevent.s
This commit is contained in:
-219
@@ -1,219 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_81446C4
|
||||
sub_81446C4: @ 81446C4
|
||||
ldr r1, _081446CC @ =gUnknown_203F3BC
|
||||
movs r0, 0
|
||||
str r0, [r1]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_081446CC: .4byte gUnknown_203F3BC
|
||||
thumb_func_end sub_81446C4
|
||||
|
||||
thumb_func_start sub_81446D0
|
||||
sub_81446D0: @ 81446D0
|
||||
push {r4,r5,lr}
|
||||
lsls r0, 16
|
||||
lsrs r0, 16
|
||||
adds r4, r0, 0
|
||||
ldr r5, _08144700 @ =gUnknown_203F3BC
|
||||
movs r0, 0
|
||||
str r0, [r5]
|
||||
cmp r4, 0
|
||||
beq _0814470E
|
||||
bl sub_8143FC8
|
||||
cmp r0, 0
|
||||
beq _0814470C
|
||||
ldr r0, _08144704 @ =gSaveBlock1Ptr
|
||||
ldr r0, [r0]
|
||||
ldr r1, _08144708 @ =0x000032e4
|
||||
adds r0, r1
|
||||
ldrh r0, [r0]
|
||||
cmp r0, r4
|
||||
bne _0814470C
|
||||
movs r0, 0x1
|
||||
str r0, [r5]
|
||||
b _0814470E
|
||||
.align 2, 0
|
||||
_08144700: .4byte gUnknown_203F3BC
|
||||
_08144704: .4byte gSaveBlock1Ptr
|
||||
_08144708: .4byte 0x000032e4
|
||||
_0814470C:
|
||||
movs r0, 0
|
||||
_0814470E:
|
||||
pop {r4,r5}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_81446D0
|
||||
|
||||
thumb_func_start sub_8144714
|
||||
sub_8144714: @ 8144714
|
||||
push {lr}
|
||||
adds r2, r0, 0
|
||||
ldr r0, _08144738 @ =gUnknown_203F3BC
|
||||
ldr r0, [r0]
|
||||
cmp r0, 0
|
||||
beq _08144782
|
||||
cmp r2, 0x1
|
||||
beq _08144758
|
||||
cmp r2, 0x1
|
||||
bcc _08144744
|
||||
cmp r2, 0x2
|
||||
bne _08144774
|
||||
ldr r0, _0814473C @ =gSaveBlock1Ptr
|
||||
ldr r2, [r0]
|
||||
ldr r0, _08144740 @ =0x00003478
|
||||
adds r2, r0
|
||||
movs r0, 0x2
|
||||
b _08144762
|
||||
.align 2, 0
|
||||
_08144738: .4byte gUnknown_203F3BC
|
||||
_0814473C: .4byte gSaveBlock1Ptr
|
||||
_08144740: .4byte 0x00003478
|
||||
_08144744:
|
||||
ldr r0, _08144750 @ =gSaveBlock1Ptr
|
||||
ldr r2, [r0]
|
||||
ldr r0, _08144754 @ =0x00003464
|
||||
adds r2, r0
|
||||
movs r0, 0
|
||||
b _08144762
|
||||
.align 2, 0
|
||||
_08144750: .4byte gSaveBlock1Ptr
|
||||
_08144754: .4byte 0x00003464
|
||||
_08144758:
|
||||
ldr r0, _0814476C @ =gSaveBlock1Ptr
|
||||
ldr r2, [r0]
|
||||
ldr r0, _08144770 @ =0x00003464
|
||||
adds r2, r0
|
||||
movs r0, 0x1
|
||||
_08144762:
|
||||
movs r3, 0x5
|
||||
bl sub_8144824
|
||||
b _08144782
|
||||
.align 2, 0
|
||||
_0814476C: .4byte gSaveBlock1Ptr
|
||||
_08144770: .4byte 0x00003464
|
||||
_08144774:
|
||||
ldr r0, _08144788 @ =gUnknown_8466F28 "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent.c"
|
||||
movs r1, 0xF7
|
||||
lsls r1, 2
|
||||
ldr r2, _0814478C @ =gUnknown_8466F5C "0"
|
||||
movs r3, 0x1
|
||||
bl AGBAssert
|
||||
_08144782:
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08144788: .4byte gUnknown_8466F28
|
||||
_0814478C: .4byte gUnknown_8466F5C
|
||||
thumb_func_end sub_8144714
|
||||
|
||||
thumb_func_start sub_8144790
|
||||
sub_8144790: @ 8144790
|
||||
push {lr}
|
||||
sub sp, 0x4
|
||||
movs r0, 0
|
||||
str r0, [sp]
|
||||
ldr r0, _081447B0 @ =gSaveBlock1Ptr
|
||||
ldr r1, [r0]
|
||||
ldr r0, _081447B4 @ =0x00003464
|
||||
adds r1, r0
|
||||
ldr r2, _081447B8 @ =0x0500000a
|
||||
mov r0, sp
|
||||
bl CpuSet
|
||||
add sp, 0x4
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_081447B0: .4byte gSaveBlock1Ptr
|
||||
_081447B4: .4byte 0x00003464
|
||||
_081447B8: .4byte 0x0500000a
|
||||
thumb_func_end sub_8144790
|
||||
|
||||
thumb_func_start sub_81447BC
|
||||
sub_81447BC: @ 81447BC
|
||||
push {r4,r5,lr}
|
||||
adds r5, r0, 0
|
||||
adds r4, r1, 0
|
||||
movs r1, 0
|
||||
cmp r1, r2
|
||||
bge _081447DE
|
||||
ldr r0, [r4]
|
||||
cmp r0, r5
|
||||
beq _081447DE
|
||||
adds r3, r4, 0
|
||||
_081447D0:
|
||||
adds r3, 0x4
|
||||
adds r1, 0x1
|
||||
cmp r1, r2
|
||||
bge _081447DE
|
||||
ldr r0, [r3]
|
||||
cmp r0, r5
|
||||
bne _081447D0
|
||||
_081447DE:
|
||||
cmp r1, r2
|
||||
bne _08144800
|
||||
subs r3, r1, 0x1
|
||||
cmp r3, 0
|
||||
ble _081447FA
|
||||
lsls r0, r3, 2
|
||||
subs r0, 0x4
|
||||
adds r2, r0, r4
|
||||
_081447EE:
|
||||
ldr r0, [r2]
|
||||
str r0, [r2, 0x4]
|
||||
subs r2, 0x4
|
||||
subs r3, 0x1
|
||||
cmp r3, 0
|
||||
bgt _081447EE
|
||||
_081447FA:
|
||||
str r5, [r4]
|
||||
movs r0, 0x1
|
||||
b _0814481C
|
||||
_08144800:
|
||||
adds r3, r1, 0
|
||||
cmp r3, 0
|
||||
ble _08144818
|
||||
lsls r0, r3, 2
|
||||
subs r0, 0x4
|
||||
adds r2, r0, r4
|
||||
_0814480C:
|
||||
ldr r0, [r2]
|
||||
str r0, [r2, 0x4]
|
||||
subs r2, 0x4
|
||||
subs r3, 0x1
|
||||
cmp r3, 0
|
||||
bgt _0814480C
|
||||
_08144818:
|
||||
str r5, [r4]
|
||||
movs r0, 0
|
||||
_0814481C:
|
||||
pop {r4,r5}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_81447BC
|
||||
|
||||
thumb_func_start sub_8144824
|
||||
sub_8144824: @ 8144824
|
||||
push {r4,lr}
|
||||
adds r4, r0, 0
|
||||
adds r0, r1, 0
|
||||
adds r1, r2, 0
|
||||
adds r2, r3, 0
|
||||
bl sub_81447BC
|
||||
cmp r0, 0
|
||||
beq _0814483C
|
||||
adds r0, r4, 0
|
||||
bl sub_814451C
|
||||
_0814483C:
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_8144824
|
||||
|
||||
.align 2, 0 @ Don't pad with nop.
|
||||
+1
-1
@@ -646,7 +646,7 @@ struct MEventBuffers
|
||||
/*0x310 0x3430*/ struct MEventBuffer_3430 buffer_310;
|
||||
/*0x338 0x3458*/ u16 unk_338[4];
|
||||
/*0x340 0x3460*/ struct MysteryEventStruct unk_340;
|
||||
/*0x344 0x3464*/ u8 filler_344[0x28];
|
||||
/*0x344 0x3464*/ u32 unk_344[2][5];
|
||||
}; // 0x36C 0x348C
|
||||
|
||||
struct SaveBlock1
|
||||
|
||||
@@ -244,7 +244,6 @@ SECTIONS {
|
||||
asm/mystery_gift_menu.o(.text);
|
||||
asm/link_rfu_4.o(.text);
|
||||
src/mevent.o(.text);
|
||||
asm/mevent.o(.text);
|
||||
asm/mevent_server.o(.text);
|
||||
asm/mevent_8145654.o(.text);
|
||||
src/menews_jisan.o(.text);
|
||||
|
||||
+86
-9
@@ -57,6 +57,7 @@ void sub_81422FC(void);
|
||||
void sub_812B484(void);
|
||||
void sub_814407C(void);
|
||||
void sub_81440B4(void);
|
||||
void sub_8144824(u32, u32, u32 *, s32);
|
||||
void sub_8144790(void);
|
||||
u8 sub_815D6B4(u8 *);
|
||||
|
||||
@@ -101,6 +102,8 @@ const u16 gUnknown_8466F00[] = {
|
||||
|
||||
struct MEvent_Str_1 gUnknown_3005ED0;
|
||||
|
||||
bool32 gUnknown_203F3BC = FALSE;
|
||||
|
||||
void sub_81435DC(struct MEvent_Str_1 *a0, size_t a1, const void * a2)
|
||||
{
|
||||
vu16 imeBak = REG_IME;
|
||||
@@ -839,10 +842,6 @@ s32 sub_814449C(const struct MEventStruct_Unk1442CC * a0)
|
||||
return sub_8144184(&a0->unk_20, a0->unk_44);
|
||||
}
|
||||
|
||||
//TODO: Remove these later
|
||||
const char ALIGNED(4) gUnknown_8466F28[] = "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent.c";
|
||||
const char ALIGNED(4) gUnknown_8466F5C[] = "0";
|
||||
|
||||
u16 sub_81444B0(const struct MEventStruct_Unk1442CC * a0, u32 command)
|
||||
{
|
||||
switch (command)
|
||||
@@ -858,8 +857,7 @@ u16 sub_81444B0(const struct MEventStruct_Unk1442CC * a0, u32 command)
|
||||
case 4:
|
||||
return a0->unk_44;
|
||||
default:
|
||||
AGBAssert(gUnknown_8466F28, 825, gUnknown_8466F5C, 1);
|
||||
// AGB_ASSERT_EX(0, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent.c", 825);
|
||||
AGB_ASSERT_EX(0, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent.c", 825);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
@@ -888,8 +886,7 @@ void sub_814451C(u32 command)
|
||||
}
|
||||
if (dest == NULL)
|
||||
{
|
||||
AGBAssert(gUnknown_8466F28, 868, gUnknown_8466F5C, 1);
|
||||
// AGB_ASSERT_EX(0, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent.c", 868);
|
||||
AGB_ASSERT_EX(0, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent.c", 868);
|
||||
}
|
||||
else if (++(*dest) > 999)
|
||||
{
|
||||
@@ -947,6 +944,86 @@ u16 sub_81445C0(u32 command)
|
||||
break;
|
||||
}
|
||||
}
|
||||
AGBAssert(gUnknown_8466F28, 913, gUnknown_8466F5C, 1);
|
||||
AGB_ASSERT_EX(0, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent.c", 913);
|
||||
return 0;
|
||||
}
|
||||
|
||||
void sub_81446C4(void)
|
||||
{
|
||||
gUnknown_203F3BC = FALSE;
|
||||
}
|
||||
|
||||
bool32 sub_81446D0(u16 a0)
|
||||
{
|
||||
gUnknown_203F3BC = FALSE;
|
||||
if (a0 == 0)
|
||||
return FALSE;
|
||||
if (!sub_8143FC8())
|
||||
return FALSE;
|
||||
if (gSaveBlock1Ptr->unk_3120.buffer_1c0.data.unk_00 != a0)
|
||||
return FALSE;
|
||||
gUnknown_203F3BC = TRUE;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void sub_8144714(u32 a0, u32 a1)
|
||||
{
|
||||
if (gUnknown_203F3BC)
|
||||
{
|
||||
switch (a0)
|
||||
{
|
||||
case 2:
|
||||
sub_8144824(2, a1, gSaveBlock1Ptr->unk_3120.unk_344[1], 5);
|
||||
break;
|
||||
case 0:
|
||||
sub_8144824(0, a1, gSaveBlock1Ptr->unk_3120.unk_344[0], 5);
|
||||
break;
|
||||
case 1:
|
||||
sub_8144824(1, a1, gSaveBlock1Ptr->unk_3120.unk_344[0], 5);
|
||||
break;
|
||||
default:
|
||||
AGB_ASSERT_EX(0, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent.c", 988);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8144790(void)
|
||||
{
|
||||
CpuFill32(0, gSaveBlock1Ptr->unk_3120.unk_344, sizeof(gSaveBlock1Ptr->unk_3120.unk_344));
|
||||
}
|
||||
|
||||
bool32 sub_81447BC(u32 a0, u32 * a1, s32 size)
|
||||
{
|
||||
s32 i;
|
||||
s32 j;
|
||||
|
||||
for (i = 0; i < size; i++)
|
||||
{
|
||||
if (a1[i] == a0)
|
||||
break;
|
||||
}
|
||||
if (i == size)
|
||||
{
|
||||
for (j = size - 1; j > 0; j--)
|
||||
{
|
||||
a1[j] = a1[j - 1];
|
||||
}
|
||||
a1[0] = a0;
|
||||
return TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
for (j = i; j > 0; j--)
|
||||
{
|
||||
a1[j] = a1[j - 1];
|
||||
}
|
||||
a1[0] = a0;
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8144824(u32 a0, u32 a1, u32 * a2, s32 a3)
|
||||
{
|
||||
if (sub_81447BC(a1, a2, a3))
|
||||
sub_814451C(a0);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user