From 92c2320e5d2f86ae2c1fe1818e6e84d41c0cf49e Mon Sep 17 00:00:00 2001 From: Barry Harris <44396066+barry65536@users.noreply.github.com> Date: Wed, 23 May 2012 13:53:42 +0000 Subject: [PATCH] Added support to TMNT custom sample for volume and left/right selection for each route. --- src/burn/drv/konami/d_tmnt.cpp | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/src/burn/drv/konami/d_tmnt.cpp b/src/burn/drv/konami/d_tmnt.cpp index 44079e554..c1dacb926 100644 --- a/src/burn/drv/konami/d_tmnt.cpp +++ b/src/burn/drv/konami/d_tmnt.cpp @@ -58,7 +58,9 @@ static INT32 BlswhstlTileRomBank; static INT32 TitleSoundLatch; static INT32 PlayTitleSample; -double TitleSamplePos = 0; +static double TitleSamplePos = 0; +static double TitleSampleGain; +static INT32 TitleSampleOutputDir; static UINT8 DrvVBlank; @@ -4184,6 +4186,12 @@ static void TmntDecodeTitleSample() } } +static void TmntTitleSampleSetRoute(double nVolume, INT32 nRouteDir) +{ + TitleSampleGain = nVolume; + TitleSampleOutputDir = nRouteDir; +} + static INT32 TilePlaneOffsets[4] = { 24, 16, 8, 0 }; static INT32 TileXOffsets[8] = { 0, 1, 2, 3, 4, 5, 6, 7 }; static INT32 TileYOffsets[8] = { 0, 32, 64, 96, 128, 160, 192, 224 }; @@ -4411,6 +4419,8 @@ static INT32 TmntInit() UPD7759Init(0, UPD7759_STANDARD_CLOCK, DrvUPD7759CRom); UPD7759SetRoute(0, 0.60, BURN_SND_ROUTE_BOTH); + TmntTitleSampleSetRoute(1.00, BURN_SND_ROUTE_BOTH); + GenericTilesInit(); LayerColourBase[0] = 0; @@ -5499,8 +5509,17 @@ static void RenderTitleSample(INT16 *pSoundBuf, INT32 nLength) if (Addr > 0x3ffff) break; INT16 Sample = DrvTitleSample[(INT32)Addr]; - pSoundBuf[i + 0] += Sample; - pSoundBuf[i + 1] += Sample; + INT16 nLeftSample = 0, nRightSample = 0; + + if ((TitleSampleOutputDir & BURN_SND_ROUTE_LEFT) == BURN_SND_ROUTE_LEFT) { + nLeftSample += (INT32)(Sample * TitleSampleGain); + } + if ((TitleSampleOutputDir & BURN_SND_ROUTE_RIGHT) == BURN_SND_ROUTE_RIGHT) { + nRightSample += (INT32)(Sample * TitleSampleGain); + } + + pSoundBuf[i + 0] += nLeftSample; + pSoundBuf[i + 1] += nRightSample; Addr += Step; }