From dcc6234d816f7aab8f7ce0f473a7edf626dd03c6 Mon Sep 17 00:00:00 2001 From: Colin Snover Date: Tue, 21 Jun 2016 07:18:28 -0500 Subject: SCI32: Add low-pass filter to 8-bit SOL audio This improves the perceived quality of audio in games that use 8-bit samples for music, like Torin. --- engines/sci/sound/decoders/sol.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/engines/sci/sound/decoders/sol.cpp b/engines/sci/sound/decoders/sol.cpp index 280b24fd3a..a899cc4c77 100644 --- a/engines/sci/sound/decoders/sol.cpp +++ b/engines/sci/sound/decoders/sol.cpp @@ -70,13 +70,14 @@ static void deDPCM16(int16 *out, Common::ReadStream &audioStream, uint32 numByte * byte. */ static void deDPCM8Nibble(int16 *out, uint8 &sample, uint8 delta) { + const uint8 lastSample = sample; if (delta & 8) { sample -= tableDPCM8[delta & 7]; } else { sample += tableDPCM8[delta & 7]; } sample = CLIP(sample, 0, 255); - *out = (sample << 8) ^ 0x8000; + *out = ((lastSample + sample) << 7) ^ 0x8000; } /** -- cgit v1.2.3