through sub_81445C0

This commit is contained in:
PikalaxALT
2018-11-29 19:17:38 -05:00
parent d68f434a52
commit 939ae833c3
6 changed files with 215 additions and 347 deletions
-259
View File
@@ -5,265 +5,6 @@
.text
thumb_func_start sub_81444B0
sub_81444B0: @ 81444B0
push {lr}
adds r2, r0, 0
cmp r1, 0x4
bhi _081444FC
lsls r0, r1, 2
ldr r1, _081444C4 @ =_081444C8
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_081444C4: .4byte _081444C8
.align 2, 0
_081444C8:
.4byte _081444DC
.4byte _081444E0
.4byte _081444E4
.4byte _081444E8
.4byte _081444F4
_081444DC:
ldrh r0, [r2, 0x20]
b _0814450A
_081444E0:
ldrh r0, [r2, 0x22]
b _0814450A
_081444E4:
ldrh r0, [r2, 0x24]
b _0814450A
_081444E8:
adds r0, r2, 0
bl sub_814449C
lsls r0, 16
lsrs r0, 16
b _0814450A
_081444F4:
adds r0, r2, 0
adds r0, 0x44
ldrb r0, [r0]
b _0814450A
_081444FC:
ldr r0, _08144510 @ =gUnknown_8466F28 "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent.c"
ldr r1, _08144514 @ =0x00000339
ldr r2, _08144518 @ =gUnknown_8466F5C "0"
movs r3, 0x1
bl AGBAssert
movs r0, 0
_0814450A:
pop {r1}
bx r1
.align 2, 0
_08144510: .4byte gUnknown_8466F28
_08144514: .4byte 0x00000339
_08144518: .4byte gUnknown_8466F5C
thumb_func_end sub_81444B0
thumb_func_start sub_814451C
sub_814451C: @ 814451C
push {r4,lr}
adds r4, r0, 0
ldr r2, _08144544 @ =gSaveBlock1Ptr
ldr r0, [r2]
ldr r1, _08144548 @ =0x000032e4
adds r0, r1
ldrb r1, [r0, 0x8]
movs r0, 0x3
ands r0, r1
adds r3, r2, 0
cmp r0, 0x2
bne _081445B6
movs r2, 0
cmp r4, 0x4
bhi _08144582
lsls r0, r4, 2
ldr r1, _0814454C @ =_08144550
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08144544: .4byte gSaveBlock1Ptr
_08144548: .4byte 0x000032e4
_0814454C: .4byte _08144550
.align 2, 0
_08144550:
.4byte _08144564
.4byte _08144570
.4byte _0814457C
.4byte _08144582
.4byte _08144582
_08144564:
ldr r0, [r3]
ldr r1, _0814456C @ =0x00003434
b _08144580
.align 2, 0
_0814456C: .4byte 0x00003434
_08144570:
ldr r0, [r3]
ldr r1, _08144578 @ =0x00003436
b _08144580
.align 2, 0
_08144578: .4byte 0x00003436
_0814457C:
ldr r0, [r3]
ldr r1, _08144598 @ =0x00003438
_08144580:
adds r2, r0, r1
_08144582:
cmp r2, 0
bne _081445A4
ldr r0, _0814459C @ =gUnknown_8466F28 "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent.c"
movs r1, 0xD9
lsls r1, 2
ldr r2, _081445A0 @ =gUnknown_8466F5C "0"
movs r3, 0x1
bl AGBAssert
b _081445B6
.align 2, 0
_08144598: .4byte 0x00003438
_0814459C: .4byte gUnknown_8466F28
_081445A0: .4byte gUnknown_8466F5C
_081445A4:
ldrh r0, [r2]
adds r0, 0x1
strh r0, [r2]
lsls r0, 16
lsrs r0, 16
ldr r1, _081445BC @ =0x000003e7
cmp r0, r1
bls _081445B6
strh r1, [r2]
_081445B6:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_081445BC: .4byte 0x000003e7
thumb_func_end sub_814451C
thumb_func_start sub_81445C0
sub_81445C0: @ 81445C0
push {lr}
cmp r0, 0x4
bhi _081446A4
lsls r0, 2
ldr r1, _081445D0 @ =_081445D4
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_081445D0: .4byte _081445D4
.align 2, 0
_081445D4:
.4byte _081445E8
.4byte _08144610
.4byte _08144638
.4byte _08144660
.4byte _08144684
_081445E8:
ldr r0, _08144604 @ =gSaveBlock1Ptr
ldr r2, [r0]
ldr r1, _08144608 @ =0x000032e4
adds r0, r2, r1
ldrb r1, [r0, 0x8]
movs r0, 0x3
ands r0, r1
cmp r0, 0x2
bne _081446A4
ldr r1, _0814460C @ =0x00003434
adds r0, r2, r1
ldrh r0, [r0]
b _081446B2
.align 2, 0
_08144604: .4byte gSaveBlock1Ptr
_08144608: .4byte 0x000032e4
_0814460C: .4byte 0x00003434
_08144610:
ldr r0, _0814462C @ =gSaveBlock1Ptr
ldr r2, [r0]
ldr r1, _08144630 @ =0x000032e4
adds r0, r2, r1
ldrb r1, [r0, 0x8]
movs r0, 0x3
ands r0, r1
cmp r0, 0x2
bne _081446A4
ldr r1, _08144634 @ =0x00003434
adds r0, r2, r1
ldrh r0, [r0, 0x2]
b _081446B2
.align 2, 0
_0814462C: .4byte gSaveBlock1Ptr
_08144630: .4byte 0x000032e4
_08144634: .4byte 0x00003434
_08144638:
ldr r0, _08144654 @ =gSaveBlock1Ptr
ldr r2, [r0]
ldr r1, _08144658 @ =0x000032e4
adds r0, r2, r1
ldrb r1, [r0, 0x8]
movs r0, 0x3
ands r0, r1
cmp r0, 0x2
bne _081446A4
ldr r1, _0814465C @ =0x00003434
adds r0, r2, r1
ldrh r0, [r0, 0x4]
b _081446B2
.align 2, 0
_08144654: .4byte gSaveBlock1Ptr
_08144658: .4byte 0x000032e4
_0814465C: .4byte 0x00003434
_08144660:
ldr r0, _0814467C @ =gSaveBlock1Ptr
ldr r0, [r0]
ldr r1, _08144680 @ =0x000032e4
adds r0, r1
ldrb r1, [r0, 0x8]
movs r0, 0x3
ands r0, r1
cmp r0, 0x1
bne _081446A4
bl sub_8144218
lsls r0, 16
lsrs r0, 16
b _081446B2
.align 2, 0
_0814467C: .4byte gSaveBlock1Ptr
_08144680: .4byte 0x000032e4
_08144684:
ldr r0, _0814469C @ =gSaveBlock1Ptr
ldr r0, [r0]
ldr r1, _081446A0 @ =0x000032e4
adds r2, r0, r1
ldrb r1, [r2, 0x8]
movs r0, 0x3
ands r0, r1
cmp r0, 0x1
bne _081446A4
ldrb r0, [r2, 0x9]
b _081446B2
.align 2, 0
_0814469C: .4byte gSaveBlock1Ptr
_081446A0: .4byte 0x000032e4
_081446A4:
ldr r0, _081446B8 @ =gUnknown_8466F28 "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent.c"
ldr r1, _081446BC @ =0x00000391
ldr r2, _081446C0 @ =gUnknown_8466F5C "0"
movs r3, 0x1
bl AGBAssert
movs r0, 0
_081446B2:
pop {r1}
bx r1
.align 2, 0
_081446B8: .4byte gUnknown_8466F28
_081446BC: .4byte 0x00000391
_081446C0: .4byte gUnknown_8466F5C
thumb_func_end sub_81445C0
thumb_func_start sub_81446C4
sub_81446C4: @ 81446C4
ldr r1, _081446CC @ =gUnknown_203F3BC
-86
View File
@@ -598,89 +598,3 @@ gUnknown_8466EE8:: @ 8466EE8
gUnknown_8466EF0:: @ 8466EF0
.incbin "baserom.gba", 0x466EF0, 0x10
gUnknown_8466F00:: @ 8466F00
.incbin "baserom.gba", 0x466F00, 0x28
.align 2
gUnknown_8466F28:: @ 8466F28
.asciz "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent.c"
.align 2
gUnknown_8466F5C:: @ 8466F5C
.asciz "0"
.align 2
gUnknown_8466F60:: @ 8466F60
.incbin "baserom.gba", 0x466F60, 0x20
.align 2
gUnknown_8466F80:: @ 8466F80
.asciz "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c"
.align 2
gUnknown_8466FB8:: @ 8466FB8
.asciz "size <= ME_SEND_BUF_SIZE"
.align 2
gUnknown_8466FD4:: @ 8466FD4
.asciz "cmd->parameter == NULL"
.align 2
gUnknown_8466FEC:: @ 8466FEC
.asciz "cmd->flag == FALSE"
.align 2
gUnknown_8467000:: @ 8467000
.asciz "cmd->flag == FALSE && cmd->parameter == NULL"
.align 2
gUnknown_8467030:: @ 8467030
.incbin "baserom.gba", 0x467030, 0x14
.align 2
gUnknown_8467044:: @ 8467044
.asciz "svr->mainseqno < NELEMS(func_tbl)"
.align 2
gUnknown_8467068:: @ 8467068
.incbin "baserom.gba", 0x467068, 0x8
gUnknown_8467070:: @ 8467070
.incbin "baserom.gba", 0x467070, 0x4
gUnknown_8467074:: @ 8467074
.incbin "baserom.gba", 0x467074, 0xEE4
gUnknown_8467F58:: @ 8467F58
.incbin "baserom.gba", 0x467F58, 0x8
gUnknown_8467F60:: @ 8467F60
.incbin "baserom.gba", 0x467F60, 0x40
gUnknown_8467FA0:: @ 8467FA0
.incbin "baserom.gba", 0x467FA0, 0x18
gUnknown_8467FB8:: @ 8467FB8
.incbin "baserom.gba", 0x467FB8, 0x80
gUnknown_8468038:: @ 8468038
.incbin "baserom.gba", 0x468038, 0x8
gUnknown_8468040:: @ 8468040
.incbin "baserom.gba", 0x468040, 0x10
gUnknown_8468050:: @ 8468050
.incbin "baserom.gba", 0x468050, 0x6D0
gUnknown_8468720:: @ 8468720
.incbin "baserom.gba", 0x468720, 0xC0
gUnknown_84687E0:: @ 84687E0
.incbin "baserom.gba", 0x4687E0, 0x38C
gUnknown_8468B6C:: @ 8468B6C
.incbin "baserom.gba", 0x468B6C, 0x60
gUnknown_8468BCC:: @ 8468BCC
.incbin "baserom.gba", 0x468BCC, 0x90
+76
View File
@@ -0,0 +1,76 @@
.section .rodata
.align 2
gUnknown_8466F60:: @ 8466F60
.incbin "baserom.gba", 0x466F60, 0x20
.align 2
gUnknown_8466F80:: @ 8466F80
.asciz "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c"
.align 2
gUnknown_8466FB8:: @ 8466FB8
.asciz "size <= ME_SEND_BUF_SIZE"
.align 2
gUnknown_8466FD4:: @ 8466FD4
.asciz "cmd->parameter == NULL"
.align 2
gUnknown_8466FEC:: @ 8466FEC
.asciz "cmd->flag == FALSE"
.align 2
gUnknown_8467000:: @ 8467000
.asciz "cmd->flag == FALSE && cmd->parameter == NULL"
.align 2
gUnknown_8467030:: @ 8467030
.incbin "baserom.gba", 0x467030, 0x14
.align 2
gUnknown_8467044:: @ 8467044
.asciz "svr->mainseqno < NELEMS(func_tbl)"
.align 2
gUnknown_8467068:: @ 8467068
.incbin "baserom.gba", 0x467068, 0x8
gUnknown_8467070:: @ 8467070
.incbin "baserom.gba", 0x467070, 0x4
gUnknown_8467074:: @ 8467074
.incbin "baserom.gba", 0x467074, 0xEE4
gUnknown_8467F58:: @ 8467F58
.incbin "baserom.gba", 0x467F58, 0x8
gUnknown_8467F60:: @ 8467F60
.incbin "baserom.gba", 0x467F60, 0x40
gUnknown_8467FA0:: @ 8467FA0
.incbin "baserom.gba", 0x467FA0, 0x18
gUnknown_8467FB8:: @ 8467FB8
.incbin "baserom.gba", 0x467FB8, 0x80
gUnknown_8468038:: @ 8468038
.incbin "baserom.gba", 0x468038, 0x8
gUnknown_8468040:: @ 8468040
.incbin "baserom.gba", 0x468040, 0x10
gUnknown_8468050:: @ 8468050
.incbin "baserom.gba", 0x468050, 0x6D0
gUnknown_8468720:: @ 8468720
.incbin "baserom.gba", 0x468720, 0xC0
gUnknown_84687E0:: @ 84687E0
.incbin "baserom.gba", 0x4687E0, 0x38C
gUnknown_8468B6C:: @ 8468B6C
.incbin "baserom.gba", 0x468B6C, 0x60
gUnknown_8468BCC:: @ 8468BCC
.incbin "baserom.gba", 0x468BCC, 0x90
+3 -1
View File
@@ -626,7 +626,9 @@ struct MEventBuffer_32E0
struct MEventBuffer_3430_Sub
{
u8 filler_00[6];
u16 unk_00;
u16 unk_02;
u16 unk_04;
u16 unk_06;
u16 unk_08[2][7];
};
+2
View File
@@ -379,6 +379,8 @@ SECTIONS {
data/data_83FECCC.o(.rodata.8456C74);
src/fame_checker.o(.rodata);
data/data_845FD54.o(.rodata);
src/mevent.o(.rodata);
data/data_8466FB8.o(.rodata);
src/menews_jisan.o(.rodata);
src/menews_jisan.o(.rodata.str1.4);
data/data_8468C98.o(.rodata);
+134 -1
View File
@@ -76,7 +76,28 @@ extern const u8 gUnknown_841DE9C[];
extern const u8 gUnknownSerialData_Start[];
extern const u8 gUnknownSerialData_End[];
extern const u16 gUnknown_8466F00[];
const u16 gUnknown_8466F00[] = {
0x02a7,
0x02a8,
0x02a9,
0x02aa,
0x02ab,
0x02ac,
0x02ad,
0x02ae,
0x02af,
0x02b0,
0x02b1,
0x02b2,
0x02b3,
0x02b4,
0x02b5,
0x02b6,
0x02b7,
0x02b8,
0x02b9,
0x02ba
};
struct MEvent_Str_1 gUnknown_3005ED0;
@@ -817,3 +838,115 @@ 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)
{
case 0:
return a0->unk_20.unk_00;
case 1:
return a0->unk_20.unk_02;
case 2:
return a0->unk_20.unk_04;
case 3:
return sub_814449C(a0);
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);
return 0;
}
}
void sub_814451C(u32 command)
{
struct MEventBuffer_32E0_Sub * data = &gSaveBlock1Ptr->unk_3120.buffer_1c0.data;
if (data->unk_08_0 == 2)
{
u16 * dest = NULL;
switch (command)
{
case 0:
dest = &gSaveBlock1Ptr->unk_3120.buffer_310.data.unk_00;
break;
case 1:
dest = &gSaveBlock1Ptr->unk_3120.buffer_310.data.unk_02;
break;
case 2:
dest = &gSaveBlock1Ptr->unk_3120.buffer_310.data.unk_04;
break;
case 3:
break;
case 4:
break;
}
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);
}
else if (++(*dest) > 999)
{
*dest = 999;
}
}
}
u16 sub_81445C0(u32 command)
{
switch (command)
{
case 0:
{
struct MEventBuffer_32E0_Sub * data = &gSaveBlock1Ptr->unk_3120.buffer_1c0.data;
if (data->unk_08_0 == 2)
{
struct MEventBuffer_3430_Sub * buffer = &gSaveBlock1Ptr->unk_3120.buffer_310.data;
return buffer->unk_00;
}
break;
}
case 1:
{
struct MEventBuffer_32E0_Sub * data = &gSaveBlock1Ptr->unk_3120.buffer_1c0.data;
if (data->unk_08_0 == 2)
{
struct MEventBuffer_3430_Sub * buffer = &gSaveBlock1Ptr->unk_3120.buffer_310.data;
return buffer->unk_02;
}
break;
}
case 2:
{
struct MEventBuffer_32E0_Sub * data = &gSaveBlock1Ptr->unk_3120.buffer_1c0.data;
if (data->unk_08_0 == 2)
{
struct MEventBuffer_3430_Sub * buffer = &gSaveBlock1Ptr->unk_3120.buffer_310.data;
return buffer->unk_04;
}
break;
}
case 3:
{
struct MEventBuffer_32E0_Sub * data = &gSaveBlock1Ptr->unk_3120.buffer_1c0.data;
if (data->unk_08_0 == 1)
return sub_8144218();
break;
}
case 4:
{
struct MEventBuffer_32E0_Sub * data = &gSaveBlock1Ptr->unk_3120.buffer_1c0.data;
if (data->unk_08_0 == 1)
return data->unk_09;
break;
}
}
AGBAssert(gUnknown_8466F28, 913, gUnknown_8466F5C, 1);
return 0;
}