Browse Source

Forcibly ensure .xm playback starts in the right place; fixes #1043. (#1045)

illegalinstruction 5 years ago
parent
commit
caa1f45643
2 changed files with 2 additions and 1 deletions
  1. 1 1
      src/external/jar_xm.h
  2. 1 0
      src/raudio.c

+ 1 - 1
src/external/jar_xm.h

@@ -2670,7 +2670,7 @@ void jar_xm_reset(jar_xm_context_t* ctx)
         jar_xm_cut_note(&ctx->channels[i]);
         jar_xm_cut_note(&ctx->channels[i]);
     }
     }
     ctx->current_row = 0;
     ctx->current_row = 0;
-    ctx->current_table_index = ctx->module.restart_position;
+    ctx->current_table_index = 0;
     ctx->current_tick = 0;
     ctx->current_tick = 0;
 }
 }
 
 

+ 1 - 0
src/raudio.c

@@ -1246,6 +1246,7 @@ Music LoadMusicStream(const char *fileName)
             music.stream = InitAudioStream(48000, 16, 2);
             music.stream = InitAudioStream(48000, 16, 2);
             music.sampleCount = (unsigned int)jar_xm_get_remaining_samples(ctxXm);
             music.sampleCount = (unsigned int)jar_xm_get_remaining_samples(ctxXm);
             music.loopCount = 0;   // Infinite loop by default
             music.loopCount = 0;   // Infinite loop by default
+            jar_xm_reset(ctxXm);   // make sure we start at the beginning of the song
             musicLoaded = true;
             musicLoaded = true;
 
 
             music.ctxData = ctxXm;
             music.ctxData = ctxXm;