aboutsummaryrefslogtreecommitdiff
path: root/engines/kyra
diff options
context:
space:
mode:
authorFlorian Kagerer2008-06-28 13:13:37 +0000
committerFlorian Kagerer2008-06-28 13:13:37 +0000
commite97dff9f33697fac6741a74c02e1034fb126a304 (patch)
treeed893004107206ddff534dab90093cdaaeedd15f /engines/kyra
parentb6ad2b00350dffbc4051f3d5eb27b9ce5cb198c4 (diff)
downloadscummvm-rg350-e97dff9f33697fac6741a74c02e1034fb126a304.tar.gz
scummvm-rg350-e97dff9f33697fac6741a74c02e1034fb126a304.tar.bz2
scummvm-rg350-e97dff9f33697fac6741a74c02e1034fb126a304.zip
- HOF: bug fix for music driver
- KYRA1 PC98: fix music file selection svn-id: r32819
Diffstat (limited to 'engines/kyra')
-rw-r--r--engines/kyra/sound_lok.cpp12
-rw-r--r--engines/kyra/sound_towns.cpp12
2 files changed, 14 insertions, 10 deletions
diff --git a/engines/kyra/sound_lok.cpp b/engines/kyra/sound_lok.cpp
index d320536507..7d6e1dd378 100644
--- a/engines/kyra/sound_lok.cpp
+++ b/engines/kyra/sound_lok.cpp
@@ -57,12 +57,12 @@ void KyraEngine_LoK::snd_playWanderScoreViaMap(int command, int restart) {
_sound->haltTrack();
}
} else if (_flags.platform == Common::kPlatformPC98) {
-
- //////////////
- //// TODO ////
- //////////////
- _sound->playTrack(command);
-
+ if (command == 1)
+ _sound->beginFadeOut();
+ else if (command >= 2)
+ _sound->playTrack(command);
+ else
+ _sound->haltTrack();
} else {
KyraEngine_v1::snd_playWanderScoreViaMap(command, restart);
}
diff --git a/engines/kyra/sound_towns.cpp b/engines/kyra/sound_towns.cpp
index 40a746f1de..b487afe8f8 100644
--- a/engines/kyra/sound_towns.cpp
+++ b/engines/kyra/sound_towns.cpp
@@ -1273,6 +1273,8 @@ void TownsPC98_OpnOperator::generateOutput(int phasebuf, int *feedbuf, int &out)
o = &feedbuf[0];
i = &feedbuf[1];
phaseShift = _feedbackLevel ? ((feedbuf[0] + feedbuf[1]) << _feedbackLevel) : 0;
+ if (phasebuf == -1)
+ *i = 0;
*o = *i;
} else {
phaseShift = phasebuf << 15;
@@ -1796,7 +1798,7 @@ void TownsPC98_OpnDriver::nextTick(int16 *buffer, uint32 bufferSize) {
break;
case 5:
*del = feed[1];
- _channels[i]->opr[0]->generateOutput(0, feed, phbuf1);
+ _channels[i]->opr[0]->generateOutput(-1, feed, phbuf1);
_channels[i]->opr[2]->generateOutput(*del, 0, output);
_channels[i]->opr[1]->generateOutput(*del, 0, output);
_channels[i]->opr[3]->generateOutput(*del, 0, output);
@@ -2707,6 +2709,9 @@ bool SoundPC98::init() {
}
void SoundPC98::playTrack(uint8 track) {
+ if (--track >= 56)
+ track -= 55;
+
if (track == _lastTrack && _musicEnabled)
return;
@@ -2715,9 +2720,7 @@ void SoundPC98::playTrack(uint8 track) {
char musicfile[13];
sprintf(musicfile, fileListEntry(0), track);
delete[] _musicTrackData;
- // This is just for testing purposes atm since we haven't found a way
- // to determine the correct file yet
- _musicTrackData = _vm->resource()->fileData("kyram40.dat"/*musicfile*/, 0);
+ _musicTrackData = _vm->resource()->fileData(musicfile, 0);
if (_musicEnabled)
_driver->loadData(_musicTrackData);
@@ -2767,6 +2770,7 @@ bool SoundTownsPC98_v2::init() {
(Common::File::exists("track1.mp3") || Common::File::exists("track1.ogg") ||
Common::File::exists("track1.flac") || Common::File::exists("track1.fla")))
_musicEnabled = 2;
+ _musicEnabled = 1;
return _driver->init();
}