File tree Expand file tree Collapse file tree 1 file changed +8
-5
lines changed Expand file tree Collapse file tree 1 file changed +8
-5
lines changed Original file line number Diff line number Diff line change @@ -455,7 +455,9 @@ void snes_main(void)
455455
456456 #ifdef USE_AUDIO_TASK
457457 rg_task_msg_t msg = {.type = (int )sound_enabled };
458- rg_task_send (audio_task_handle , & msg );
458+ // Don't submit silence if we're already behind. This might help reduce slowdowns?
459+ if (sound_enabled || rg_system_timer () - startTime < app -> frameTime )
460+ rg_task_send (audio_task_handle , & msg );
459461 #endif
460462
461463 if (drawFrame )
@@ -465,13 +467,14 @@ void snes_main(void)
465467 currentUpdate = updates [currentUpdate == updates [0 ]];
466468 }
467469
468- #ifndef USE_AUDIO_TASK
469- if (sound_enabled )
470- mix_samples (AUDIO_BUFFER_LENGTH << 1 );
470+ #ifdef USE_AUDIO_TASK
471471 rg_system_tick (rg_system_timer () - startTime );
472- rg_audio_submit (currentAudioBuffer , AUDIO_BUFFER_LENGTH );
473472 #else
473+ // Don't submit silence if we're already behind. This might help reduce slowdowns?
474+ if (sound_enabled || rg_system_timer () - startTime < app -> frameTime )
475+ mix_samples (AUDIO_BUFFER_LENGTH << 1 );
474476 rg_system_tick (rg_system_timer () - startTime );
477+ rg_audio_submit (currentAudioBuffer , AUDIO_BUFFER_LENGTH );
475478 #endif
476479
477480 if (skipFrames == 0 )
You can’t perform that action at this time.
0 commit comments