From a1ef19e8c237966c4d4adf7d90533585cc37fa51 Mon Sep 17 00:00:00 2001 From: "R. Belmont" Date: Sat, 3 Sep 2011 14:59:27 +0000 Subject: [PATCH] C352: don't try to play zero-length samples [Phil Bennett] --- src/emu/sound/c352.c | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/emu/sound/c352.c b/src/emu/sound/c352.c index 032943c035f..6204be0b4a2 100644 --- a/src/emu/sound/c352.c +++ b/src/emu/sound/c352.c @@ -366,13 +366,16 @@ void c352_device::write_reg16(unsigned long address, unsigned short val) { if ( m_c352_ch[i].flag & C352_FLG_KEYON ) { - m_c352_ch[i].current_addr = (m_c352_ch[i].bank << 16) + m_c352_ch[i].start_addr; - m_c352_ch[i].start = m_c352_ch[i].start_addr; - m_c352_ch[i].repeat = m_c352_ch[i].repeat_addr; - m_c352_ch[i].noisebuf = 0; - m_c352_ch[i].noisecnt = 0; - m_c352_ch[i].flag &= ~(C352_FLG_KEYON | C352_FLG_LOOPHIST); - m_c352_ch[i].flag |= C352_FLG_BUSY; + if (m_c352_ch[i].start_addr != m_c352_ch[i].end_addr) + { + m_c352_ch[i].current_addr = (m_c352_ch[i].bank << 16) + m_c352_ch[i].start_addr; + m_c352_ch[i].start = m_c352_ch[i].start_addr; + m_c352_ch[i].repeat = m_c352_ch[i].repeat_addr; + m_c352_ch[i].noisebuf = 0; + m_c352_ch[i].noisecnt = 0; + m_c352_ch[i].flag &= ~(C352_FLG_KEYON | C352_FLG_LOOPHIST); + m_c352_ch[i].flag |= C352_FLG_BUSY; + } } else if ( m_c352_ch[i].flag & C352_FLG_KEYOFF ) {