diff options
author | Seth Barberee <seth.barberee@gmail.com> | 2020-10-31 20:36:22 -0500 |
---|---|---|
committer | Seth Barberee <seth.barberee@gmail.com> | 2020-10-31 20:36:22 -0500 |
commit | 90655520b3593915179c02e91f1d69cf3c26c252 (patch) | |
tree | a0ee5b908d1e9876c9052b11caba589c1c5d593b | |
parent | d842f0e07256236b8cf906b8bd9d8ca07b7519a5 (diff) |
decomp a little more of save
-rw-r--r-- | asm/save.s | 78 | ||||
-rw-r--r-- | src/save.c | 57 |
2 files changed, 57 insertions, 78 deletions
@@ -5,84 +5,6 @@ .text - thumb_func_start sub_8011FA8 -sub_8011FA8: - push {r4,r5,lr} - sub sp, 0x4 - movs r4, 0x80 - lsls r4, 4 - adds r0, r4, 0 - movs r1, 0x5 - bl MemoryAlloc - adds r5, r0, 0 - movs r0, 0x1F - str r0, [sp] - mov r0, sp - adds r1, r5, 0 - adds r2, r4, 0 - bl ReadSaveSector - adds r2, r0, 0 - cmp r2, 0 - bne _08011FD8 - ldr r1, [r5, 0x14] - ldr r0, _08011FF0 - cmp r1, r0 - beq _08011FD8 - movs r2, 0x4 -_08011FD8: - ldr r4, _08011FF4 - cmp r2, 0 - bne _08011FE0 - ldr r4, [r5, 0x18] -_08011FE0: - adds r0, r5, 0 - bl MemoryFree - adds r0, r4, 0 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_08011FF0: .4byte 0x05071412 -_08011FF4: .4byte 0x000f1209 - thumb_func_end sub_8011FA8 - - thumb_func_start sub_8011FF8 -sub_8011FF8: - push {r4-r6,lr} - sub sp, 0x4 - movs r4, 0x80 - lsls r4, 4 - adds r0, r4, 0 - movs r1, 0x5 - bl MemoryAlloc - adds r5, r0, 0 - movs r0, 0x1F - str r0, [sp] - movs r6, 0 - mov r0, sp - adds r1, r5, 0 - adds r2, r4, 0 - bl ReadSaveSector - cmp r0, 0 - bne _08012028 - ldr r1, [r5, 0x14] - ldr r0, _08012038 - cmp r1, r0 - bne _08012028 - movs r6, 0x1 -_08012028: - adds r0, r5, 0 - bl MemoryFree - adds r0, r6, 0 - add sp, 0x4 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_08012038: .4byte 0x05071412 - thumb_func_end sub_8011FF8 - thumb_func_start sub_801203C sub_801203C: push {r4-r7,lr} @@ -23,6 +23,19 @@ struct UnkStruct_sub_8011DAC { u8 fill448[0x538C]; }; + +struct unk_struct +{ + u32 unk0; + u32 unk4; + u32 unk8; + u32 unkC; + u32 unk10; + u32 unk14; + u32 unk18; + u32 padding[505]; +}; + extern s32 gUnknown_202DE28; extern u32 gUnknown_203B17C; extern u32 gUnknown_203B180; @@ -267,3 +280,47 @@ u32 sub_8011F9C(s32 *r0, u8 *r1, s32 r2) { return ReadSaveSector(r0, r1, r2); } + +u32 sub_8011FA8(void) +{ + u32 temp2; + u32 temp3; + u32 temp; + struct unk_struct *r5 = MemoryAlloc(sizeof(struct unk_struct), 5); + temp = 0x1F; + temp2 = ReadSaveSector(&temp, (u8 *)r5, sizeof(struct unk_struct)); + if( temp2 == 0) + { + if(r5->unk14 != 0x5071412) + { + temp2 = 4; + } + } + temp3 = 0xf1209; + if(temp2 == 0) + { + temp3 = r5->unk18; + } + MemoryFree(r5); + return temp3; +} + +bool8 sub_8011FF8(void) +{ + u32 temp2; + u32 temp; + bool8 r6; + struct unk_struct *r5 = MemoryAlloc(sizeof(struct unk_struct), 5); + temp = 0x1F; + r6 = FALSE; + temp2 = ReadSaveSector(&temp, (u8 *)r5, sizeof(struct unk_struct)); + if(temp2 == 0) + { + if(r5->unk14 == 0x5071412) + { + r6 = TRUE; + } + } + MemoryFree(r5); + return r6; +} |