mirror of
https://github.com/pret/pmd-red.git
synced 2026-07-19 01:11:30 -05:00
some more work on decomping funcs
This commit is contained in:
parent
90655520b3
commit
a0d2d8e951
|
|
@ -5,303 +5,6 @@
|
|||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_8041F08
|
||||
sub_8041F08:
|
||||
push {lr}
|
||||
sub sp, 0x8
|
||||
movs r1, 0x2
|
||||
str r1, [sp]
|
||||
movs r1, 0
|
||||
str r1, [sp, 0x4]
|
||||
movs r1, 0x15
|
||||
movs r2, 0x1
|
||||
movs r3, 0x3
|
||||
bl sub_8041550
|
||||
add sp, 0x8
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_8041F08
|
||||
|
||||
thumb_func_start nullsub_90
|
||||
nullsub_90:
|
||||
bx lr
|
||||
thumb_func_end nullsub_90
|
||||
|
||||
thumb_func_start sub_8041F28
|
||||
sub_8041F28:
|
||||
push {lr}
|
||||
cmp r1, 0
|
||||
bne _08041F3A
|
||||
movs r1, 0xCA
|
||||
lsls r1, 1
|
||||
movs r2, 0x1
|
||||
bl sub_804151C
|
||||
b _08041F42
|
||||
_08041F3A:
|
||||
ldr r1, _08041F48
|
||||
movs r2, 0x1
|
||||
bl sub_804151C
|
||||
_08041F42:
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08041F48: .4byte 0x00000193
|
||||
thumb_func_end sub_8041F28
|
||||
|
||||
thumb_func_start sub_8041F4C
|
||||
sub_8041F4C:
|
||||
push {lr}
|
||||
cmp r1, 0
|
||||
bne _08041F60
|
||||
ldr r1, _08041F5C
|
||||
movs r2, 0x1
|
||||
bl sub_804151C
|
||||
b _08041F68
|
||||
.align 2, 0
|
||||
_08041F5C: .4byte 0x0000018f
|
||||
_08041F60:
|
||||
ldr r1, _08041F6C
|
||||
movs r2, 0x1
|
||||
bl sub_804151C
|
||||
_08041F68:
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08041F6C: .4byte 0x00000191
|
||||
thumb_func_end sub_8041F4C
|
||||
|
||||
thumb_func_start sub_8041F70
|
||||
sub_8041F70:
|
||||
push {lr}
|
||||
cmp r1, 0
|
||||
bne _08041F84
|
||||
ldr r1, _08041F80
|
||||
movs r2, 0x1
|
||||
bl sub_804151C
|
||||
b _08041F8E
|
||||
.align 2, 0
|
||||
_08041F80: .4byte 0x000001a9
|
||||
_08041F84:
|
||||
movs r1, 0xC9
|
||||
lsls r1, 1
|
||||
movs r2, 0x1
|
||||
bl sub_804151C
|
||||
_08041F8E:
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_8041F70
|
||||
|
||||
thumb_func_start sub_8041F94
|
||||
sub_8041F94:
|
||||
push {lr}
|
||||
cmp r1, 0
|
||||
bne _08041FA6
|
||||
movs r1, 0xC7
|
||||
lsls r1, 1
|
||||
movs r2, 0x1
|
||||
bl sub_804151C
|
||||
b _08041FB0
|
||||
_08041FA6:
|
||||
movs r1, 0xC8
|
||||
lsls r1, 1
|
||||
movs r2, 0x1
|
||||
bl sub_804151C
|
||||
_08041FB0:
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_8041F94
|
||||
|
||||
thumb_func_start sub_8041FB4
|
||||
sub_8041FB4:
|
||||
push {lr}
|
||||
cmp r1, 0
|
||||
bne _08041FC8
|
||||
ldr r1, _08041FC4
|
||||
movs r2, 0x1
|
||||
bl sub_804151C
|
||||
b _08041FD2
|
||||
.align 2, 0
|
||||
_08041FC4: .4byte 0x000001a9
|
||||
_08041FC8:
|
||||
movs r1, 0xC9
|
||||
lsls r1, 1
|
||||
movs r2, 0x1
|
||||
bl sub_804151C
|
||||
_08041FD2:
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_8041FB4
|
||||
|
||||
thumb_func_start sub_8041FD8
|
||||
sub_8041FD8:
|
||||
push {lr}
|
||||
cmp r1, 0
|
||||
bne _08041FEA
|
||||
movs r1, 0xCA
|
||||
lsls r1, 1
|
||||
movs r2, 0x1
|
||||
bl sub_804151C
|
||||
b _08041FF2
|
||||
_08041FEA:
|
||||
ldr r1, _08041FF8
|
||||
movs r2, 0x1
|
||||
bl sub_804151C
|
||||
_08041FF2:
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08041FF8: .4byte 0x00000193
|
||||
thumb_func_end sub_8041FD8
|
||||
|
||||
thumb_func_start sub_8041FFC
|
||||
sub_8041FFC:
|
||||
push {lr}
|
||||
cmp r1, 0
|
||||
bne _0804200E
|
||||
movs r1, 0xC7
|
||||
lsls r1, 1
|
||||
movs r2, 0x1
|
||||
bl sub_804151C
|
||||
b _08042018
|
||||
_0804200E:
|
||||
movs r1, 0xC8
|
||||
lsls r1, 1
|
||||
movs r2, 0x1
|
||||
bl sub_804151C
|
||||
_08042018:
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_8041FFC
|
||||
|
||||
thumb_func_start sub_804201C
|
||||
sub_804201C:
|
||||
push {lr}
|
||||
cmp r1, 0
|
||||
bne _08042030
|
||||
ldr r1, _0804202C
|
||||
movs r2, 0x1
|
||||
bl sub_804151C
|
||||
b _08042038
|
||||
.align 2, 0
|
||||
_0804202C: .4byte 0x0000018f
|
||||
_08042030:
|
||||
ldr r1, _0804203C
|
||||
movs r2, 0x1
|
||||
bl sub_804151C
|
||||
_08042038:
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0804203C: .4byte 0x00000191
|
||||
thumb_func_end sub_804201C
|
||||
|
||||
thumb_func_start sub_8042040
|
||||
sub_8042040:
|
||||
push {lr}
|
||||
cmp r1, 0
|
||||
bne _08042052
|
||||
movs r1, 0xC6
|
||||
lsls r1, 1
|
||||
movs r2, 0x1
|
||||
bl sub_804151C
|
||||
b _0804205A
|
||||
_08042052:
|
||||
movs r1, 0xD
|
||||
movs r2, 0x1
|
||||
bl sub_804151C
|
||||
_0804205A:
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_8042040
|
||||
|
||||
thumb_func_start sub_8042060
|
||||
sub_8042060:
|
||||
push {lr}
|
||||
cmp r1, 0
|
||||
bne _08042074
|
||||
ldr r1, _08042070
|
||||
movs r2, 0x1
|
||||
bl sub_804151C
|
||||
b _0804207C
|
||||
.align 2, 0
|
||||
_08042070: .4byte 0x0000018d
|
||||
_08042074:
|
||||
movs r1, 0xE
|
||||
movs r2, 0x1
|
||||
bl sub_804151C
|
||||
_0804207C:
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_8042060
|
||||
|
||||
thumb_func_start sub_8042080
|
||||
sub_8042080:
|
||||
push {lr}
|
||||
cmp r1, 0
|
||||
bne _08042092
|
||||
movs r1, 0xC6
|
||||
lsls r1, 1
|
||||
movs r2, 0x1
|
||||
bl sub_804151C
|
||||
b _0804209A
|
||||
_08042092:
|
||||
movs r1, 0xD
|
||||
movs r2, 0x1
|
||||
bl sub_804151C
|
||||
_0804209A:
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_8042080
|
||||
|
||||
thumb_func_start sub_80420A0
|
||||
sub_80420A0:
|
||||
push {lr}
|
||||
ldr r1, _080420B0
|
||||
movs r2, 0x1
|
||||
bl sub_804151C
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080420B0: .4byte 0x00000143
|
||||
thumb_func_end sub_80420A0
|
||||
|
||||
thumb_func_start nullsub_91
|
||||
nullsub_91:
|
||||
bx lr
|
||||
thumb_func_end nullsub_91
|
||||
|
||||
thumb_func_start sub_80420B8
|
||||
sub_80420B8:
|
||||
push {lr}
|
||||
movs r1, 0x19
|
||||
movs r2, 0x1
|
||||
bl sub_804151C
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_80420B8
|
||||
|
||||
thumb_func_start sub_80420C8
|
||||
sub_80420C8:
|
||||
push {lr}
|
||||
sub sp, 0x8
|
||||
movs r1, 0x2
|
||||
str r1, [sp]
|
||||
movs r1, 0
|
||||
str r1, [sp, 0x4]
|
||||
movs r1, 0x15
|
||||
movs r2, 0x1
|
||||
movs r3, 0x3
|
||||
bl sub_8041550
|
||||
add sp, 0x8
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_80420C8
|
||||
|
||||
thumb_func_start nullsub_92
|
||||
nullsub_92:
|
||||
bx lr
|
||||
thumb_func_end nullsub_92
|
||||
|
||||
thumb_func_start sub_80420E8
|
||||
sub_80420E8:
|
||||
push {r4,lr}
|
||||
|
|
|
|||
85
asm/save.s
85
asm/save.s
|
|
@ -188,89 +188,4 @@ _080121CE:
|
|||
bx r1
|
||||
thumb_func_end sub_801203C
|
||||
|
||||
thumb_func_start sub_80121D4
|
||||
sub_80121D4:
|
||||
push {lr}
|
||||
bl WriteSaveSector
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_80121D4
|
||||
|
||||
thumb_func_start sub_80121E0
|
||||
sub_80121E0:
|
||||
push {r4-r6,lr}
|
||||
sub sp, 0x4
|
||||
adds r5, r0, 0
|
||||
movs r6, 0x80
|
||||
lsls r6, 4
|
||||
adds r0, r6, 0
|
||||
movs r1, 0x5
|
||||
bl MemoryAlloc
|
||||
adds r4, r0, 0
|
||||
movs r0, 0x1F
|
||||
str r0, [sp]
|
||||
str r5, [r4, 0x18]
|
||||
bl sub_809769C
|
||||
ldr r0, [r0]
|
||||
str r0, [r4, 0x1C]
|
||||
ldr r0, _0801223C
|
||||
str r0, [r4, 0x14]
|
||||
bl sub_8011C4C
|
||||
adds r1, r0, 0
|
||||
adds r0, r4, 0x4
|
||||
movs r2, 0x10
|
||||
bl strncpy
|
||||
adds r0, r4, 0
|
||||
adds r0, 0x20
|
||||
movs r1, 0
|
||||
bl sub_80958E4
|
||||
mov r0, sp
|
||||
adds r1, r4, 0
|
||||
adds r2, r6, 0
|
||||
bl WriteSaveSector
|
||||
adds r5, r0, 0
|
||||
adds r0, r4, 0
|
||||
bl MemoryFree
|
||||
adds r0, r5, 0
|
||||
add sp, 0x4
|
||||
pop {r4-r6}
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_0801223C: .4byte 0x05071412
|
||||
thumb_func_end sub_80121E0
|
||||
|
||||
thumb_func_start sub_8012240
|
||||
sub_8012240:
|
||||
push {r4,r5,lr}
|
||||
movs r4, 0x80
|
||||
lsls r4, 4
|
||||
adds r0, r4, 0
|
||||
movs r1, 0x5
|
||||
bl MemoryAlloc
|
||||
adds r5, r0, 0
|
||||
movs r1, 0xFF
|
||||
movs r2, 0x4
|
||||
bl MemoryFill8
|
||||
bl sub_8011830
|
||||
movs r0, 0x1F
|
||||
adds r1, r5, 0
|
||||
adds r2, r4, 0
|
||||
bl WriteFlashData
|
||||
adds r4, r0, 0
|
||||
bl sub_8011854
|
||||
adds r0, r5, 0
|
||||
bl MemoryFree
|
||||
cmp r4, 0
|
||||
bne _0801227A
|
||||
movs r0, 0
|
||||
b _0801227C
|
||||
_0801227A:
|
||||
movs r0, 0x2
|
||||
_0801227C:
|
||||
pop {r4,r5}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_8012240
|
||||
|
||||
.align 2, 0 @ Don't pad with nop.
|
||||
|
|
|
|||
|
|
@ -6,6 +6,13 @@ struct unkStruct_8041D5C
|
|||
u8 *unk70[100];
|
||||
};
|
||||
|
||||
struct unk_struct_8041F08
|
||||
{
|
||||
u32 unk0;
|
||||
u32 unk4;
|
||||
};
|
||||
|
||||
|
||||
extern void sub_803ED30(u8, struct unkStruct_8041D5C *r0, u8, u8);
|
||||
extern void sub_804151C(u32 r0, u32 r1, u8 r2);
|
||||
extern void sub_80421C0(u32 r0, u32 r1);
|
||||
|
|
@ -13,6 +20,8 @@ extern u8 sub_8042768(void);
|
|||
extern void sub_806CDD4(u32 r0, u8, u32);
|
||||
extern u8 sub_8071858(u32, u8);
|
||||
|
||||
extern void sub_8041550(u32 r0, u32, u32, u32);
|
||||
|
||||
|
||||
void sub_8041AD0(u32 r0)
|
||||
{
|
||||
|
|
@ -442,3 +451,173 @@ void sub_8041EF8(u32 r0)
|
|||
{
|
||||
sub_804151C(r0, 0xF, 1);
|
||||
}
|
||||
|
||||
void sub_8041F08(u32 r0)
|
||||
{
|
||||
volatile struct unk_struct_8041F08 temp;
|
||||
temp.unk0 = 2;
|
||||
temp.unk4 = 0;
|
||||
sub_8041550(r0, 0x15, 1, 3);
|
||||
}
|
||||
|
||||
void nullsub_90(void)
|
||||
{
|
||||
}
|
||||
|
||||
void sub_8041F28(u32 r0, u32 r1)
|
||||
{
|
||||
if(r1 == 0)
|
||||
{
|
||||
sub_804151C(r0, 0xCA << 1, 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
sub_804151C(r0, 0x193, 1);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8041F4C(u32 r0, u32 r1)
|
||||
{
|
||||
if(r1 == 0)
|
||||
{
|
||||
sub_804151C(r0, 0x18f, 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
sub_804151C(r0, 0x191, 1);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8041F70(u32 r0, u32 r1)
|
||||
{
|
||||
if(r1 == 0)
|
||||
{
|
||||
sub_804151C(r0, 0x1a9, 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
sub_804151C(r0, 0xC9 << 1, 1);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8041F94(u32 r0, u32 r1)
|
||||
{
|
||||
if(r1 == 0)
|
||||
{
|
||||
sub_804151C(r0, 0xC7 << 1, 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
sub_804151C(r0, 0xC8 << 1, 1);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8041FB4(u32 r0, u32 r1)
|
||||
{
|
||||
if(r1 == 0)
|
||||
{
|
||||
sub_804151C(r0, 0x1a9, 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
sub_804151C(r0, 0xC9 << 1, 1);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8041FD8(u32 r0, u32 r1)
|
||||
{
|
||||
if(r1 == 0)
|
||||
{
|
||||
sub_804151C(r0, 0xCA << 1, 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
sub_804151C(r0, 0x193, 1);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8041FFC(u32 r0, u32 r1)
|
||||
{
|
||||
if(r1 == 0)
|
||||
{
|
||||
sub_804151C(r0, 0xC7 << 1, 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
sub_804151C(r0, 0xC8 << 1, 1);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_804201C(u32 r0, u32 r1)
|
||||
{
|
||||
if(r1 == 0)
|
||||
{
|
||||
sub_804151C(r0, 0x18f, 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
sub_804151C(r0, 0x191, 1);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8042040(u32 r0, u32 r1)
|
||||
{
|
||||
if(r1 == 0)
|
||||
{
|
||||
sub_804151C(r0, 0xC6 << 1, 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
sub_804151C(r0, 0xD, 1);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8042060(u32 r0, u32 r1)
|
||||
{
|
||||
if(r1 == 0)
|
||||
{
|
||||
sub_804151C(r0, 0x18d, 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
sub_804151C(r0, 0xE, 1);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8042080(u32 r0, u32 r1)
|
||||
{
|
||||
if(r1 == 0)
|
||||
{
|
||||
sub_804151C(r0, 0xC6 << 1, 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
sub_804151C(r0, 0xD, 1);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_80420A0(u32 r0, u32 r1)
|
||||
{
|
||||
sub_804151C(r0, 0x143, 1);
|
||||
}
|
||||
|
||||
void nullsub_91(void)
|
||||
{
|
||||
}
|
||||
|
||||
void sub_80420B8(u32 r0, u32 r1)
|
||||
{
|
||||
sub_804151C(r0, 0x19, 1);
|
||||
}
|
||||
|
||||
void sub_80420C8(u32 r0)
|
||||
{
|
||||
volatile struct unk_struct_8041F08 temp;
|
||||
temp.unk0 = 2;
|
||||
temp.unk4 = 0;
|
||||
sub_8041550(r0, 0x15, 1, 3);
|
||||
}
|
||||
|
||||
void nullsub_92(void)
|
||||
{
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,6 +10,19 @@ struct unk_203B188
|
|||
u32 unk4;
|
||||
};
|
||||
|
||||
struct unk_struct
|
||||
{
|
||||
u32 unk0;
|
||||
u32 unk4;
|
||||
u32 unk8;
|
||||
u32 unkC;
|
||||
u32 unk10;
|
||||
u32 unk14;
|
||||
u32 unk18;
|
||||
u32 unk1C;
|
||||
u32 padding[504];
|
||||
};
|
||||
|
||||
extern struct unk_203B188 *gUnknown_203B188;
|
||||
|
||||
extern u32 gUnknown_203B460;
|
||||
|
|
@ -52,13 +65,21 @@ extern void sub_8097F74(void);
|
|||
extern void sub_8011C28(u32 r0);
|
||||
extern void sub_8011C40(s32 r0);
|
||||
extern void sub_8097748(void);
|
||||
extern void sub_8012240();
|
||||
|
||||
|
||||
extern void sub_8094FA8(struct unkTimeStruct *Time); // defined in src/code_8094F88.c
|
||||
extern struct unkTimeStruct *sub_8094FA0(void);
|
||||
|
||||
extern void* MemoryAlloc(u32 a, u32 b);
|
||||
extern void MemoryFree(void* a);
|
||||
extern void MemoryFill8(u8 *dest, u8 value, s32 size);
|
||||
extern void sub_8011830(void);
|
||||
extern s32 WriteFlashData(s32 sector, u8 *src, s32 size);
|
||||
extern void sub_8011854(void);
|
||||
extern u32 *sub_809769C(void);
|
||||
u32 *sub_8011C4C(void);
|
||||
extern void sub_80958E4(u8 *a, u32 b);
|
||||
extern s32 WriteSaveSector(s32 *a, u8 *src, s32 size);
|
||||
|
||||
void sub_80122D0();
|
||||
void sub_80122F4();
|
||||
|
|
@ -66,6 +87,50 @@ void sub_8012300();
|
|||
void sub_80976A8();
|
||||
void sub_80122A8();
|
||||
|
||||
s32 sub_80121D4(s32 *a, u8 *src, s32 size)
|
||||
{
|
||||
return WriteSaveSector(a, src, size);
|
||||
}
|
||||
|
||||
u32 sub_80121E0(u32 r0)
|
||||
{
|
||||
u32 temp;
|
||||
u32 *temp2;
|
||||
u32 temp3;
|
||||
struct unk_struct *r4 = MemoryAlloc(sizeof(struct unk_struct), 5);
|
||||
temp = 0x1F;
|
||||
|
||||
r4->unk18 = r0;
|
||||
r4->unk1C = *sub_809769C();
|
||||
r4->unk14 = 0x5071412;
|
||||
|
||||
temp2 = sub_8011C4C();
|
||||
strncpy((u8 *)r4 + 4, (u8*)temp2, 16);
|
||||
sub_80958E4((u8 *)r4 + 32, 0);
|
||||
temp3 = WriteSaveSector(&temp, (u8 *)r4, sizeof(struct unk_struct));
|
||||
MemoryFree(r4);
|
||||
return temp3;
|
||||
}
|
||||
|
||||
u32 sub_8012240(void)
|
||||
{
|
||||
s32 temp;
|
||||
struct unk_struct *r5 = MemoryAlloc(sizeof(struct unk_struct), 5);
|
||||
MemoryFill8((u8 *)r5, 0xFF, 0x4);
|
||||
sub_8011830();
|
||||
temp = WriteFlashData(0x1F, (u8 *)r5, sizeof(struct unk_struct));
|
||||
sub_8011854();
|
||||
MemoryFree(r5);
|
||||
if(temp != 0)
|
||||
{
|
||||
return 2;
|
||||
}
|
||||
else
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8012284(void)
|
||||
{
|
||||
sub_80122D0();
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user