1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2025-02-27 03:24:45 +00:00
oot/include/z64sram.h
mzxrules 981af4b6af
Reduce overlay dependencies on global.h (8) (#2478)
* move variables into z64environment.h

* z_room.h

* z64sram.h, z64ss_sram.h, z64font.h, kanread.h

* z64lifemeter.h, z64debug.h, debug_arena.h

* buffers.h

* remove z_bgcheck global

* gamealloc.h

* suggestions

* .bdd
2025-02-19 05:54:39 -05:00

37 lines
1.2 KiB
C

#ifndef Z64SRAM_H
#define Z64SRAM_H
#include "ultra64/ultratypes.h"
struct FileSelectState;
struct GameState;
struct PlayState;
typedef struct SramContext {
/* 0x00 */ u8* readBuff;
} SramContext; // size = 0x4
#define SRAM_SIZE 0x8000
#define SRAM_HEADER_SIZE 0x10
typedef enum SramHeaderField {
/* 0x00 */ SRAM_HEADER_SOUND,
/* 0x01 */ SRAM_HEADER_Z_TARGET,
/* 0x02 */ SRAM_HEADER_LANGUAGE,
/* 0x03 */ SRAM_HEADER_MAGIC // must be the value in `sSramDefaultHeader` for save to be considered valid
} SramHeaderField;
void Sram_InitNewSave(void);
void Sram_InitDebugSave(void);
void Sram_OpenSave(SramContext* sramCtx);
void Sram_WriteSave(SramContext* sramCtx);
void Sram_VerifyAndLoadAllSaves(struct FileSelectState* fileSelect, SramContext* sramCtx);
void Sram_InitSave(struct FileSelectState* fileSelect, SramContext* sramCtx);
void Sram_EraseSave(struct FileSelectState* fileSelect, SramContext* sramCtx);
void Sram_CopySave(struct FileSelectState* fileSelect, SramContext* sramCtx);
void Sram_WriteSramHeader(SramContext* sramCtx);
void Sram_InitSram(struct GameState* gameState, SramContext* sramCtx);
void Sram_Alloc(struct GameState* gameState, SramContext* sramCtx);
void Sram_Init(struct PlayState* play, SramContext* sramCtx);
#endif