aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBad Diode <bd@badd10de.dev>2023-07-28 09:46:23 +0200
committerBad Diode <bd@badd10de.dev>2023-07-28 09:46:23 +0200
commitbf2c48deb075133ca063c4f64099b159ff9422f6 (patch)
tree79be0ff9029eaf45e803804b057e0c417101fe67
parent8585ffba82eab7f8e80bdac12773aa1f2e9e6915 (diff)
downloadstepper-bf2c48deb075133ca063c4f64099b159ff9422f6.tar.gz
stepper-bf2c48deb075133ca063c4f64099b159ff9422f6.zip
Change pattern chains to be saved per bank
-rw-r--r--src/main.c2
-rw-r--r--src/save.c2
2 files changed, 4 insertions, 0 deletions
diff --git a/src/main.c b/src/main.c
index 1a05da0..28e5e6b 100644
--- a/src/main.c
+++ b/src/main.c
@@ -23,6 +23,8 @@ WITH REGARD TO THIS SOFTWARE.
23// 23//
24// Quality of life improvements. 24// Quality of life improvements.
25// + Make the channel parameters initialize to default 25// + Make the channel parameters initialize to default
26// + Keep one pattern chain per bank
27// + Store pattern chains on bank if there is enough memory available.
26// - When not on play mode, adjusting a note or a parameter triggers the sound. 28// - When not on play mode, adjusting a note or a parameter triggers the sound.
27// This could get annoying, so maybe it should be a configuration option to 29// This could get annoying, so maybe it should be a configuration option to
28// enable it? 30// enable it?
diff --git a/src/save.c b/src/save.c
index 4b285ad..8c26557 100644
--- a/src/save.c
+++ b/src/save.c
@@ -23,11 +23,13 @@ sram_write(u8 *src, u16 pos, u16 n_bytes) {
23void 23void
24save_bank(int i) { 24save_bank(int i) {
25 sram_write(&patterns, sizeof(Metadata) + i * sizeof(patterns), sizeof(patterns)); 25 sram_write(&patterns, sizeof(Metadata) + i * sizeof(patterns), sizeof(patterns));
26 sram_write(&chain, sizeof(Metadata) + 4 * sizeof(patterns) + i * sizeof(chain), sizeof(chain));
26} 27}
27 28
28void 29void
29load_bank(int i) { 30load_bank(int i) {
30 sram_read(&patterns, sizeof(Metadata) + i * sizeof(patterns), sizeof(patterns)); 31 sram_read(&patterns, sizeof(Metadata) + i * sizeof(patterns), sizeof(patterns));
32 sram_read(&chain, sizeof(Metadata) + 4 * sizeof(patterns) + i * sizeof(chain), sizeof(chain));
31} 33}
32 34
33void 35void