diff options
author | Torbjörn Andersson | 2006-08-01 13:42:33 +0000 |
---|---|---|
committer | Torbjörn Andersson | 2006-08-01 13:42:33 +0000 |
commit | 7d53480025b1c314327a523ddb261fb20fe96157 (patch) | |
tree | c61a2b57e315943ae05a7095eb46dfc94359e516 /engines/kyra/sound.cpp | |
parent | 56c59d1da660f57d682579dd9e14bea2da6b0c76 (diff) | |
download | scummvm-rg350-7d53480025b1c314327a523ddb261fb20fe96157.tar.gz scummvm-rg350-7d53480025b1c314327a523ddb261fb20fe96157.tar.bz2 scummvm-rg350-7d53480025b1c314327a523ddb261fb20fe96157.zip |
Kyra 2 has two types of XMIDI files: XMI and C55. It seems C55 are for the
General MIDI instrument set, so use them unless we're in MT-32 mode. This makes
the music sound a bit closer (at least to me) to what DOSbox plays.
svn-id: r23653
Diffstat (limited to 'engines/kyra/sound.cpp')
-rw-r--r-- | engines/kyra/sound.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/engines/kyra/sound.cpp b/engines/kyra/sound.cpp index a97f85c579..988a3f8d81 100644 --- a/engines/kyra/sound.cpp +++ b/engines/kyra/sound.cpp @@ -99,7 +99,7 @@ SoundMidiPC::SoundMidiPC(MidiDriver *driver, Audio::Mixer *mixer, KyraEngine *en _eventFromMusic = false; _fadeMusicOut = _sfxIsPlaying = false; _fadeStartTime = 0; - _isPlaying = _nativeMT32 = false; + _isPlaying = _nativeMT32 = _useC55 = false; _soundEffect = _parser = 0; _soundEffectSource = _parserSource = 0; @@ -193,7 +193,7 @@ void SoundMidiPC::send(uint32 b) { _channelVolume[channel] = volume; volume = volume * _volume / 255; b = (b & 0xFF00FFFF) | (volume << 16); - } else if ((b & 0xF0) == 0xC0 && !_nativeMT32) { + } else if ((b & 0xF0) == 0xC0 && !_nativeMT32 && !_useC55) { b = (b & 0xFFFF00FF) | MidiDriver::_mt32ToGm[(b >> 8) & 0xFF] << 8; } else if ((b & 0xFFF0) == 0x007BB0) { //Only respond to All Notes Off if this channel @@ -231,7 +231,7 @@ void SoundMidiPC::metaEvent(byte type, byte *data, uint16 length) { void SoundMidiPC::loadMusicFile(const char *file) { char filename[25]; - sprintf(filename, "%s.XMI", file); + sprintf(filename, "%s.%s", file, _useC55 ? "C55" : "XMI"); uint32 size; uint8 *data = (_engine->resource())->fileData(filename, &size); @@ -269,7 +269,7 @@ void SoundMidiPC::playMusic(uint8 *data, uint32 size) { void SoundMidiPC::loadSoundEffectFile(const char *file) { char filename[25]; - sprintf(filename, "%s.XMI", file); + sprintf(filename, "%s.%s", file, _useC55 ? "C55" : "XMI"); uint32 size; uint8 *data = (_engine->resource())->fileData(filename, &size); |