diff options
| author | cadmic <cadmic24@gmail.com> | 2024-08-07 21:27:02 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-08-08 00:27:02 -0400 |
| commit | feac6883134e6f0c2e62ae90c5adce2cca82a000 (patch) | |
| tree | 112cd93004c4ffa27d095e3ce576774d983ca329 /src/code/z_sram.c | |
| parent | 29acf96db2fe30f0d194cc4298a3ceef367bf0e5 (diff) | |
Match NTSC file select (#1998)
* Match NTSC file select
Co-authored-by: inspectredc <inspectredc@gmail.com>
* nes -> eng in macros
* Duplicate more code but use less #ifs
* Format
---------
Co-authored-by: inspectredc <inspectredc@gmail.com>
Diffstat (limited to 'src/code/z_sram.c')
| -rw-r--r-- | src/code/z_sram.c | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/src/code/z_sram.c b/src/code/z_sram.c index fb2a4d119..af77828f5 100644 --- a/src/code/z_sram.c +++ b/src/code/z_sram.c @@ -10,7 +10,9 @@ #define HEALTH_CAP offsetof(SaveContext, save.info.playerData.healthCapacity) #define QUEST offsetof(SaveContext, save.info.inventory.questItems) #define DEFENSE offsetof(SaveContext, save.info.inventory.defenseHearts) +#if OOT_PAL #define HEALTH offsetof(SaveContext, save.info.playerData.health) +#endif #define SLOT_OFFSET(index) (SRAM_HEADER_SIZE + 0x10 + (index * SLOT_SIZE)) @@ -726,13 +728,17 @@ void Sram_VerifyAndLoadAllSaves(FileSelectState* fileSelect, SramContext* sramCt MemCpy(&fileSelect->defense[1], sramCtx->readBuff + SLOT_OFFSET(1) + DEFENSE, sizeof(fileSelect->defense[0])); MemCpy(&fileSelect->defense[2], sramCtx->readBuff + SLOT_OFFSET(2) + DEFENSE, sizeof(fileSelect->defense[0])); +#if OOT_PAL MemCpy(&fileSelect->health[0], sramCtx->readBuff + SLOT_OFFSET(0) + HEALTH, sizeof(fileSelect->health[0])); MemCpy(&fileSelect->health[1], sramCtx->readBuff + SLOT_OFFSET(1) + HEALTH, sizeof(fileSelect->health[0])); MemCpy(&fileSelect->health[2], sramCtx->readBuff + SLOT_OFFSET(2) + HEALTH, sizeof(fileSelect->health[0])); +#endif PRINTF("f_64dd=%d, %d, %d\n", fileSelect->n64ddFlags[0], fileSelect->n64ddFlags[1], fileSelect->n64ddFlags[2]); PRINTF("heart_status=%d, %d, %d\n", fileSelect->defense[0], fileSelect->defense[1], fileSelect->defense[2]); +#if OOT_PAL PRINTF("now_life=%d, %d, %d\n", fileSelect->health[0], fileSelect->health[1], fileSelect->health[2]); +#endif } void Sram_InitSave(FileSelectState* fileSelect, SramContext* sramCtx) { @@ -821,11 +827,15 @@ void Sram_InitSave(FileSelectState* fileSelect, SramContext* sramCtx) { MemCpy(&fileSelect->n64ddFlags[gSaveContext.fileNum], sramCtx->readBuff + j + N64DD, sizeof(fileSelect->n64ddFlags[0])); MemCpy(&fileSelect->defense[gSaveContext.fileNum], sramCtx->readBuff + j + DEFENSE, sizeof(fileSelect->defense[0])); +#if OOT_PAL MemCpy(&fileSelect->health[gSaveContext.fileNum], sramCtx->readBuff + j + HEALTH, sizeof(fileSelect->health[0])); +#endif PRINTF("f_64dd[%d]=%d\n", gSaveContext.fileNum, fileSelect->n64ddFlags[gSaveContext.fileNum]); PRINTF("heart_status[%d]=%d\n", gSaveContext.fileNum, fileSelect->defense[gSaveContext.fileNum]); +#if OOT_PAL PRINTF("now_life[%d]=%d\n", gSaveContext.fileNum, fileSelect->health[gSaveContext.fileNum]); +#endif } void Sram_EraseSave(FileSelectState* fileSelect, SramContext* sramCtx) { @@ -879,8 +889,10 @@ void Sram_CopySave(FileSelectState* fileSelect, SramContext* sramCtx) { sizeof(fileSelect->n64ddFlags[0])); MemCpy(&fileSelect->defense[fileSelect->copyDestFileIndex], sramCtx->readBuff + offset + DEFENSE, sizeof(fileSelect->defense[0])); +#if OOT_PAL MemCpy(&fileSelect->health[fileSelect->copyDestFileIndex], (sramCtx->readBuff + offset) + HEALTH, sizeof(fileSelect->health[0])); +#endif PRINTF("f_64dd[%d]=%d\n", gSaveContext.fileNum, fileSelect->n64ddFlags[gSaveContext.fileNum]); PRINTF("heart_status[%d]=%d\n", gSaveContext.fileNum, fileSelect->defense[gSaveContext.fileNum]); @@ -903,22 +915,30 @@ void Sram_InitSram(GameState* gameState, SramContext* sramCtx) { for (i = 0; i < ARRAY_COUNTU(sZeldaMagic) - 3; i++) { if (sZeldaMagic[i + SRAM_HEADER_MAGIC] != sramCtx->readBuff[i + SRAM_HEADER_MAGIC]) { PRINTF("SRAM破壊!!!!!!\n"); // "SRAM destruction! ! ! ! ! !" +#if OOT_PAL gSaveContext.language = sramCtx->readBuff[SRAM_HEADER_LANGUAGE]; +#endif + MemCpy(sramCtx->readBuff, sZeldaMagic, sizeof(sZeldaMagic)); + +#if OOT_PAL sramCtx->readBuff[SRAM_HEADER_LANGUAGE] = gSaveContext.language; +#endif Sram_WriteSramHeader(sramCtx); } } gSaveContext.audioSetting = sramCtx->readBuff[SRAM_HEADER_SOUND] & 3; gSaveContext.zTargetSetting = sramCtx->readBuff[SRAM_HEADER_ZTARGET] & 1; - gSaveContext.language = sramCtx->readBuff[SRAM_HEADER_LANGUAGE]; +#if OOT_PAL + gSaveContext.language = sramCtx->readBuff[SRAM_HEADER_LANGUAGE]; if (gSaveContext.language >= LANGUAGE_MAX) { gSaveContext.language = LANGUAGE_ENG; sramCtx->readBuff[SRAM_HEADER_LANGUAGE] = gSaveContext.language; Sram_WriteSramHeader(sramCtx); } +#endif #if OOT_DEBUG if (CHECK_BTN_ANY(gameState->input[2].cur.button, BTN_DRIGHT)) { |
