summaryrefslogtreecommitdiff
path: root/src/save.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/save.c')
-rw-r--r--src/save.c352
1 files changed, 175 insertions, 177 deletions
diff --git a/src/save.c b/src/save.c
index 4f71d9a..b040f72 100644
--- a/src/save.c
+++ b/src/save.c
@@ -10,72 +10,69 @@
struct unk_struct
{
+ // size: 0x800
u32 unk0;
- u32 unk4;
- u32 unk8;
- u32 unkC;
- u32 unk10;
+ u8 unk4[0x10]; // has "POKE_DUNGEON__05
u32 unk14;
u32 unk18;
u32 unk1C;
- u32 padding[504];
+ u32 unk20;
+ u32 padding[503];
};
-struct unk_203B188
+struct SavePakRead
{
u32 state;
u32 readStatus;
};
+extern struct SavePakRead *gSavePakRead;
-extern struct unk_203B188 *gUnknown_203B188;
-
-struct unkStruct_203B18C
+struct SavePakWrite
{
u32 state;
s32 unk4;
u32 saveStatus;
struct OpenedFile *faceFile;
u8 *faceData;
- u16 unk14;
- u16 unk16;
- u8 unk18;
- u8 unk19;
- u8 unk1A;
- u8 unk1B;
- u16 pokeID;
+ u16 unk14;
+ u16 unk16;
+ u8 unk18;
+ u8 unk19;
+ u8 unk1A;
+ u8 unk1B;
+ u16 pokeID;
};
-extern struct unkStruct_203B18C *gUnknown_203B18C;
+extern struct SavePakWrite *gSavePakWrite;
-struct unkStruct_203B190
+struct QuickSaveRead
{
s32 state;
- u8 *unk4;
- u32 unk8;
- u8 unkC;
+ u8 *dest;
+ u32 size;
+ bool8 saveValid;
};
-extern struct unkStruct_203B190 *gUnknown_203B190;
+extern struct QuickSaveRead *gQuickSaveRead;
-struct unkStruct_203B194
+struct QuickSaveWrite
{
s32 state;
u8 *unk4;
u32 unk8;
u8 unkC;
- u8 fillD[3];
u32 quickSaveStatus;
};
-extern struct unkStruct_203B194 *gUnknown_203B194;
+extern struct QuickSaveWrite *gQuickSaveWrite;
extern s32 gUnknown_202DE28;
extern u32 gUnknown_203B17C;
extern char *gUnknown_203B180;
-extern u32 *gRecruitedPokemonRef;
-extern u32 *gUnknown_203B460;
+extern struct unkStruct_203B45C *gRecruitedPokemonRef;
+extern struct unkStruct_203B460 *gUnknown_203B460;
extern struct RescueTeamData *gRescueTeamInfoRef;
-extern u8 *gFriendAreas;
+extern bool8 *gFriendAreas;
extern u32 gUnknown_203B46C;
extern u8 *gUnknown_203B480;
extern u8 *gUnknown_203B484;
@@ -85,10 +82,17 @@ extern u32 gUnknown_203B490;
extern u32 gUnknown_203B494;
extern struct ExclusivePokemonData *gUnknown_203B498;
+ALIGNED(4) const char PokeDungeon_Text[] = _("POKE_DUNGEON__05");
+
+ALIGNED(4) const char fill_save0[] = _("pksdir0");
+ALIGNED(4) const char fill_save1[] = _("pksdir0");
+ALIGNED(4) const char fill_save2[] = _("pksdir0");
+ALIGNED(4) const char fill_save3[] = _("pksdir0");
+
ALIGNED(4) const char gSaveCorrupted[] = _("#+The game data is corrupted.\n"
"#+Your data will be erased.");
-ALIGNED(4) const char fill_save0[] = _("pksdir0");
+ALIGNED(4) const char fill_save4[] = _("pksdir0");
ALIGNED(4) const char gSavingAdventure[] = _("#+Saving your adventure...\n"
"#+Please don~27t turn off the power.");
@@ -105,7 +109,7 @@ ALIGNED(4) const char gSaveNotWritten[] = _("#+The data could not be written.\n"
ALIGNED(4) const char gSaveFailed[] = _("#+Save failed.");
-ALIGNED(4) const char fill_save1[] = _("pksdir0");
+ALIGNED(4) const char fill_save5[] = _("pksdir0");
ALIGNED(4) const char gUnknown_80D44C8[] = _("#+Your data was not properly saved~2c\n"
"#+so your game cannot be resumed\n"
@@ -114,7 +118,7 @@ ALIGNED(4) const char gUnknown_80D44C8[] = _("#+Your data was not properly saved
"#+Before shutting down~2c save in your\n"
"#+team base~2c or quicksave in a dungeon.");
-ALIGNED(4) const char fill_save2[] = _("pksdir0");
+ALIGNED(4) const char fill_save6[] = _("pksdir0");
ALIGNED(4) const char gUnknown_80D45AC[] = _("#+Quicksaving your adventure...\n"
"#+Please don~27t turn off the power.");
@@ -135,7 +139,7 @@ ALIGNED(4) const char gSaveNotWritten2[] = _("#+The data could not be written.\n
"#+and reinsert the DS Card.");
ALIGNED(4) const char gSaveFailed2[] = _("#+Save failed.");
-ALIGNED(4) const char fill_save3[] = _("pksdir0");
+ALIGNED(4) const char fill_save7[] = _("pksdir0");
extern volatile struct UnkStruct_203B184 *gUnknown_203B184;
@@ -147,15 +151,13 @@ extern void sub_80140DC();
extern void sub_8014114();
extern void sub_80141B4(const char *r0, u32 r1, u8 *r2, u16 r3);
extern u32 sub_80144A4(u32 *a);
-extern u32 sub_808ED78(u8 *, u32);
-extern u32 sub_808EE9C(void* a, s32 b);
+extern u32 SaveRecruitedPokemon(u8 *, u32);
+extern u32 ReadRecruitedPokemon(void* a, s32 b);
extern u32 sub_808F154(u8 *, u32);
extern u32 sub_808F2B0(void* a, s32 b);
extern u32 sub_8091C68(u8 *, u32);
extern u32 sub_8091D14(void* a, s32 b);
extern u32 sub_80921C4(u8 *, u32);
-extern u32 SaveFriendAreas(u8 *, u32);
-extern u32 ReadSavedFriendAreas(void* a, s32 b);
extern u8 *sub_8095100(void);
extern u32 *sub_8095108(void);
extern u32 *sub_8095110(void);
@@ -169,10 +171,6 @@ extern u32 sub_8097D60(u8 *, u32);
extern u32 sub_8097D98(void* a, s32 b);
extern void sub_80993E4();
extern void sub_800135C(void);
-extern u32 *GetRecruitedPokemon(void);
-extern void InitializeRecruitedPokemon(void);
-extern u32 *GetMoneyItemsInfo(void);
-extern void InitializeMoneyItems(void);
extern u32 GetGameOptions(void);
extern void InitializeGameOptions(u8 r0);
extern u8 *sub_80950F8(void);
@@ -183,7 +181,7 @@ extern void sub_80972F4(void);
extern u32 sub_8097680(void);
extern u32 *sub_809769C(void);
extern void sub_80974E8(void);
-extern void sub_8097748(void);
+extern void ResetNumAdventures(void);
extern void sub_80993D8(void);
extern struct PlayTimeStruct *gPlayTimeRef;
@@ -213,7 +211,7 @@ void sub_8011C40(s32 in)
char *sub_8011C4C(void)
{
- return gUnknown_203B180;
+ return gUnknown_203B180; // returns POKE_DUNGEON__05
}
void CalculateChecksum(u8 *out, u32 size)
@@ -304,15 +302,15 @@ u32 ReadSaveSector(s32 *a, u8 *dest, s32 size)
}
}
else {
- return 1;
+ return READ_SAVE_FAILED;
}
if (r1) {
- return 1;
+ return READ_SAVE_FAILED;
}
if (ValidateChecksum(dest, size)) {
- return 2;
+ return READ_SAVE_CHECKSUM_ERROR;
}
- return 0;
+ return READ_SAVE_VALID;
}
// Unused
@@ -346,12 +344,12 @@ u32 ReadSaveFromPak(u32 *a)
if (gUnknown_203B184 == NULL) {
sub_8011C28(r5->unk41C);
sub_8011C40(r5->unk418);
- SetRngState(r5->unk420);
+ SetRngState(r5->RngState);
}
else {
gUnknown_203B184->unk054 = r5->unk41C;
gUnknown_203B184->unk050 = r5->unk418;
- gUnknown_203B184->unk058 = r5->unk420;
+ gUnknown_203B184->RngState = r5->RngState;
}
}
if (!r7)
@@ -367,8 +365,8 @@ u32 ReadSaveFromPak(u32 *a)
}
if (!r7)
{
- r1 = sub_808EE9C(r4, 0x4650);
- if (r1 != r5->unk424) {
+ r1 = ReadRecruitedPokemon(r4, 0x4650);
+ if (r1 != r5->savedRecruitedPokemon) {
r7 = 3;
}
r4 += 0x4650;
@@ -382,8 +380,8 @@ u32 ReadSaveFromPak(u32 *a)
r7 = 3;
}
r4 += 0x1d8;
- r1 = sub_809222C(r4, 0x10);
- if (r1 != r5->unk434) {
+ r1 = ReadRescueTeamInfo(r4, 0x10);
+ if (r1 != r5->savedRescueTeamInfo) {
r7 = 3;
}
r4 += 0x10;
@@ -424,7 +422,7 @@ u32 sub_8011FA8(void)
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( temp2 == READ_SAVE_VALID)
{
if(r5->unk14 != 0x5071412)
{
@@ -432,7 +430,7 @@ u32 sub_8011FA8(void)
}
}
temp3 = 0xf1209;
- if(temp2 == 0)
+ if(temp2 == READ_SAVE_VALID)
{
temp3 = r5->unk18;
}
@@ -447,7 +445,7 @@ bool8 IsSaveCorrupted(void)
struct unk_struct *r5 = MemoryAlloc(sizeof(struct unk_struct), 5);
temp = 0x1F;
isCorrupted = FALSE;
- if(ReadSaveSector(&temp, (u8 *)r5, sizeof(struct unk_struct)) == 0)
+ if(ReadSaveSector(&temp, (u8 *)r5, sizeof(struct unk_struct)) == READ_SAVE_VALID)
{
if(r5->unk14 == 0x5071412)
{
@@ -471,30 +469,30 @@ u32 WriteSavetoPak(s32 *param_1,u32 param_2)
if (gUnknown_203B184 == NULL) {
iVar1->unk41C = param_2;
iVar1->unk418 = sub_8011C34();
- iVar1->unk420 = GetRngState();
+ iVar1->RngState = GetRngState();
}
else {
iVar1->unk41C = gUnknown_203B184->unk054;
iVar1->unk418 = gUnknown_203B184->unk050;
- iVar1->unk420 = gUnknown_203B184->unk058;
+ iVar1->RngState = gUnknown_203B184->RngState;
}
iVar1->unk414 = 0x5071412;
__src = sub_8011C4C();
- strncpy(iVar1->unk404,__src,16);
+ strncpy(iVar1->unk404,__src, ARRAY_COUNT(iVar1->unk404));
if (gUnknown_203B184 == NULL) {
- sub_8002700(&iVar1->unk004);
+ sub_8002700(iVar1->unk004);
}
else {
- MemoryCopy8(iVar1->unk004,gUnknown_203B184->unk04C,0x400);
+ MemoryCopy8(iVar1->unk004,gUnknown_203B184->unk04C,ARRAY_COUNT(iVar1->unk004));
}
- iVar1->unk424 = sub_808ED78(array_ptr,0x4650);
+ iVar1->savedRecruitedPokemon = SaveRecruitedPokemon(array_ptr,0x4650);
array_ptr += 0x4650;
iVar1->unk428 = sub_808F154(array_ptr,0x258);
array_ptr += 0x258;
iVar1->unk430 = sub_8091C68(array_ptr,0x1D8);
array_ptr += 0x1D8;
- iVar1->unk434 = sub_80921C4(array_ptr,0x10);
+ iVar1->savedRescueTeamInfo = SaveRescueTeamInfo(array_ptr,0x10);
array_ptr += 0x10;
iVar1->savedFriendAreas = SaveFriendAreas(array_ptr,8);
array_ptr += 8;
@@ -508,12 +506,12 @@ u32 WriteSavetoPak(s32 *param_1,u32 param_2)
r4 = WriteSaveSector(param_1,(u8 *)iVar1,sizeof(struct UnkStruct_sub_8011DAC));
MemoryFree(iVar1);
- if (r5 != 0)
+ if (r5 != SAVE_COMPLETED)
return r5;
- if (r4 != 0)
+ if (r4 != SAVE_COMPLETED)
return r4;
- return 0; // Success
+ return SAVE_COMPLETED;
}
@@ -525,7 +523,7 @@ s32 sub_80121D4(s32 *a, u8 *src, s32 size)
u32 sub_80121E0(u32 r0)
{
u32 temp;
- char *temp2;
+ char *string;
u32 temp3;
struct unk_struct *r4 = MemoryAlloc(sizeof(struct unk_struct), 5);
temp = 0x1F;
@@ -534,8 +532,8 @@ u32 sub_80121E0(u32 r0)
r4->unk1C = *sub_809769C();
r4->unk14 = 0x5071412;
- temp2 = sub_8011C4C();
- strncpy((u8 *)r4 + 4, temp2, 16);
+ string = sub_8011C4C();
+ strncpy(r4->unk4, string, ARRAY_COUNT(r4->unk4));
sub_80958E4((u8 *)r4 + 32, 0);
temp3 = WriteSaveSector(&temp, (u8 *)r4, sizeof(struct unk_struct));
MemoryFree(r4);
@@ -591,7 +589,7 @@ void sub_80122D0(void)
{
sub_8011C28(0);
sub_8011C40(-1);
- sub_8097748();
+ ResetNumAdventures();
ResetPlayTime(gPlayTimeRef);
}
@@ -626,7 +624,7 @@ void sub_8012334(struct UnkStruct_203B184 *r0)
gUnknown_203B184 = r0;
if(r0 != NULL)
{
- gUnknown_203B460 = r0->unk0;
+ gUnknown_203B460 = r0->MoneyItems;
gRecruitedPokemonRef = r0->recruitedPokemon;
gUnknown_203B480 = r0->unk8;
gUnknown_203B484 = r0->unkC;
@@ -657,52 +655,52 @@ void sub_8012334(struct UnkStruct_203B184 *r0)
}
-void sub_8012468(void)
+void PrepareSavePakRead(void)
{
- gUnknown_203B188 = MemoryAlloc(sizeof(struct unk_203B188), 5);
- gUnknown_203B188->state = 1;
+ gSavePakRead = MemoryAlloc(sizeof(struct SavePakRead), 5);
+ gSavePakRead->state = 1;
}
-u8 sub_8012484(void)
+u8 ReadSavePak(void)
{
u32 temp;
u32 temp2;
- switch(gUnknown_203B188->state)
+ switch(gSavePakRead->state)
{
case 0:
- gUnknown_203B188->state = 1;
+ gSavePakRead->state = 1;
break;
case 1:
temp = 0;
- gUnknown_203B188->readStatus = ReadSaveFromPak(&temp);
- gUnknown_203B188->state = 2;
+ gSavePakRead->readStatus = ReadSaveFromPak(&temp);
+ gSavePakRead->state = 2;
break;
case 2:
- if(gUnknown_203B188->readStatus != 0)
+ if(gSavePakRead->readStatus != READ_SAVE_VALID)
{
if(IsSaveCorrupted())
{
sub_80141B4(gSaveCorrupted, 0, 0, 0x301);
- gUnknown_203B188->state = 3;
+ gSavePakRead->state = 3;
}
else
{
- gUnknown_203B188->state = 4;
+ gSavePakRead->state = 4;
}
}
else
{
- gUnknown_203B188->state = 6;
+ gSavePakRead->state = 6;
}
break;
case 3:
if(sub_80144A4(&temp2) == 0)
- gUnknown_203B188->state = 4;
+ gSavePakRead->state = 4;
break;
case 4:
sub_8012298();
- gUnknown_203B188->state = 6;
+ gSavePakRead->state = 6;
case 5:
break;
case 6:
@@ -711,16 +709,16 @@ u8 sub_8012484(void)
return 1;
}
-void sub_8012558(void)
+void FinishReadSavePak(void)
{
- if(gUnknown_203B188 != NULL)
+ if(gSavePakRead != NULL)
{
- MemoryFree(gUnknown_203B188);
- gUnknown_203B188 = NULL;
+ MemoryFree(gSavePakRead);
+ gSavePakRead = NULL;
}
}
-void sub_8012574(s16 PokemonID)
+void PrepareSavePakWrite(s16 PokemonID)
{
struct OpenedFile *file;
s32 id_s32;
@@ -729,138 +727,138 @@ void sub_8012574(s16 PokemonID)
id_s32 = PokemonID; // had to cast for asr shift
sub_80993D8();
- gUnknown_203B18C = MemoryAlloc(sizeof(struct unkStruct_203B18C),5);
- gUnknown_203B18C->pokeID = id_s32;
- gUnknown_203B18C->faceFile = NULL;
- gUnknown_203B18C->faceData = NULL;
+ gSavePakWrite = MemoryAlloc(sizeof(struct SavePakWrite),5);
+ gSavePakWrite->pokeID = id_s32;
+ gSavePakWrite->faceFile = NULL;
+ gSavePakWrite->faceData = NULL;
if (PokemonID != 0) {
file = GetDialogueSpriteDataPtr(PokemonID);
- gUnknown_203B18C->faceFile = file;
- gUnknown_203B18C->faceData = file->data;
- gUnknown_203B18C->unk18 = 0;
- gUnknown_203B18C->unk19 = 0;
- gUnknown_203B18C->unk1A = 0;
- gUnknown_203B18C->unk14 = 2;
- gUnknown_203B18C->unk16 = 8;
+ gSavePakWrite->faceFile = file;
+ gSavePakWrite->faceData = file->data;
+ gSavePakWrite->unk18 = 0;
+ gSavePakWrite->unk19 = 0;
+ gSavePakWrite->unk1A = 0;
+ gSavePakWrite->unk14 = 2;
+ gSavePakWrite->unk16 = 8;
}
- if (gUnknown_203B18C->faceFile != 0) {
- preload_face = (u8 *)&gUnknown_203B18C->faceFile;
+ if (gSavePakWrite->faceFile != 0) {
+ preload_face = (u8 *)&gSavePakWrite->faceFile;
sub_80141B4(gSavingAdventure,0,preload_face,0x20);
}
else {
sub_80141B4(gSavingAdventure,0,0,0x20);
}
- gUnknown_203B18C->state = 3;
+ gSavePakWrite->state = 3;
}
-bool8 sub_8012600(void)
+bool8 WriteSavePak(void)
{
struct OpenedFile **faceFile;
u32 local_14;
u32 other_stack;
faceFile = NULL;
- if (gUnknown_203B18C->faceFile != 0) {
- faceFile = &gUnknown_203B18C->faceFile;
+ if (gSavePakWrite->faceFile != 0) {
+ faceFile = &gSavePakWrite->faceFile;
}
- switch(gUnknown_203B18C->state)
+ switch(gSavePakWrite->state)
{
case 0:
- gUnknown_203B18C->state = 7;
+ gSavePakWrite->state = 7;
break;
case 1:
- gUnknown_203B18C->unk4++;
- if (gUnknown_203B18C->unk4 > 8) {
+ gSavePakWrite->unk4++;
+ if (gSavePakWrite->unk4 > 8) {
sub_80141B4(gWriteGamePak, 0, 0, 0x20);
- gUnknown_203B18C->state = 3;
+ gSavePakWrite->state = 3;
}
break;
case 2:
break;
case 3:
- gUnknown_203B18C->state = 4;
+ gSavePakWrite->state = 4;
break;
case 4:
local_14 = 0;
sub_80140DC();
- gUnknown_203B18C->saveStatus = WriteSavetoPak(&local_14, sub_8011C1C());
- switch(gUnknown_203B18C->saveStatus)
+ gSavePakWrite->saveStatus = WriteSavetoPak(&local_14, sub_8011C1C());
+ switch(gSavePakWrite->saveStatus)
{
case SAVE_COMPLETED:
- if(gUnknown_203B18C->faceFile != NULL)
+ if(gSavePakWrite->faceFile != NULL)
sub_80141B4(gSaveCompleted, 0, (u8 *)faceFile, 0x101);
else
sub_80141B4(gSaveCompleted, 0, (u8 *)faceFile, 0x101);
- gUnknown_203B18C->state = 5;
+ gSavePakWrite->state = 5;
break;
case SAVE_NOT_WRTTEN:
sub_80141B4(gSaveNotWritten, 0, 0, 0);
- gUnknown_203B18C->state = 6;
+ gSavePakWrite->state = 6;
break;
default:
- if(gUnknown_203B18C->faceFile != NULL)
+ if(gSavePakWrite->faceFile != NULL)
sub_80141B4(gSaveFailed, 0, (u8 *)faceFile, 0x101);
else
sub_80141B4(gSaveFailed, 0, (u8 *)faceFile, 0x101);
- gUnknown_203B18C->state = 5;
+ gSavePakWrite->state = 5;
break;
}
sub_8014114();
break;
case 5:
if (sub_80144A4(&other_stack) == 0)
- gUnknown_203B18C->state = 7;
+ gSavePakWrite->state = 7;
break;
case 6:
break;
case 7:
- return 0;
+ return FALSE;
}
- return 1;
+ return TRUE;
}
-u32 sub_8012744(void)
+u32 GetSavePakStatus(void)
{
- return gUnknown_203B18C->saveStatus;
+ return gSavePakWrite->saveStatus;
}
-void sub_8012750(void)
+void FinishWriteSavePak(void)
{
- if(gUnknown_203B18C != NULL)
+ if(gSavePakWrite != NULL)
{
- if(gUnknown_203B18C->faceFile != NULL)
- CloseFile(gUnknown_203B18C->faceFile);
- MemoryFree(gUnknown_203B18C);
- gUnknown_203B18C = NULL;
+ if(gSavePakWrite->faceFile != NULL)
+ CloseFile(gSavePakWrite->faceFile);
+ MemoryFree(gSavePakWrite);
+ gSavePakWrite = NULL;
}
sub_80993E4();
}
-void sub_801277C(u8 *r0, u32 r1)
+void PrepareQuickSaveRead(u8 *dest, u32 size)
{
- gUnknown_203B190 = MemoryAlloc(sizeof(struct unkStruct_203B190), 5);
- gUnknown_203B190->unk4 = r0;
- gUnknown_203B190->unk8 = r1;
- gUnknown_203B190->unkC = 0;
- gUnknown_203B190->state = 1;
+ gQuickSaveRead = MemoryAlloc(sizeof(struct QuickSaveRead), 5);
+ gQuickSaveRead->dest = dest;
+ gQuickSaveRead->size = size;
+ gQuickSaveRead->saveValid = FALSE;
+ gQuickSaveRead->state = 1;
}
-u32 sub_80127A8(void)
+bool8 ReadQuickSave(void)
{
u32 stack_1;
u32 stack_2;
- switch(gUnknown_203B190->state)
+ switch(gQuickSaveRead->state)
{
case 0:
- gUnknown_203B190->state = 1;
+ gQuickSaveRead->state = 1;
break;
case 1:
stack_1 = 16;
- if(sub_8011F9C(&stack_1, gUnknown_203B190->unk4, gUnknown_203B190->unk8) == 0)
+ if(sub_8011F9C(&stack_1, gQuickSaveRead->dest, gQuickSaveRead->size) == READ_SAVE_VALID)
{
- gUnknown_203B190->unkC = 1;
- gUnknown_203B190->state = 3;
+ gQuickSaveRead->saveValid = TRUE;
+ gQuickSaveRead->state = 3;
}
else
{
@@ -870,42 +868,42 @@ u32 sub_80127A8(void)
// Before shutting down, save in your
// team base or quicksave in a dungeon
sub_80141B4(gUnknown_80D44C8, 0, 0, 0x301);
- gUnknown_203B190->state = 2;
+ gQuickSaveRead->state = 2;
}
break;
case 2:
if(sub_80144A4(&stack_2) == 0)
- gUnknown_203B190->state = 3;
+ gQuickSaveRead->state = 3;
break;
case 3:
- return 0;
+ return FALSE;
default:
break;
}
- return 1;
+ return TRUE;
}
-u8 sub_8012828(void)
+bool8 IsQuickSaveValid(void)
{
- return gUnknown_203B190->unkC;
+ return gQuickSaveRead->saveValid;
}
-void sub_8012834(void)
+void FinishQuickSaveRead(void)
{
- if(gUnknown_203B190 != NULL){
- MemoryFree(gUnknown_203B190);
- gUnknown_203B190 = 0;
+ if(gQuickSaveRead != NULL){
+ MemoryFree(gQuickSaveRead);
+ gQuickSaveRead = 0;
}
}
-void sub_8012850(u8 *r0, u32 r1, u8 r2)
+void PrepareQuickSaveWrite(u8 *r0, u32 r1, u8 r2)
{
- gUnknown_203B194 = MemoryAlloc(sizeof(struct unkStruct_203B194), 5);
- gUnknown_203B194->unk4 = r0;
- gUnknown_203B194->unk8 = r1;
- gUnknown_203B194->unkC = r2;
- gUnknown_203B194->state = 0;
- if(gUnknown_203B194->unkC != 0)
+ gQuickSaveWrite = MemoryAlloc(sizeof(struct QuickSaveWrite), 5);
+ gQuickSaveWrite->unk4 = r0;
+ gQuickSaveWrite->unk8 = r1;
+ gQuickSaveWrite->unkC = r2;
+ gQuickSaveWrite->state = 0;
+ if(gQuickSaveWrite->unkC != 0)
// Quicksaving your adventure...
// Please don't turn off the power.
sub_80141B4(gUnknown_80D45AC, 0, 0, 0x20);
@@ -915,30 +913,30 @@ void sub_8012850(u8 *r0, u32 r1, u8 r2)
sub_80141B4(gUnknown_80D45AC, 0, 0, 0x20);
}
-u32 sub_80128B0(void)
+u32 WriteQuickSave(void)
{
u32 stack_1;
u32 stack_2;
- switch(gUnknown_203B194->state)
+ switch(gQuickSaveWrite->state)
{
case 0:
- gUnknown_203B194->state = 1;
+ gQuickSaveWrite->state = 1;
break;
case 1:
sub_80140DC();
stack_1 = 16;
- gUnknown_203B194->quickSaveStatus = sub_80121D4(&stack_1, gUnknown_203B194->unk4, gUnknown_203B194->unk8);
- gUnknown_203B194->state = 2;
+ gQuickSaveWrite->quickSaveStatus = sub_80121D4(&stack_1, gQuickSaveWrite->unk4, gQuickSaveWrite->unk8);
+ gQuickSaveWrite->state = 2;
return 1;
case 2:
stack_1 = 0;
- if(gUnknown_203B194->quickSaveStatus == 0)
- gUnknown_203B194->quickSaveStatus = WriteSavetoPak(&stack_1, 2);
- switch(gUnknown_203B194->quickSaveStatus)
+ if(gQuickSaveWrite->quickSaveStatus == 0)
+ gQuickSaveWrite->quickSaveStatus = WriteSavetoPak(&stack_1, 2);
+ switch(gQuickSaveWrite->quickSaveStatus)
{
case SAVE_COMPLETED:
sub_80121E0(0xf1207);
- if(gUnknown_203B194->unkC != 0)
+ if(gQuickSaveWrite->unkC != 0)
// Your adventure has been saved
// When you are in a dungeon, quicksave
// your progress before ending the game.
@@ -950,31 +948,31 @@ u32 sub_80128B0(void)
// save your progress in your team base,
// or quicksave in a dungeon.
sub_80141B4(gUnknown_80D4668, 0, 0, 0x301);
- gUnknown_203B194->state = 3;
+ gQuickSaveWrite->state = 3;
break;
case SAVE_NOT_WRTTEN:
// The data could not be written.
// Please turn off the power and remove
// and reinsert the DS Card
sub_80141B4(gSaveNotWritten2, 0, 0, 0);
- gUnknown_203B194->state = 4;
+ gQuickSaveWrite->state = 4;
break;
default:
sub_80121E0(0xf1209);
sub_80141B4(gSaveFailed2, 0, 0, 0x301);
- gUnknown_203B194->state = 3;
+ gQuickSaveWrite->state = 3;
break;
}
sub_8014114();
break;
case 3:
if(sub_80144A4(&stack_2) == 0)
- gUnknown_203B194->state = 5;
+ gQuickSaveWrite->state = 5;
break;
case 4:
break;
case 5:
- if(gUnknown_203B194->quickSaveStatus == SAVE_COMPLETED)
+ if(gQuickSaveWrite->quickSaveStatus == SAVE_COMPLETED)
return 2;
else
return 3;
@@ -985,11 +983,11 @@ u32 sub_80128B0(void)
return 0;
}
-void sub_80129FC()
+void FinishQuickSaveWrite()
{
- if (gUnknown_203B194) {
- MemoryFree(gUnknown_203B194);
- gUnknown_203B194 = NULL;
+ if (gQuickSaveWrite) {
+ MemoryFree(gQuickSaveWrite);
+ gQuickSaveWrite = NULL;
}
}