aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sound/softsynth/fmtowns_pc98/towns_audio.cpp10
1 files changed, 3 insertions, 7 deletions
diff --git a/sound/softsynth/fmtowns_pc98/towns_audio.cpp b/sound/softsynth/fmtowns_pc98/towns_audio.cpp
index c9ba03ea27..46569dd842 100644
--- a/sound/softsynth/fmtowns_pc98/towns_audio.cpp
+++ b/sound/softsynth/fmtowns_pc98/towns_audio.cpp
@@ -360,7 +360,6 @@ void TownsAudioInterface::timerCallbackB() {
}
int TownsAudioInterface::intf_reset(va_list &args) {
- Common::StackLock lock(_mutex);
fmReset();
pcmReset();
callback(68);
@@ -1393,12 +1392,9 @@ void TownsAudioInterface::updateOutputVolume() {
// balance values for our -128 to 127 volume range
// CD-AUDIO
- int vl = (int)(((float)_outputLevel[12] * 127.0f) / 63.0f);
- int vr = (int)(((float)_outputLevel[13] * 127.0f) / 63.0f);
- int8 balance = vr - vl;
- vl = (int)(((float)_outputLevel[12] * 255.0f) / 63.0f);
- vr = (int)(((float)_outputLevel[13] * 255.0f) / 63.0f);
- AudioCD.setVolume((vl + vr) >> 1);
+ int volume = (int)(((float)MAX(_outputLevel[12], _outputLevel[13]) * 255.0f) / 63.0f);
+ int balance = (int)((float)((_outputLevel[13] - _outputLevel[12]) * 127.0f) / (float)MAX(_outputLevel[12], _outputLevel[13]));
+ AudioCD.setVolume(volume);
AudioCD.setBalance(balance);
}