summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGriffinR <griffin.g.richards@gmail.com>2021-11-13 23:25:29 -0500
committerGitHub <noreply@github.com>2021-11-13 23:25:29 -0500
commit8d18d03c791c40bad532c62f217b0f82aadec6d2 (patch)
tree44e6d447e57941a77623253884304c3174b72886 /src
parent9a932cd9c3089c03adada30ace4c79a84bf73cf0 (diff)
parent159bb37bbe9d960f0d2a3da9736e1be5eefb8290 (diff)
Merge pull request #1552 from ProjectRevoTPP/fix_saveblock_reorder
Enforce structs to enforce save block order for modern toolchains.
Diffstat (limited to 'src')
-rw-r--r--src/load_save.c15
-rw-r--r--src/main.c4
-rw-r--r--src/save.c32
3 files changed, 23 insertions, 28 deletions
diff --git a/src/load_save.c b/src/load_save.c
index 4e788859c..f2b12acf0 100644
--- a/src/load_save.c
+++ b/src/load_save.c
@@ -29,14 +29,9 @@ struct LoadedSaveData
};
// EWRAM DATA
-EWRAM_DATA struct SaveBlock2 gSaveblock2 = {0};
-EWRAM_DATA u8 gSaveblock2_DMA[SAVEBLOCK_MOVE_RANGE] = {0};
-
-EWRAM_DATA struct SaveBlock1 gSaveblock1 = {0};
-EWRAM_DATA u8 gSaveblock1_DMA[SAVEBLOCK_MOVE_RANGE] = {0};
-
-EWRAM_DATA struct PokemonStorage gPokemonStorage = {0};
-EWRAM_DATA u8 gSaveblock3_DMA[SAVEBLOCK_MOVE_RANGE] = {0};
+EWRAM_DATA struct SaveBlock2DMA gSaveblock2 = {0};
+EWRAM_DATA struct SaveBlock1DMA gSaveblock1 = {0};
+EWRAM_DATA struct PokemonStorageDMA gPokemonStorage = {0};
EWRAM_DATA struct LoadedSaveData gLoadedSaveData = {0};
EWRAM_DATA u32 gLastEncryptionKey = 0;
@@ -63,12 +58,12 @@ void CheckForFlashMemory(void)
void ClearSav2(void)
{
- CpuFill16(0, &gSaveblock2, sizeof(struct SaveBlock2) + sizeof(gSaveblock2_DMA));
+ CpuFill16(0, &gSaveblock2, sizeof(struct SaveBlock2DMA));
}
void ClearSav1(void)
{
- CpuFill16(0, &gSaveblock1, sizeof(struct SaveBlock1) + sizeof(gSaveblock1_DMA));
+ CpuFill16(0, &gSaveblock1, sizeof(struct SaveBlock1DMA));
}
// Offset is the sum of the trainer id bytes
diff --git a/src/main.c b/src/main.c
index 215f85c46..2b96a8698 100644
--- a/src/main.c
+++ b/src/main.c
@@ -172,8 +172,8 @@ static void InitMainCallbacks(void)
gMain.vblankCounter2 = 0;
gMain.callback1 = NULL;
SetMainCallback2(CB2_InitCopyrightScreenAfterBootup);
- gSaveBlock2Ptr = &gSaveblock2;
- gPokemonStoragePtr = &gPokemonStorage;
+ gSaveBlock2Ptr = &gSaveblock2.block;
+ gPokemonStoragePtr = &gPokemonStorage.block;
}
static void CallCallbacks(void)
diff --git a/src/save.c b/src/save.c
index 4cd2982a1..b53956438 100644
--- a/src/save.c
+++ b/src/save.c
@@ -55,22 +55,22 @@ struct
u16 size;
} static const sSaveSlotLayout[NUM_SECTORS_PER_SLOT] =
{
- SAVEBLOCK_CHUNK(gSaveblock2, 0), // SECTOR_ID_SAVEBLOCK2
-
- SAVEBLOCK_CHUNK(gSaveblock1, 0), // SECTOR_ID_SAVEBLOCK1_START
- SAVEBLOCK_CHUNK(gSaveblock1, 1),
- SAVEBLOCK_CHUNK(gSaveblock1, 2),
- SAVEBLOCK_CHUNK(gSaveblock1, 3), // SECTOR_ID_SAVEBLOCK1_END
-
- SAVEBLOCK_CHUNK(gPokemonStorage, 0), // SECTOR_ID_PKMN_STORAGE_START
- SAVEBLOCK_CHUNK(gPokemonStorage, 1),
- SAVEBLOCK_CHUNK(gPokemonStorage, 2),
- SAVEBLOCK_CHUNK(gPokemonStorage, 3),
- SAVEBLOCK_CHUNK(gPokemonStorage, 4),
- SAVEBLOCK_CHUNK(gPokemonStorage, 5),
- SAVEBLOCK_CHUNK(gPokemonStorage, 6),
- SAVEBLOCK_CHUNK(gPokemonStorage, 7),
- SAVEBLOCK_CHUNK(gPokemonStorage, 8), // SECTOR_ID_PKMN_STORAGE_END
+ SAVEBLOCK_CHUNK(struct SaveBlock2, 0), // SECTOR_ID_SAVEBLOCK2
+
+ SAVEBLOCK_CHUNK(struct SaveBlock1, 0), // SECTOR_ID_SAVEBLOCK1_START
+ SAVEBLOCK_CHUNK(struct SaveBlock1, 1),
+ SAVEBLOCK_CHUNK(struct SaveBlock1, 2),
+ SAVEBLOCK_CHUNK(struct SaveBlock1, 3), // SECTOR_ID_SAVEBLOCK1_END
+
+ SAVEBLOCK_CHUNK(struct PokemonStorage, 0), // SECTOR_ID_PKMN_STORAGE_START
+ SAVEBLOCK_CHUNK(struct PokemonStorage, 1),
+ SAVEBLOCK_CHUNK(struct PokemonStorage, 2),
+ SAVEBLOCK_CHUNK(struct PokemonStorage, 3),
+ SAVEBLOCK_CHUNK(struct PokemonStorage, 4),
+ SAVEBLOCK_CHUNK(struct PokemonStorage, 5),
+ SAVEBLOCK_CHUNK(struct PokemonStorage, 6),
+ SAVEBLOCK_CHUNK(struct PokemonStorage, 7),
+ SAVEBLOCK_CHUNK(struct PokemonStorage, 8), // SECTOR_ID_PKMN_STORAGE_END
};
u16 gLastWrittenSector;