summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2020-08-14 08:37:35 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2020-08-14 08:37:35 -0400
commiteabf789edad55baff7a2d0ff95c7f10f689a2fbc (patch)
tree0062ac18c9163438ab8675640dd4acfdfe585515
parentcbf5ca94718075c645f4c34d7b6ab0e6e95a3995 (diff)
Name some routines in save.s
-rw-r--r--arm9/asm/save.s137
-rw-r--r--arm9/asm/unk_02034188.s2
-rw-r--r--arm9/asm/unk_02089D90.s2
-rw-r--r--arm9/asm/unk_02089F24.s5
-rw-r--r--arm9/asm/unk_0208A998.s4
-rw-r--r--arm9/global.inc2
-rw-r--r--arm9/src/main.c8
-rw-r--r--include/main.h2
-rw-r--r--include/save_block_2.h17
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