aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/kyra/sound_midi.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/engines/kyra/sound_midi.cpp b/engines/kyra/sound_midi.cpp
index 218b0d161d..f798251525 100644
--- a/engines/kyra/sound_midi.cpp
+++ b/engines/kyra/sound_midi.cpp
@@ -29,6 +29,8 @@
#include "common/system.h"
#include "common/config-manager.h"
+#include "gui/message.h"
+
namespace Kyra {
class MidiOutput : public MidiDriver {
@@ -467,6 +469,19 @@ SoundMidiPC::SoundMidiPC(KyraEngine_v1 *vm, Audio::Mixer *mixer, MidiDriver *dri
// file extension.
if (_vm->game() == GI_KYRA1 && _type == kMidiGM)
_type = kMidiMT32;
+
+ // Display a warning about possibly wrong sound when the user only has
+ // a General MIDI device, but the game is setup to use Roland MT32 MIDI.
+ // (This will only happen in The Legend of Kyrandia 1 though, all other
+ // supported games include special General MIDI tracks).
+ if (_type == kMidiMT32 && !_nativeMT32) {
+ ::GUI::MessageDialog dialog("You appear to be using a General MIDI device,\n"
+ "but your game only supports Roland MT32 MIDI.\n"
+ "We try to map the Roland MT32 instruments to\n"
+ "General MIDI ones. After all it might happen\n"
+ "that a few tracks will not be correctly played.");
+ dialog.runModal();
+ }
}
SoundMidiPC::~SoundMidiPC() {