diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2020-08-14 08:37:35 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2020-08-14 08:37:35 -0400 |
commit | eabf789edad55baff7a2d0ff95c7f10f689a2fbc (patch) | |
tree | 0062ac18c9163438ab8675640dd4acfdfe585515 | |
parent | cbf5ca94718075c645f4c34d7b6ab0e6e95a3995 (diff) |
Name some routines in save.s
-rw-r--r-- | arm9/asm/save.s | 137 | ||||
-rw-r--r-- | arm9/asm/unk_02034188.s | 2 | ||||
-rw-r--r-- | arm9/asm/unk_02089D90.s | 2 | ||||
-rw-r--r-- | arm9/asm/unk_02089F24.s | 5 | ||||
-rw-r--r-- | arm9/asm/unk_0208A998.s | 4 | ||||
-rw-r--r-- | arm9/global.inc | 2 | ||||
-rw-r--r-- | arm9/src/main.c | 8 | ||||
-rw-r--r-- | include/main.h | 2 | ||||
-rw-r--r-- | include/save_block_2.h | 17 |
9 files changed, 89 insertions, 90 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 diff --git a/arm9/asm/unk_02034188.s b/arm9/asm/unk_02034188.s index f4979b35..f84f094a 100644 --- a/arm9/asm/unk_02034188.s +++ b/arm9/asm/unk_02034188.s @@ -179,7 +179,7 @@ _020342E4: and r0, r1 lsl r0, r0, #0x10 lsr r5, r0, #0x10 - bl FUN_02000FE8 + bl HandleDSLidAction add r0, r5, #0x0 tst r0, r7 bne _02034308 diff --git a/arm9/asm/unk_02089D90.s b/arm9/asm/unk_02089D90.s index 6849192b..b4a6a662 100644 --- a/arm9/asm/unk_02089D90.s +++ b/arm9/asm/unk_02089D90.s @@ -168,7 +168,7 @@ FUN_02089D90: ; 0x02089D90 bl FUN_0200A274 mov r4, #0x1 _02089EE4: - bl FUN_02000FE8 + bl HandleDSLidAction add r0, r4, #0x0 add r1, r4, #0x0 bl OS_WaitIrq diff --git a/arm9/asm/unk_02089F24.s b/arm9/asm/unk_02089F24.s index 19e3631e..8dfe9755 100644 --- a/arm9/asm/unk_02089F24.s +++ b/arm9/asm/unk_02089F24.s @@ -172,7 +172,7 @@ FUN_02089F24: ; 0x02089F24 bl FUN_0200A274 mov r4, #0x1 _0208A078: - bl FUN_02000FE8 + bl HandleDSLidAction add r0, r4, #0x0 add r1, r4, #0x0 bl OS_WaitIrq @@ -340,8 +340,9 @@ _0208A0C8: mov r2, #0x3 bl FUN_0200A274 mov r4, #0x1 + ; Battery-saver trap _0208A21A: - bl FUN_02000FE8 + bl HandleDSLidAction add r0, r4, #0x0 add r1, r4, #0x0 bl OS_WaitIrq diff --git a/arm9/asm/unk_0208A998.s b/arm9/asm/unk_0208A998.s index bd8f0bf7..4b3a5510 100644 --- a/arm9/asm/unk_0208A998.s +++ b/arm9/asm/unk_0208A998.s @@ -224,7 +224,7 @@ _0208A9C6: bl FUN_02032DAC mov r4, #0x1 _0208AB58: - bl FUN_02000FE8 + bl HandleDSLidAction bl FUN_0202FB80 bl FUN_02033678 cmp r0, #0x0 @@ -239,7 +239,7 @@ _0208AB72: ldr r7, _0208AC0C ; =0x00002FFF mov r6, #0x1 _0208AB7A: - bl FUN_02000FE8 + bl HandleDSLidAction ldrh r1, [r5, #0x0] ldrh r0, [r4, #0x0] orr r1, r0 diff --git a/arm9/global.inc b/arm9/global.inc index a64545ad..aacbb88b 100644 --- a/arm9/global.inc +++ b/arm9/global.inc @@ -187,7 +187,7 @@ .extern FUN_02000E7C .extern FUN_02000EE8 .extern FUN_02000F18 -.extern FUN_02000FE8 +.extern HandleDSLidAction .extern FUN_020010A8 .extern FUN_02001204 .extern FUN_02001300 diff --git a/arm9/src/main.c b/arm9/src/main.c index e5e03343..a81db33d 100644 --- a/arm9/src/main.c +++ b/arm9/src/main.c @@ -110,7 +110,7 @@ THUMB_FUNC void NitroMain(void) for (;;) { FUN_02000EE8(); - FUN_02000FE8(); + HandleDSLidAction(); FUN_02016464(); if ((gMain.unk38 & SOFT_RESET_KEY) == SOFT_RESET_KEY && !gUnk021C4918.unk8) // soft reset? { @@ -234,7 +234,7 @@ THUMB_FUNC void DoSoftReset(u32 parameter) } do { - FUN_02000FE8(); + HandleDSLidAction(); FUN_02000EC8(parameter); } while (1); } @@ -258,7 +258,7 @@ THUMB_FUNC void FUN_02000F4C(u32 arg0, u32 arg1) FUN_02032DAC(); while (1) { - FUN_02000FE8(); + HandleDSLidAction(); FUN_02016464(); if (gMain.unk48 & 1) break; @@ -287,7 +287,7 @@ THUMB_FUNC void InitializeMainRNG(void) extern void FUN_0201CE04(void); extern void FUN_0201CDD0(void); -THUMB_FUNC void FUN_02000FE8(void) +THUMB_FUNC void HandleDSLidAction(void) { PMBackLightSwitch top, bottom; if (PAD_DetectFold()) diff --git a/include/main.h b/include/main.h index b61e68b9..a01f06ce 100644 --- a/include/main.h +++ b/include/main.h @@ -105,6 +105,6 @@ void FUN_02000EE8(void); void DoSoftReset(u32 parameter); void FUN_02000F4C(u32 arg0, u32 arg1); void InitializeMainRNG(void); -void FUN_02000FE8(void); +void HandleDSLidAction(void); #endif //GUARD_MAIN_H diff --git a/include/save_block_2.h b/include/save_block_2.h index 8ab96183..52b570d0 100644 --- a/include/save_block_2.h +++ b/include/save_block_2.h @@ -23,14 +23,9 @@ struct SavArrayFooter }; struct SaveBlock2_Sub_20464 { - u8 unk_0; - u8 padding[3]; - int unk_4; - int unk_8; - u8 unk_C; - u8 unk_D; - u8 unk_E; - u8 padding2; + u32 unk_0; + u32 offset; + u32 size; }; struct SaveBlock2 @@ -44,9 +39,11 @@ struct SaveBlock2 /* 0x00214 */ u8 dynamic_region[0x20000]; /* 0x20214 */ int unk_20214; /* 0x20218 */ u8 unk_20218[8]; - /* 0x20220 */ int unk_20220; + /* 0x20220 */ u8 unk_20220[2]; + /* 0x20222 */ u8 filler_20222[2]; /* 0x20224 */ struct SavArrayHeader arrayHeaders[36]; - /* 0x20464 */ struct SaveBlock2_Sub_20464 unk_20464[4]; + /* 0x20464 */ struct SaveBlock2_Sub_20464 unk_20464[2]; + /* 0x2047C */ u8 filler_2047C[0x28]; /* 0x204A4 */ int unk_204A4; // TODO: finish this struct }; // size: 0x204A8 |