aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--NEWS1
-rw-r--r--engines/sky/music/adlibchannel.cpp6
2 files changed, 5 insertions, 2 deletions
diff --git a/NEWS b/NEWS
index 31f431135c..cd2e040241 100644
--- a/NEWS
+++ b/NEWS
@@ -44,6 +44,7 @@ For a more comprehensive changelog for the latest experimental SVN code, see:
BASS:
- Fixed character spacing in LINC terminals in floppy version v0.0303
+ - Fixed a regression which caused incorrect adlib music emulation
Broken Sword 1:
- Fixed speech-related crashes.
diff --git a/engines/sky/music/adlibchannel.cpp b/engines/sky/music/adlibchannel.cpp
index 1ea9a4a8c5..181c96dae6 100644
--- a/engines/sky/music/adlibchannel.cpp
+++ b/engines/sky/music/adlibchannel.cpp
@@ -85,8 +85,10 @@ bool AdlibChannel::isActive(void) {
}
void AdlibChannel::updateVolume(uint16 pVolume) {
-
- _musicVolume = pVolume * 3;
+ pVolume = (pVolume * 3) >> 1;
+ if (pVolume > 0x7F)
+ pVolume = 0x7F;
+ _musicVolume = pVolume | 128;
}
/* This class uses the same area for the register mirror as the original