Browse Source

loop music seamlessly

Thomas B 3 weeks ago
parent
commit
61296f13ae
2 changed files with 8 additions and 13 deletions
  1. 6
    1
      src/sound.c
  2. 2
    12
      src/sound_game.c

+ 6
- 1
src/sound.c View File

@@ -163,7 +163,6 @@ void snd_play(void) NONBANKED {
163 163
     }
164 164
 
165 165
     START_ROM_BANK(bank) {
166
-
167 166
         uint16_t diff = timer_get() - last_t;
168 167
         if (diff >= music->duration) {
169 168
             if (music->notes) {
@@ -172,6 +171,8 @@ void snd_play(void) NONBANKED {
172 171
                 } else {
173 172
                     if (music->repeat != MUSIC_NO_REPEAT) {
174 173
                         off = music->repeat;
174
+                        snd_play();
175
+                        return;
175 176
                     } else {
176 177
                         music = NULL;
177 178
                         goto end;
@@ -185,6 +186,8 @@ void snd_play(void) NONBANKED {
185 186
                 } else {
186 187
                     if (music->repeat != MUSIC_NO_REPEAT) {
187 188
                         off = music->repeat;
189
+                        snd_play();
190
+                        return;
188 191
                     } else {
189 192
                         music = NULL;
190 193
                         goto end;
@@ -198,6 +201,8 @@ void snd_play(void) NONBANKED {
198 201
                 } else {
199 202
                     if (music->repeat != MUSIC_NO_REPEAT) {
200 203
                         off = music->repeat;
204
+                        snd_play();
205
+                        return;
201 206
                     } else {
202 207
                         music = NULL;
203 208
                         goto end;

+ 2
- 12
src/sound_game.c View File

@@ -34,13 +34,7 @@ BANKREF(sound_game)
34 34
 
35 35
 
36 36
 static const enum notes game_music[] = {
37
-    NOTE_LOOP, NOTE_LOOP, NOTE_LOOP, NOTE_LOOP,
38
-    NOTE_LOOP, NOTE_LOOP, NOTE_LOOP, NOTE_LOOP,
39
-
40
-    SILENCE, SILENCE, SILENCE, SILENCE,
41
-    SILENCE, SILENCE, SILENCE, SILENCE,
42
-    SILENCE, SILENCE, SILENCE, SILENCE,
43
-    SILENCE, SILENCE, SILENCE, SILENCE,
37
+    NOTE_LOOP,
44 38
     END
45 39
 };
46 40
 
@@ -49,11 +43,7 @@ dSn, dSI, dSn, dSI, dKi, dSI, dSI, dSI, \
49 43
 dSn, dSI, dSn, dSI, dKi, dSI, dSI, dSI  \
50 44
 
51 45
 static const enum drums game_drums[] = {
52
-    DRUM_LOOP, DRUM_LOOP, DRUM_LOOP, DRUM_LOOP,
53
-    DRUM_LOOP, DRUM_LOOP, DRUM_LOOP, DRUM_LOOP,
54
-
55
-    dSI, dSI, dSI, dSI, dSI, dSI, dSI, dSI,
56
-    dSI, dSI, dSI, dSI, dSI, dSI, dSI, dSI,
46
+    DRUM_LOOP,
57 47
     dEND
58 48
 };
59 49
 

Loading…
Cancel
Save