From 6eb79d80d99b0925164bdca72e834d5a4a343e5b Mon Sep 17 00:00:00 2001 From: MaikelChan Date: Thu, 10 Aug 2023 04:18:32 +0200 Subject: [PATCH] Save data changes. --- include/save.h | 17 ++++++----------- src/core1/code_18110.c | 2 +- src/core2/code_B5040.c | 3 ++- 3 files changed, 9 insertions(+), 13 deletions(-) diff --git a/include/save.h b/include/save.h index c16478fe..f48ab868 100644 --- a/include/save.h +++ b/include/save.h @@ -1,23 +1,18 @@ #ifndef __SAVE_H__ #define __SAVE_H__ -typedef struct { - u8 unk0[0x4]; - u8 unk4[0x14]; - u8 pad28[0x5C]; - u32 checksum; -}SaveFile; - typedef struct{ u8 magic; u8 slotIndex; - u8 pad2[0x76]; + u8 data[0x70]; + u8 padding[0x2]; + u32 checksum; }SaveData; typedef struct { - u8 unk0[0x04]; - u8 unk4[0x18]; + u32 snsItems; + u8 padding[0x18]; u32 checksum; -}SaveSettings; +}GlobalData; #endif diff --git a/src/core1/code_18110.c b/src/core1/code_18110.c index 4e4726c7..3dbf0361 100644 --- a/src/core1/code_18110.c +++ b/src/core1/code_18110.c @@ -5,7 +5,7 @@ #define ROUND_UP_DIVIDE(a, b) (((a) + (b) - 1) / (b)) // The round up divide is not technically needed, but will come in handy for modding -#define gameFile_NUM_BLOCKS ROUND_UP_DIVIDE(sizeof(SaveFile),EEPROM_BLOCK_SIZE) +#define gameFile_NUM_BLOCKS ROUND_UP_DIVIDE(sizeof(SaveData),EEPROM_BLOCK_SIZE) s32 write_file_blocks(s32 filenum, s32 blockOffset, u8 *buffer, s32 blockCount) { s32 address = (filenum * gameFile_NUM_BLOCKS) + blockOffset; diff --git a/src/core2/code_B5040.c b/src/core2/code_B5040.c index 0f02fd27..4a9523c6 100644 --- a/src/core2/code_B5040.c +++ b/src/core2/code_B5040.c @@ -4,6 +4,7 @@ #include "save.h" + typedef struct { s16 unk0; s16 unk2; @@ -401,7 +402,7 @@ int savedata_8033CCD0(s32 filenum){ int savedata_8033CE40(u8 *buffer){ int out; - savedata_update_crc(buffer, 0x20); + savedata_update_crc(buffer, sizeof(GlobalData)); out = write_file_blocks(0, 0x3C, buffer, 4); if(out){ out = 1;