blob: 1722e9dd35d1d94e3ec8a2d3807d57095c233c85 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
//
// Save data.
//
#define SRAM ((vu8*)(MEM_CART))
#define SAVE_INIT_MAGIC 0xBADD10DE
typedef struct Metadata {
u8 blank;
u32 initialized;
int current_bank;
int current_pattern;
} Metadata;
static Metadata metadata = {0};
void
sram_read(u8 *dst, u16 pos, u16 n_bytes) {
for (size_t i = 0; i < n_bytes; ++i) {
dst[i] = SRAM[pos + i];
}
}
void
sram_write(u8 *src, u16 pos, u16 n_bytes) {
for (size_t i = 0; i < n_bytes; ++i) {
SRAM[pos + i] = src[i];
}
}
void
save_bank(int i) {
sram_write(&patterns, sizeof(Metadata) + i * sizeof(patterns), sizeof(patterns));
}
void
load_bank(int i) {
sram_read(&patterns, sizeof(Metadata) + i * sizeof(patterns), sizeof(patterns));
}
|