aboutsummaryrefslogtreecommitdiff
path: root/engines/kyra/sound_towns.cpp
diff options
context:
space:
mode:
authorFlorian Kagerer2008-08-20 22:38:36 +0000
committerFlorian Kagerer2008-08-20 22:38:36 +0000
commit1a7d3ef5eefd372d93a1298883120b9a835fd271 (patch)
treeb355641b0654908eefad79890864a0b7a1eb3827 /engines/kyra/sound_towns.cpp
parent3717d6b9436d47e3717c04346b9e08422e86df44 (diff)
downloadscummvm-rg350-1a7d3ef5eefd372d93a1298883120b9a835fd271.tar.gz
scummvm-rg350-1a7d3ef5eefd372d93a1298883120b9a835fd271.tar.bz2
scummvm-rg350-1a7d3ef5eefd372d93a1298883120b9a835fd271.zip
KYRA: Towns/PC-98-Audio: fix bug where pitch wheel is processed twice instead of once
svn-id: r34076
Diffstat (limited to 'engines/kyra/sound_towns.cpp')
-rw-r--r--engines/kyra/sound_towns.cpp6
1 files changed, 2 insertions, 4 deletions
diff --git a/engines/kyra/sound_towns.cpp b/engines/kyra/sound_towns.cpp
index cec238862f..6f06fa9b5e 100644
--- a/engines/kyra/sound_towns.cpp
+++ b/engines/kyra/sound_towns.cpp
@@ -2459,8 +2459,6 @@ void TownsPC98_OpnChannelSSG::processFrequency() {
if (!processPitchWheel())
return;
- processPitchWheel();
-
uint16 f = _frequency >> _block;
writeReg(_regOffset << 1, f & 0xff);
writeReg((_regOffset << 1) + 1, f >> 8);
@@ -3517,12 +3515,12 @@ void TownsPC98_OpnDriver::startSoundEffect() {
}
void TownsPC98_OpnDriver::setMusicTempo(uint8 tempo) {
- float spc = (float)(0x100 - tempo) * 10.0 * _baserate;
+ float spc = (float)(0x100 - tempo) * 10.0f * _baserate;
_samplesPerMusicCallback = (int32) spc;
}
void TownsPC98_OpnDriver::setSfxTempo(uint16 tempo) {
- float spc = (float)(0x400 - tempo) * _baserate;
+ float spc = (float)(0x400 - tempo) * 0.625f * _baserate;
_samplesPerSfxCallback = (int32) spc;
}