summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/sound/va_eg.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/sound/va_eg.h')
-rw-r--r--src/devices/sound/va_eg.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/devices/sound/va_eg.h b/src/devices/sound/va_eg.h
index 29675145810..66bf8a9c99e 100644
--- a/src/devices/sound/va_eg.h
+++ b/src/devices/sound/va_eg.h
@@ -17,6 +17,16 @@
// - Start decay: rc_eg.set_r(decay_r).set_target_v(sustain_v);
// - Start release: rc_eg.set_r(release_r).set_target_v(0);
//
+// The set_*() methods expect a monotonically increasing machine time, and will
+// assert()-fail if that's not the case.
+// If a single instance is used by multiple CPUs, this requirement can be met by
+// calling set_*() from within timer callbacks invoked with:
+// machine().scheduler().synchronize(timer_expired_delegate(...)).
+// See src/mame/moog/source.cpp for examples.
+//
+// Depending on the details of the multi-CPU system being emulated, additional
+// synchronization mitigations may be warranted, such as add_quantum(),
+// set_perfect_quantum(), etc.
class va_rc_eg_device : public device_t, public device_sound_interface
{
public: