mirror of
https://github.com/Ninjdai1/pokeemerald.git
synced 2025-01-27 22:03:53 +01:00
through sub_800DF90
This commit is contained in:
parent
519c8d42f8
commit
d5bc329de7
149
asm/link_rfu.s
149
asm/link_rfu.s
@ -7,155 +7,6 @@
|
|||||||
|
|
||||||
@ file boundary?
|
@ file boundary?
|
||||||
|
|
||||||
thumb_func_start sub_800DE7C
|
|
||||||
sub_800DE7C: @ 800DE7C
|
|
||||||
push {r4-r7,lr}
|
|
||||||
mov r7, r9
|
|
||||||
mov r6, r8
|
|
||||||
push {r6,r7}
|
|
||||||
adds r7, r0, 0
|
|
||||||
mov r8, r1
|
|
||||||
lsls r2, 24
|
|
||||||
lsrs r5, r2, 24
|
|
||||||
ldr r0, =gUnknown_03004140
|
|
||||||
ldrb r0, [r0, 0x6]
|
|
||||||
cmp r0, 0x1
|
|
||||||
bne _0800DED8
|
|
||||||
movs r0, 0x1
|
|
||||||
mov r9, r0
|
|
||||||
ldr r6, =gUnknown_03007890
|
|
||||||
ldr r0, [r6]
|
|
||||||
lsls r4, r5, 5
|
|
||||||
adds r0, r4
|
|
||||||
ldrh r0, [r0, 0x18]
|
|
||||||
bl sub_8010454
|
|
||||||
cmp r0, 0
|
|
||||||
beq _0800DEB8
|
|
||||||
ldr r1, [r6]
|
|
||||||
ldrb r0, [r1, 0x7]
|
|
||||||
asrs r0, r5
|
|
||||||
mov r2, r9
|
|
||||||
ands r0, r2
|
|
||||||
cmp r0, 0
|
|
||||||
bne _0800DEF0
|
|
||||||
_0800DEB8:
|
|
||||||
adds r0, r7, 0
|
|
||||||
movs r1, 0
|
|
||||||
movs r2, 0xD
|
|
||||||
bl memset
|
|
||||||
mov r0, r8
|
|
||||||
movs r1, 0
|
|
||||||
movs r2, 0x8
|
|
||||||
bl memset
|
|
||||||
b _0800DF24
|
|
||||||
.pool
|
|
||||||
_0800DED8:
|
|
||||||
movs r0, 0
|
|
||||||
mov r9, r0
|
|
||||||
ldr r6, =gUnknown_03007890
|
|
||||||
ldr r0, [r6]
|
|
||||||
lsls r4, r5, 5
|
|
||||||
adds r0, r4
|
|
||||||
ldrh r0, [r0, 0x18]
|
|
||||||
bl sub_8010454
|
|
||||||
cmp r0, 0
|
|
||||||
beq _0800DF10
|
|
||||||
ldr r1, [r6]
|
|
||||||
_0800DEF0:
|
|
||||||
adds r1, r4, r1
|
|
||||||
adds r1, 0x1A
|
|
||||||
adds r0, r7, 0
|
|
||||||
movs r2, 0xD
|
|
||||||
bl memcpy
|
|
||||||
ldr r1, [r6]
|
|
||||||
adds r1, r4, r1
|
|
||||||
adds r1, 0x29
|
|
||||||
mov r0, r8
|
|
||||||
movs r2, 0x8
|
|
||||||
bl memcpy
|
|
||||||
b _0800DF24
|
|
||||||
.pool
|
|
||||||
_0800DF10:
|
|
||||||
adds r0, r7, 0
|
|
||||||
movs r1, 0
|
|
||||||
movs r2, 0xD
|
|
||||||
bl memset
|
|
||||||
mov r0, r8
|
|
||||||
movs r1, 0
|
|
||||||
movs r2, 0x8
|
|
||||||
bl memset
|
|
||||||
_0800DF24:
|
|
||||||
mov r0, r9
|
|
||||||
pop {r3,r4}
|
|
||||||
mov r8, r3
|
|
||||||
mov r9, r4
|
|
||||||
pop {r4-r7}
|
|
||||||
pop {r1}
|
|
||||||
bx r1
|
|
||||||
thumb_func_end sub_800DE7C
|
|
||||||
|
|
||||||
thumb_func_start sub_800DF34
|
|
||||||
sub_800DF34: @ 800DF34
|
|
||||||
push {r4-r7,lr}
|
|
||||||
adds r3, r0, 0
|
|
||||||
adds r5, r1, 0
|
|
||||||
lsls r2, 24
|
|
||||||
movs r7, 0
|
|
||||||
ldr r6, =gUnknown_03007890
|
|
||||||
ldr r0, [r6]
|
|
||||||
lsrs r4, r2, 19
|
|
||||||
adds r2, r0, r4
|
|
||||||
ldrh r1, [r2, 0x18]
|
|
||||||
ldr r0, =0x00007f7d
|
|
||||||
cmp r1, r0
|
|
||||||
bne _0800DF74
|
|
||||||
adds r1, r2, 0
|
|
||||||
adds r1, 0x1A
|
|
||||||
adds r0, r3, 0
|
|
||||||
movs r2, 0xD
|
|
||||||
bl memcpy
|
|
||||||
ldr r1, [r6]
|
|
||||||
adds r1, r4, r1
|
|
||||||
adds r1, 0x29
|
|
||||||
adds r0, r5, 0
|
|
||||||
movs r2, 0x8
|
|
||||||
bl memcpy
|
|
||||||
movs r7, 0x1
|
|
||||||
b _0800DF88
|
|
||||||
.pool
|
|
||||||
_0800DF74:
|
|
||||||
adds r0, r3, 0
|
|
||||||
movs r1, 0
|
|
||||||
movs r2, 0xD
|
|
||||||
bl memset
|
|
||||||
adds r0, r5, 0
|
|
||||||
movs r1, 0
|
|
||||||
movs r2, 0x8
|
|
||||||
bl memset
|
|
||||||
_0800DF88:
|
|
||||||
adds r0, r7, 0
|
|
||||||
pop {r4-r7}
|
|
||||||
pop {r1}
|
|
||||||
bx r1
|
|
||||||
thumb_func_end sub_800DF34
|
|
||||||
|
|
||||||
thumb_func_start sub_800DF90
|
|
||||||
sub_800DF90: @ 800DF90
|
|
||||||
push {r4,lr}
|
|
||||||
adds r4, r1, 0
|
|
||||||
ldr r1, =gUnknown_02022B14
|
|
||||||
movs r2, 0xD
|
|
||||||
bl memcpy
|
|
||||||
ldr r1, =gUnknown_02022B14 + 0xE
|
|
||||||
adds r0, r4, 0
|
|
||||||
movs r2, 0x8
|
|
||||||
bl memcpy
|
|
||||||
pop {r4}
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
.pool
|
|
||||||
thumb_func_end sub_800DF90
|
|
||||||
|
|
||||||
thumb_func_start sub_800DFB4
|
thumb_func_start sub_800DFB4
|
||||||
sub_800DFB4: @ 800DFB4
|
sub_800DFB4: @ 800DFB4
|
||||||
push {r4,r5,lr}
|
push {r4,r5,lr}
|
||||||
|
@ -159,7 +159,8 @@ struct RfuUnk5
|
|||||||
u16 unk_00;
|
u16 unk_00;
|
||||||
u8 unk_02;
|
u8 unk_02;
|
||||||
u16 unk_04;
|
u16 unk_04;
|
||||||
u8 filler_06[26];
|
u8 unk_06[15];
|
||||||
|
u8 unk_15[11];
|
||||||
} unk_14[4];
|
} unk_14[4];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
// Exported type declarations
|
// Exported type declarations
|
||||||
|
|
||||||
struct UnkLinkRfuStruct_02022B14
|
struct __attribute__((packed)) UnkLinkRfuStruct_02022B14
|
||||||
{
|
{
|
||||||
u16 unk_00_0:4;
|
u16 unk_00_0:4;
|
||||||
u16 unk_00_4:1;
|
u16 unk_00_4:1;
|
||||||
@ -23,8 +23,6 @@ struct UnkLinkRfuStruct_02022B14
|
|||||||
u8 playerGender:1;
|
u8 playerGender:1;
|
||||||
u8 unk_0b_1:7;
|
u8 unk_0b_1:7;
|
||||||
u8 unk_0c;
|
u8 unk_0c;
|
||||||
u8 unk_0d;
|
|
||||||
u8 filler_0e[8];
|
|
||||||
};
|
};
|
||||||
|
|
||||||
struct UnkLinkRfuStruct_02022B2C
|
struct UnkLinkRfuStruct_02022B2C
|
||||||
|
@ -21,7 +21,8 @@ IWRAM_DATA u8 gUnknown_03000D80[16];
|
|||||||
IWRAM_DATA u16 gUnknown_03000D90[8];
|
IWRAM_DATA u16 gUnknown_03000D90[8];
|
||||||
|
|
||||||
EWRAM_DATA u8 gUnknown_02022B10 = 0;
|
EWRAM_DATA u8 gUnknown_02022B10 = 0;
|
||||||
EWRAM_DATA struct UnkLinkRfuStruct_02022B14 gUnknown_02022B14 = {};
|
EWRAM_DATA ALIGNED(4) struct UnkLinkRfuStruct_02022B14 gUnknown_02022B14 = {};
|
||||||
|
EWRAM_DATA ALIGNED(2) u8 gUnknown_02022B22[8] = {};
|
||||||
EWRAM_DATA struct UnkLinkRfuStruct_02022B2C gUnknown_02022B2C = {};
|
EWRAM_DATA struct UnkLinkRfuStruct_02022B2C gUnknown_02022B2C = {};
|
||||||
|
|
||||||
// Static ROM declarations
|
// Static ROM declarations
|
||||||
@ -42,6 +43,7 @@ static void sub_800D434(void);
|
|||||||
static void sub_800D610(void);
|
static void sub_800D610(void);
|
||||||
void sub_800D630(void);
|
void sub_800D630(void);
|
||||||
bool8 sub_800DAC8(struct UnkRfuStruct_2_Sub_c1c *q1, u8 *q2);
|
bool8 sub_800DAC8(struct UnkRfuStruct_2_Sub_c1c *q1, u8 *q2);
|
||||||
|
bool32 sub_8010454(u16 a0);
|
||||||
|
|
||||||
// .rodata
|
// .rodata
|
||||||
|
|
||||||
@ -1953,3 +1955,61 @@ void sub_800DD94(struct UnkLinkRfuStruct_02022B14 *data, u8 r9, bool32 r2, int r
|
|||||||
data->unk_01_0 = IsNationalPokedexEnabled();
|
data->unk_01_0 = IsNationalPokedexEnabled();
|
||||||
data->unk_01_1 = FlagGet(FLAG_SYS_GAME_CLEAR);
|
data->unk_01_1 = FlagGet(FLAG_SYS_GAME_CLEAR);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool8 sub_800DE7C(void *buff1, void *buff2, u8 idx)
|
||||||
|
{
|
||||||
|
bool8 retVal;
|
||||||
|
|
||||||
|
if (gUnknown_03004140.unk_06 == 1)
|
||||||
|
{
|
||||||
|
retVal = TRUE;
|
||||||
|
if (sub_8010454(gUnknown_03007890->unk_14[idx].unk_04) && ((gUnknown_03007890->unk_07 >> idx) & 1))
|
||||||
|
{
|
||||||
|
memcpy(buff1, gUnknown_03007890->unk_14[idx].unk_06, 13);
|
||||||
|
memcpy(buff2, gUnknown_03007890->unk_14[idx].unk_15, 8);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
memset(buff1, 0, 13);
|
||||||
|
memset(buff2, 0, 8);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
retVal = FALSE;
|
||||||
|
if (sub_8010454(gUnknown_03007890->unk_14[idx].unk_04))
|
||||||
|
{
|
||||||
|
memcpy(buff1, gUnknown_03007890->unk_14[idx].unk_06, 13);
|
||||||
|
memcpy(buff2, gUnknown_03007890->unk_14[idx].unk_15, 8);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
memset(buff1, 0, 13);
|
||||||
|
memset(buff2, 0, 8);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return retVal;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool8 sub_800DF34(void *buff1, void *buff2, u8 idx)
|
||||||
|
{
|
||||||
|
bool8 retVal = FALSE;
|
||||||
|
if (gUnknown_03007890->unk_14[idx].unk_04 == 0x7F7D)
|
||||||
|
{
|
||||||
|
memcpy(buff1, gUnknown_03007890->unk_14[idx].unk_06, 13);
|
||||||
|
memcpy(buff2, gUnknown_03007890->unk_14[idx].unk_15, 8);
|
||||||
|
retVal = TRUE;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
memset(buff1, 0, 13);
|
||||||
|
memset(buff2, 0, 8);
|
||||||
|
}
|
||||||
|
return retVal;
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_800DF90(void *buff1, void *buff2)
|
||||||
|
{
|
||||||
|
memcpy(buff1, &gUnknown_02022B14, 13);
|
||||||
|
memcpy(buff2, gUnknown_02022B22, 8);
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user