From 691a550618a112a595837f6f14d2268240de682a Mon Sep 17 00:00:00 2001 From: Barry Harris <44396066+barry65536@users.noreply.github.com> Date: Thu, 12 Mar 2015 23:11:01 +0000 Subject: [PATCH] SMS - Mix YM & SN Sound --- src/burn/drv/sms/smssound.cpp | 2 +- src/burn/drv/sms/smssystem.cpp | 15 +++++++++++---- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/src/burn/drv/sms/smssound.cpp b/src/burn/drv/sms/smssound.cpp index 17c9fd783..aa4f33fe6 100644 --- a/src/burn/drv/sms/smssound.cpp +++ b/src/burn/drv/sms/smssound.cpp @@ -23,7 +23,7 @@ INT32 sound_init(void) return 0; // Init sound emulation - SN76489Init(0, snd.psg_clock, 0); + SN76489Init(0, snd.psg_clock, 1); SN76496SetRoute(0, 0.70, BURN_SND_ROUTE_BOTH); FM_Init(); diff --git a/src/burn/drv/sms/smssystem.cpp b/src/burn/drv/sms/smssystem.cpp index 5c53a0cf5..c16780af6 100644 --- a/src/burn/drv/sms/smssystem.cpp +++ b/src/burn/drv/sms/smssystem.cpp @@ -106,9 +106,13 @@ void system_frame(INT32 skip_render) if (pBurnSoundOut) { INT32 nSegmentLength = nBurnSoundLen / lpf; INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1); - SN76496Update(0, pSoundBuf, nSegmentLength); - if (sms.use_fm) + if (sms.use_fm) { BurnYM2413Render(pSoundBuf, nSegmentLength); + } else { + memset(pSoundBuf, 0, nSegmentLength * 2 * sizeof(INT16)); + } + SN76496Update(0, pSoundBuf, nSegmentLength); + nSoundBufferPos += nSegmentLength; } @@ -123,9 +127,12 @@ void system_frame(INT32 skip_render) INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos; INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1); if (nSegmentLength) { - SN76496Update(0, pSoundBuf, nSegmentLength); - if (sms.use_fm) + if (sms.use_fm) { BurnYM2413Render(pSoundBuf, nSegmentLength); + } else { + memset(pSoundBuf, 0, nSegmentLength * 2 * sizeof(INT16)); + } + SN76496Update(0, pSoundBuf, nSegmentLength); } } }