aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--base/commandLine.cpp11
-rw-r--r--engines/scumm/scumm.cpp5
2 files changed, 15 insertions, 1 deletions
diff --git a/base/commandLine.cpp b/base/commandLine.cpp
index 086093ed9b..dd1d9b0911 100644
--- a/base/commandLine.cpp
+++ b/base/commandLine.cpp
@@ -122,6 +122,10 @@ static const char HELP_STRING[] =
#ifdef ENABLE_SCUMM
" --tempo=NUM Set music tempo (in percent, 50-200) for SCUMM games\n"
" (default: 100)\n"
+#ifdef ENABLE_SCUMM_7_8
+ " --dimuse-tempo=NUM Set internal Digital iMuse tempo (10 - 100) per second\n"
+ " (default: 10)\n"
+#endif
#endif
"\n"
"The meaning of boolean long options can be inverted by prefixing them with\n"
@@ -198,6 +202,9 @@ void registerDefaults() {
#endif
#ifdef ENABLE_SCUMM
ConfMan.registerDefault("tempo", 0);
+#ifdef ENABLE_SCUMM_7_8
+ ConfMan.registerDefault("dimuse_tempo", 10);
+#endif
#endif
#if defined(ENABLE_SKY) || defined(ENABLE_QUEEN)
@@ -509,6 +516,10 @@ Common::String parseCommandLine(Common::StringMap &settings, int argc, const cha
#ifdef ENABLE_SCUMM
DO_LONG_OPTION_INT("tempo")
END_OPTION
+#ifdef ENABLE_SCUMM_7_8
+ DO_LONG_OPTION_INT("dimuse-tempo")
+ END_OPTION
+#endif
#endif
#if defined(ENABLE_SCUMM) || defined(ENABLE_GROOVIE)
DO_LONG_OPTION_BOOL("demo-mode")
diff --git a/engines/scumm/scumm.cpp b/engines/scumm/scumm.cpp
index 74fa7ab9a3..bced8a784d 100644
--- a/engines/scumm/scumm.cpp
+++ b/engines/scumm/scumm.cpp
@@ -1236,7 +1236,10 @@ void ScummEngine_v7::setupScumm() {
else
_smushFrameRate = (_game.id == GID_FT) ? 10 : 12;
- _musicEngine = _imuseDigital = new IMuseDigital(this, _mixer, 10);
+ int dimuseTempo = CLIP(ConfMan.getInt("dimuse_tempo"), 10, 100);
+ ConfMan.setInt("dimuse_tempo", dimuseTempo);
+ ConfMan.flushToDisk();
+ _musicEngine = _imuseDigital = new IMuseDigital(this, _mixer, dimuseTempo);
ScummEngine::setupScumm();