blob: 4b285ad2aa2f5439f3687baf3fd63a695c1e5a27 (
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
|
#include "save.h"
//
// Save data.
//
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));
}
void
save_metadata(void) {
metadata.settings = settings;
sram_write(&metadata, 0, sizeof(Metadata));
}
|