diff --git a/src/emu/sound.cpp b/src/emu/sound.cpp index a0293063..c4989abb 100644 --- a/src/emu/sound.cpp +++ b/src/emu/sound.cpp @@ -761,6 +761,9 @@ read_stream_view sound_stream::update_view(attotime start, attotime end, u32 out } g_profiler.stop(); + if (!m_output_view[outputnum].valid()) + m_output_view[outputnum] = empty_view(start, end); + // return the requested view return read_stream_view(m_output_view[outputnum], start); } diff --git a/src/emu/sound.h b/src/emu/sound.h index 15f6a574..bfa45c45 100644 --- a/src/emu/sound.h +++ b/src/emu/sound.h @@ -284,6 +284,9 @@ public: return *this; } + // check basic constraints + bool valid() const { return m_buffer != nullptr; } + // return the local gain sample_t gain() const { return m_gain; }