diff options
Diffstat (limited to 'arm9/asm/save.s')
-rw-r--r-- | arm9/asm/save.s | 137 |
1 files changed, 69 insertions, 68 deletions
diff --git a/arm9/asm/save.s b/arm9/asm/save.s index ee94c018..06def6d0 100644 --- a/arm9/asm/save.s +++ b/arm9/asm/save.s @@ -247,13 +247,13 @@ _020226B4: add r0, r5, #0x0 add r1, r6, #0x0 add r2, r7, #0x0 - bl FUN_020235D0 + bl FlashWriteChunk add r0, r4, #0x0 add r0, #0x40 lsl r0, r0, #0xc add r1, r6, #0x0 add r2, r7, #0x0 - bl FUN_020235D0 + bl FlashWriteChunk mov r0, #0x1 lsl r0, r0, #0xc add r4, r4, #0x1 @@ -526,8 +526,8 @@ FUN_02022898: ; 0x02022898 .balign 4 _020228A0: .word MATH_CalcCRC16CCITT - thumb_func_start FUN_020228A4 -FUN_020228A4: ; 0x020228A4 + thumb_func_start GetChunkOffsetFromCurrentSaveSlot +GetChunkOffsetFromCurrentSaveSlot: ; 0x020228A4 cmp r0, #0x0 bne _020228AC mov r2, #0x0 @@ -857,7 +857,7 @@ FUN_02022AD8: ; 0x02022AD8 mov r0, #0x0 add r1, r6, #0x0 lsl r2, r2, #0x10 - bl FUN_020235EC + bl FlashLoadChunk cmp r0, #0x0 add r0, sp, #0x2c beq _02022B20 @@ -880,7 +880,7 @@ _02022B2A: lsl r0, r0, #0x12 add r1, r4, #0x0 lsr r2, r0, #0x1 - bl FUN_020235EC + bl FlashLoadChunk cmp r0, #0x0 add r0, sp, #0x38 beq _02022B54 @@ -1105,30 +1105,31 @@ FUN_02022CF0: ; 0x02022CF0 push {r3-r5, lr} add r5, r1, #0x0 add r4, r2, #0x0 - bl FUN_020228A4 + bl GetChunkOffsetFromCurrentSaveSlot ldr r1, [r5, #0x4] ldr r2, [r5, #0x8] add r1, r4, r1 - bl FUN_020235EC + bl FlashLoadChunk pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02022D08 FUN_02022D08: ; 0x02022D08 + ; BOOL FUN_02022D08(struct SaveBlock2 * sav2) { push {r3-r7, lr} add r5, r0, #0x0 - ldr r0, _02022D4C ; =0x00020464 - mov r7, #0x85 + ldr r0, _02022D4C ; =0x00020464 ; unk_20464 + mov r7, #0x85 ; dynamic_region mov r4, #0x0 add r6, r5, r0 - lsl r7, r7, #0x2 -_02022D16: - ldr r0, _02022D50 ; =0x00020220 + lsl r7, r7, #0x2 ; dynamic_region +_02022D16: ; for (int i = 0; i < 2; i++) { + ldr r0, _02022D50 ; =0x00020220 ; unk_20220 add r1, r5, r4 ldrb r0, [r1, r0] add r1, r6, #0x0 add r2, r5, r7 - bl FUN_02022CF0 + bl FUN_02022CF0 ; if (!FUN_02022CF0(sav2->unk_20220[i], &sav2->unk_20464[i], sav2->dynamic_region)) return FALSE; cmp r0, #0x0 bne _02022D2C mov r0, #0x0 @@ -1137,7 +1138,7 @@ _02022D2C: add r0, r5, #0x0 add r1, r5, r7 add r2, r4, #0x0 - bl FUN_020228E0 + bl FUN_020228E0 ; if (!FUN_020228E0(sav2, sav2->dynamic_region, i)) return FALSE; cmp r0, #0x0 bne _02022D3E mov r0, #0x0 @@ -1146,8 +1147,8 @@ _02022D3E: add r4, r4, #0x1 add r6, #0xc cmp r4, #0x2 - blt _02022D16 - mov r0, #0x1 + blt _02022D16 ; } + mov r0, #0x1 ; return TRUE; } pop {r3-r7, pc} nop _02022D4C: .word 0x00020464 @@ -1171,7 +1172,7 @@ FUN_02022D54: ; 0x02022D54 bl FUN_02022968 add r0, r6, #0x0 add r1, r4, #0x0 - bl FUN_020228A4 + bl GetChunkOffsetFromCurrentSaveSlot mov r1, #0x85 lsl r1, r1, #0x2 add r2, r5, r1 @@ -1179,7 +1180,7 @@ FUN_02022D54: ; 0x02022D54 add r1, r2, r1 ldr r2, [r4, #0x8] sub r2, #0x14 - bl FUN_02023668 + bl FlashWriteChunkInternal pop {r4-r6, pc} nop _02022D90: .word 0x00020464 @@ -1196,7 +1197,7 @@ FUN_02022D94: ; 0x02022D94 add r0, r2, #0x0 add r1, r4, #0x0 ldr r5, [r4, #0x8] - bl FUN_020228A4 + bl GetChunkOffsetFromCurrentSaveSlot mov r1, #0x2 lsl r1, r1, #0x8 add r2, r6, r1 @@ -1206,7 +1207,7 @@ FUN_02022D94: ; 0x02022D94 sub r0, #0x14 add r1, r1, r5 mov r2, #0x14 - bl FUN_02023668 + bl FlashWriteChunkInternal pop {r4-r6, pc} .balign 4 _02022DC4: .word 0x00020464 @@ -1223,7 +1224,7 @@ FUN_02022DC8: ; 0x02022DC8 add r0, r2, #0x0 add r1, r4, #0x0 ldr r5, [r4, #0x8] - bl FUN_020228A4 + bl GetChunkOffsetFromCurrentSaveSlot mov r1, #0x82 lsl r1, r1, #0x2 add r2, r6, r1 @@ -1233,7 +1234,7 @@ FUN_02022DC8: ; 0x02022DC8 sub r0, #0xc add r1, r1, r5 mov r2, #0x8 - bl FUN_02023668 + bl FlashWriteChunkInternal pop {r4-r6, pc} .balign 4 _02022DF8: .word 0x00020464 @@ -1348,7 +1349,7 @@ _02022EAE: _02022EC0: ldr r0, [r4, #0x10] add r1, sp, #0x0 - bl FUN_020236E4 + bl WaitFlashWrite cmp r0, #0x0 beq _02022F78 ldr r0, [sp, #0x0] @@ -1383,7 +1384,7 @@ _02022EEE: _02022F00: ldr r0, [r4, #0x10] add r1, sp, #0x0 - bl FUN_020236E4 + bl WaitFlashWrite cmp r0, #0x0 beq _02022F78 ldr r0, [sp, #0x0] @@ -1425,7 +1426,7 @@ _02022F3C: _02022F4E: ldr r0, [r4, #0x10] add r1, sp, #0x0 - bl FUN_020236E4 + bl WaitFlashWrite cmp r0, #0x0 beq _02022F78 ldr r0, [sp, #0x0] @@ -1597,13 +1598,13 @@ FUN_02023074: ; 0x02023074 bl MI_CpuFill8 add r0, r4, #0x0 add r1, r5, #0x0 - bl FUN_020228A4 + bl GetChunkOffsetFromCurrentSaveSlot ldr r1, [r5, #0x8] mov r2, #0x14 add r0, r1, r0 sub r0, #0x14 add r1, sp, #0x0 - bl FUN_020235D0 + bl FlashWriteChunk add sp, #0x14 pop {r4-r5, pc} .balign 4 @@ -1829,9 +1830,9 @@ _0202323A: _02023240: .word UNK_020EE700 _02023244: .word UNK_020EE6DC - thumb_func_start FUN_02023248 -FUN_02023248: ; 0x02023248 - ; void FUN_02023248(struct SaveBlock2 * sav2, void * data, u16 id, u32 size) + thumb_func_start CreateChunkFooter +CreateChunkFooter: ; 0x02023248 + ; void CreateChunkFooter(struct SaveBlock2 * sav2, void * data, u16 id, u32 size) push {r3-r5, lr} ldr r5, _0202326C ; =0x20060623 add r4, r1, r3 @@ -1852,8 +1853,8 @@ FUN_02023248: ; 0x02023248 _0202326C: .word 0x20060623 _02023270: .word 0x000204A4 - thumb_func_start FUN_02023274 -FUN_02023274: ; 0x02023274 + thumb_func_start ValidateChunk +ValidateChunk: ; 0x02023274 push {r4-r6, lr} ldr r6, [r1, r3] ldr r5, _020232B0 ; =0x20060623 @@ -1935,12 +1936,12 @@ _020232E8: add r0, r7, #0x0 add r1, r6, #0x0 add r2, r5, #0x0 - bl FUN_02023248 + bl CreateChunkFooter ldr r0, [r4, #0x4] ldr r2, [sp, #0x4] lsl r0, r0, #0xc add r1, r6, #0x0 - bl FUN_020235D0 + bl FlashWriteChunk str r0, [sp, #0x0] ldr r0, [r4, #0x8] blx r0 @@ -1948,7 +1949,7 @@ _020232E8: add r0, r7, #0x0 add r1, r6, #0x0 add r2, r5, #0x0 - bl FUN_02023274 + bl ValidateChunk cmp r0, #0x1 beq _02023330 bl ErrorHandling @@ -1959,13 +1960,13 @@ _02023330: add r0, r7, #0x0 add r1, r6, #0x0 add r2, r5, #0x0 - bl FUN_02023248 + bl CreateChunkFooter ldr r0, [r4, #0x4] ldr r2, [sp, #0x4] add r0, #0x40 lsl r0, r0, #0xc add r1, r6, #0x0 - bl FUN_020235D0 + bl FlashWriteChunk ldr r1, [sp, #0x0] orr r0, r1 str r0, [sp, #0x0] @@ -1975,7 +1976,7 @@ _02023330: add r0, r7, #0x0 add r1, r6, #0x0 add r2, r5, #0x0 - bl FUN_02023274 + bl ValidateChunk cmp r0, #0x1 beq _020233DE bl ErrorHandling @@ -1986,13 +1987,13 @@ _0202336E: add r0, r7, #0x0 add r1, r6, #0x0 add r2, r5, #0x0 - bl FUN_02023248 + bl CreateChunkFooter ldr r0, [r4, #0x4] ldr r2, [sp, #0x4] add r0, #0x40 lsl r0, r0, #0xc add r1, r6, #0x0 - bl FUN_020235D0 + bl FlashWriteChunk str r0, [sp, #0x0] ldr r0, [r4, #0x8] blx r0 @@ -2000,7 +2001,7 @@ _0202336E: add r0, r7, #0x0 add r1, r6, #0x0 add r2, r5, #0x0 - bl FUN_02023274 + bl ValidateChunk cmp r0, #0x1 beq _020233A4 bl ErrorHandling @@ -2011,12 +2012,12 @@ _020233A4: add r0, r7, #0x0 add r1, r6, #0x0 add r2, r5, #0x0 - bl FUN_02023248 + bl CreateChunkFooter ldr r0, [r4, #0x4] ldr r2, [sp, #0x4] lsl r0, r0, #0xc add r1, r6, #0x0 - bl FUN_020235D0 + bl FlashWriteChunk ldr r1, [sp, #0x0] orr r0, r1 str r0, [sp, #0x0] @@ -2026,7 +2027,7 @@ _020233A4: add r0, r7, #0x0 add r1, r6, #0x0 add r2, r5, #0x0 - bl FUN_02023274 + bl ValidateChunk cmp r0, #0x1 beq _020233DE bl ErrorHandling @@ -2085,14 +2086,14 @@ _02023430: ldr r2, [sp, #0x10] lsl r0, r0, #0xc add r1, r6, #0x0 - bl FUN_020235EC + bl FlashLoadChunk ldr r0, [r4, #0x8] blx r0 add r3, r0, #0x0 add r0, r5, #0x0 add r1, r6, #0x0 add r2, r7, #0x0 - bl FUN_02023274 + bl ValidateChunk str r0, [sp, #0xc] ldr r0, [r4, #0x8] blx r0 @@ -2105,14 +2106,14 @@ _02023430: add r0, #0x40 lsl r0, r0, #0xc add r1, r6, #0x0 - bl FUN_020235EC + bl FlashLoadChunk ldr r0, [r4, #0x8] blx r0 add r3, r0, #0x0 add r0, r5, #0x0 add r1, r6, #0x0 add r2, r7, #0x0 - bl FUN_02023274 + bl ValidateChunk add r7, r0, #0x0 ldr r0, [r4, #0x8] blx r0 @@ -2138,7 +2139,7 @@ _02023430: ldr r0, [r4, #0x4] add r1, r6, #0x0 lsl r0, r0, #0xc - bl FUN_020235EC + bl FlashLoadChunk add sp, #0x14 add r0, r6, #0x0 pop {r4-r7, pc} @@ -2159,7 +2160,7 @@ _020234CC: add r1, r6, #0x0 add r0, #0x40 lsl r0, r0, #0xc - bl FUN_020235EC + bl FlashLoadChunk add sp, #0x14 add r0, r6, #0x0 pop {r4-r7, pc} @@ -2186,7 +2187,7 @@ _020234F6: ldr r0, [r4, #0x4] add r1, r6, #0x0 lsl r0, r0, #0xc - bl FUN_020235EC + bl FlashLoadChunk add sp, #0x14 add r0, r6, #0x0 pop {r4-r7, pc} @@ -2201,7 +2202,7 @@ _0202352E: add r1, r6, #0x0 add r0, #0x40 lsl r0, r0, #0xc - bl FUN_020235EC + bl FlashLoadChunk add sp, #0x14 add r0, r6, #0x0 pop {r4-r7, pc} @@ -2269,24 +2270,24 @@ _020235C2: _020235C8: .word 0x00001302 _020235CC: .word 0x00001202 - thumb_func_start FUN_020235D0 -FUN_020235D0: ; 0x020235D0 + thumb_func_start FlashWriteChunk +FlashWriteChunk: ; 0x020235D0 push {r3-r5, lr} - bl FUN_02023668 + bl FlashWriteChunkInternal add r5, r0, #0x0 add r4, sp, #0x0 _020235DA: add r0, r5, #0x0 add r1, r4, #0x0 - bl FUN_020236E4 + bl WaitFlashWrite cmp r0, #0x0 beq _020235DA ldr r0, [sp, #0x0] pop {r3-r5, pc} .balign 4 - thumb_func_start FUN_020235EC -FUN_020235EC: ; 0x020235EC + thumb_func_start FlashLoadChunk +FlashLoadChunk: ; 0x020235EC push {r4-r7, lr} sub sp, #0x14 add r5, r0, #0x0 @@ -2346,8 +2347,8 @@ FUN_0202365C: ; 0x0202365C .balign 4 _02023664: .word UNK_021C59C8 - thumb_func_start FUN_02023668 -FUN_02023668: ; 0x02023668 + thumb_func_start FlashWriteChunkInternal +FlashWriteChunkInternal: ; 0x02023668 push {r3-r7, lr} sub sp, #0x18 add r5, r0, #0x0 @@ -2380,7 +2381,7 @@ _02023684: bne _020236B2 add r0, r4, #0x0 mov r1, #0x1 - bl FUN_02023740 + bl SaveErrorHandling _020236B2: ldr r0, _020236DC ; =UNK_021C59C8 mov r1, #0x0 @@ -2406,8 +2407,8 @@ _020236B2: _020236DC: .word UNK_021C59C8 _020236E0: .word FUN_0202365C - thumb_func_start FUN_020236E4 -FUN_020236E4: ; 0x020236E4 + thumb_func_start WaitFlashWrite +WaitFlashWrite: ; 0x020236E4 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, _0202373C ; =UNK_021C59C8 @@ -2439,13 +2440,13 @@ _0202371E: mov r1, #0x0 add r0, r5, #0x0 str r1, [r4, #0x0] - bl FUN_02023740 + bl SaveErrorHandling _02023728: mov r0, #0x0 str r0, [r4, #0x0] add r0, r5, #0x0 mov r1, #0x1 - bl FUN_02023740 + bl SaveErrorHandling _02023734: mov r0, #0x1 pop {r3-r5, pc} @@ -2455,8 +2456,8 @@ _02023738: .balign 4 _0202373C: .word UNK_021C59C8 - thumb_func_start FUN_02023740 -FUN_02023740: ; 0x02023740 + thumb_func_start SaveErrorHandling +SaveErrorHandling: ; 0x02023740 push {r3-r5, lr} add r5, r0, #0x0 lsl r0, r5, #0x10 |