aboutsummaryrefslogtreecommitdiff
path: root/libretro.h
diff options
context:
space:
mode:
authorjdgleaver2020-10-20 15:45:38 +0100
committerjdgleaver2020-10-20 15:45:38 +0100
commitc67092ae0078b6f27f4c0b40f173fb9a724f3e4a (patch)
treef4b3502b4d191a68b23783370dc55feb823de1c4 /libretro.h
parent8acd98afd3510ba258b93821a4d7796ba31a9b2f (diff)
downloadsnes9x2005-c67092ae0078b6f27f4c0b40f173fb9a724f3e4a.tar.gz
snes9x2005-c67092ae0078b6f27f4c0b40f173fb9a724f3e4a.tar.bz2
snes9x2005-c67092ae0078b6f27f4c0b40f173fb9a724f3e4a.zip
Frameskip improvements
Diffstat (limited to 'libretro.h')
-rw-r--r--libretro.h30
1 files changed, 30 insertions, 0 deletions
diff --git a/libretro.h b/libretro.h
index 8b579ed..59bd513 100644
--- a/libretro.h
+++ b/libretro.h
@@ -1344,6 +1344,36 @@ enum retro_mod
* in the frontend.
*/
+#define RETRO_ENVIRONMENT_SET_MINIMUM_AUDIO_LATENCY 63
+ /* const unsigned * --
+ * Sets minimum frontend audio latency in milliseconds.
+ * Resultant audio latency may be larger than set value,
+ * or smaller if a hardware limit is encountered. A frontend
+ * is expected to honour requests up to 512 ms.
+ *
+ * - If value is less than current frontend
+ * audio latency, callback has no effect
+ * - If value is zero, default frontend audio
+ * latency is set
+ *
+ * May be used by a core to increase audio latency and
+ * therefore decrease the probability of buffer under-runs
+ * (crackling) when performing 'intensive' operations.
+ * A core utilising RETRO_ENVIRONMENT_SET_AUDIO_BUFFER_STATUS_CALLBACK
+ * to implement audio-buffer-based frame skipping may achieve
+ * optimal results by setting the audio latency to a 'high'
+ * (typically 6x or 8x) integer multiple of the expected
+ * frame time.
+ *
+ * WARNING: This can only be called from within retro_run().
+ * Calling this can require a full reinitialization of audio
+ * drivers in the frontend, so it is important to call it very
+ * sparingly, and usually only with the users explicit consent.
+ * An eventual driver reinitialize will happen so that audio
+ * callbacks happening after this call within the same retro_run()
+ * call will target the newly initialized driver.
+ */
+
/* VFS functionality */
/* File paths: