aboutsummaryrefslogtreecommitdiff
path: root/engines/kyra/sound.cpp
diff options
context:
space:
mode:
authorTorbjörn Andersson2006-08-01 13:42:33 +0000
committerTorbjörn Andersson2006-08-01 13:42:33 +0000
commit7d53480025b1c314327a523ddb261fb20fe96157 (patch)
treec61a2b57e315943ae05a7095eb46dfc94359e516 /engines/kyra/sound.cpp
parent56c59d1da660f57d682579dd9e14bea2da6b0c76 (diff)
downloadscummvm-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.cpp8
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);