Name some routines in save.s

This commit is contained in:
PikalaxALT
2020-08-14 08:37:35 -04:00
parent cbf5ca9471
commit eabf789eda
9 changed files with 89 additions and 90 deletions
+69 -68
View File
@@ -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
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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
+3 -2
View File
@@ -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
+2 -2
View File
@@ -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
+1 -1
View File
@@ -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
+4 -4
View File
@@ -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())
+1 -1
View File
@@ -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
+7 -10
View File
@@ -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