From 420a22b5c743c7c9162bf52454bd9af631898f2a Mon Sep 17 00:00:00 2001 From: Barry Harris <44396066+barry65536@users.noreply.github.com> Date: Fri, 13 Jan 2012 16:32:59 +0000 Subject: [PATCH] Normalised SN76496 sound volume in Exed Exes, Ikki, Lady Bug, Mr Do, Super Locomotive, Return of the Invaders and Megadrive drivers --- src/burn/drivers/megadrive/megadrive.cpp | 3 +++ src/burn/drivers/misc_pre90s/d_exedexes.cpp | 16 ++++++---------- src/burn/drivers/misc_pre90s/d_ikki.cpp | 2 ++ src/burn/drivers/misc_pre90s/d_ladybug.cpp | 7 +++++++ src/burn/drivers/misc_pre90s/d_mrdo.cpp | 2 ++ src/burn/drivers/sega/d_suprloco.cpp | 2 ++ src/burn/drivers/taito/d_retofinv.cpp | 2 ++ 7 files changed, 24 insertions(+), 10 deletions(-) diff --git a/src/burn/drivers/megadrive/megadrive.cpp b/src/burn/drivers/megadrive/megadrive.cpp index 1c32895c9..329befd47 100644 --- a/src/burn/drivers/megadrive/megadrive.cpp +++ b/src/burn/drivers/megadrive/megadrive.cpp @@ -1137,6 +1137,7 @@ static INT32 MegadriveResetDo() SN76496Exit(); SN76496Init(0, OSC_PAL / 15, 1); + SN76496SetVolShift(0, 1); } else { BurnSetRefreshRate(60.0); Reinitialise(); @@ -1149,6 +1150,7 @@ static INT32 MegadriveResetDo() SN76496Exit(); SN76496Init(0, OSC_NTSC / 15, 1); + SN76496SetVolShift(0, 1); } // other reset @@ -2965,6 +2967,7 @@ INT32 MegadriveInit() BurnTimerAttachSek(OSC_NTSC / 7); SN76496Init(0, OSC_NTSC / 15, 1); + SN76496SetVolShift(0, 1); MegadriveSetupSRAM(); SetupCustomCartridgeMappers(); diff --git a/src/burn/drivers/misc_pre90s/d_exedexes.cpp b/src/burn/drivers/misc_pre90s/d_exedexes.cpp index 86478b573..9eb8148d6 100644 --- a/src/burn/drivers/misc_pre90s/d_exedexes.cpp +++ b/src/burn/drivers/misc_pre90s/d_exedexes.cpp @@ -437,6 +437,8 @@ static INT32 DrvInit() SN76489Init(0, 3000000, 0); SN76489Init(1, 3000000, 1); + SN76496SetVolShift(0, 2); + SN76496SetVolShift(1, 2); GenericTilesInit(); @@ -664,7 +666,7 @@ static INT32 DrvFrame() SN76496Update(0, pBurnSoundOut, nBurnSoundLen); SN76496Update(1, pBurnSoundOut, nBurnSoundLen); - INT32 nSample, nSample0, nSample1; + INT32 nSample; if (nBurnSoundLen) { AY8910Update(0, &pAY8910Buffer[0], nBurnSoundLen); for (INT32 n = 0; n < nBurnSoundLen; n++) { @@ -672,18 +674,12 @@ static INT32 DrvFrame() nSample += pAY8910Buffer[1][n]; nSample += pAY8910Buffer[2][n]; - nSample >>= 2; + nSample >>= 4; nSample = BURN_SND_CLIP(nSample); - nSample0 = pBurnSoundOut[(n << 1) + 0] >> 2; - nSample1 = pBurnSoundOut[(n << 1) + 1] >> 2; - - nSample0 = BURN_SND_CLIP(nSample0 + nSample); - nSample1 = BURN_SND_CLIP(nSample1 + nSample); - - pBurnSoundOut[(n << 1) + 0] = nSample0; - pBurnSoundOut[(n << 1) + 1] = nSample1; + pBurnSoundOut[(n << 1) + 0] += nSample; + pBurnSoundOut[(n << 1) + 1] += nSample; } } } diff --git a/src/burn/drivers/misc_pre90s/d_ikki.cpp b/src/burn/drivers/misc_pre90s/d_ikki.cpp index 1bef4de1e..cb88241ef 100644 --- a/src/burn/drivers/misc_pre90s/d_ikki.cpp +++ b/src/burn/drivers/misc_pre90s/d_ikki.cpp @@ -357,6 +357,8 @@ static INT32 DrvInit() SN76489Init(0, 8000000/4, 0); SN76489Init(1, 8000000/2, 1); + SN76496SetVolShift(0, 2); + SN76496SetVolShift(1, 2); GenericTilesInit(); diff --git a/src/burn/drivers/misc_pre90s/d_ladybug.cpp b/src/burn/drivers/misc_pre90s/d_ladybug.cpp index 74d8e0e22..0a34002e2 100644 --- a/src/burn/drivers/misc_pre90s/d_ladybug.cpp +++ b/src/burn/drivers/misc_pre90s/d_ladybug.cpp @@ -776,6 +776,8 @@ static INT32 DrvInit(INT32 game_select) SN76489Init(0, 4000000, 0); SN76489Init(1, 4000000, 1); + SN76496SetVolShift(0, 2); + SN76496SetVolShift(1, 2); GenericTilesInit(); @@ -859,6 +861,11 @@ static INT32 SraiderInit() SN76489Init(2, 4000000, 1); SN76489Init(3, 4000000, 1); SN76489Init(4, 4000000, 1); + SN76496SetVolShift(0, 3); + SN76496SetVolShift(1, 3); + SN76496SetVolShift(2, 3); + SN76496SetVolShift(3, 3); + SN76496SetVolShift(4, 3); GenericTilesInit(); diff --git a/src/burn/drivers/misc_pre90s/d_mrdo.cpp b/src/burn/drivers/misc_pre90s/d_mrdo.cpp index ee845c82b..bea74feb6 100644 --- a/src/burn/drivers/misc_pre90s/d_mrdo.cpp +++ b/src/burn/drivers/misc_pre90s/d_mrdo.cpp @@ -304,6 +304,8 @@ static INT32 DrvInit() SN76489Init(0, 4000000, 0); SN76489Init(1, 4000000, 1); + SN76496SetVolShift(0, 1); + SN76496SetVolShift(1, 1); DrvDoReset(); diff --git a/src/burn/drivers/sega/d_suprloco.cpp b/src/burn/drivers/sega/d_suprloco.cpp index d1b37f4a8..b06da01d8 100644 --- a/src/burn/drivers/sega/d_suprloco.cpp +++ b/src/burn/drivers/sega/d_suprloco.cpp @@ -431,6 +431,8 @@ static INT32 DrvInit() SN76489Init(0, 4000000, 0); SN76489Init(1, 2000000, 1); + SN76496SetVolShift(0, 1); + SN76496SetVolShift(1, 1); GenericTilesInit(); diff --git a/src/burn/drivers/taito/d_retofinv.cpp b/src/burn/drivers/taito/d_retofinv.cpp index ce6ea3a64..b33f63c19 100644 --- a/src/burn/drivers/taito/d_retofinv.cpp +++ b/src/burn/drivers/taito/d_retofinv.cpp @@ -587,6 +587,8 @@ static INT32 DrvInit() SN76489Init(0, 18432000 / 6, 0); SN76489Init(1, 18432000 / 6, 1); + SN76496SetVolShift(0, 2); + SN76496SetVolShift(1, 2); GenericTilesInit();