[Scummvm-cvs-logs] scummvm master -> 98ec26754329b13170e045c7aa34915be8be4758
bluegr
bluegr at gmail.com
Wed Jan 2 11:44:07 CET 2013
This automated email contains information about 5 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
3249278a51 GROOVIE: Simplify the movie speed settings and add a GUI option
307972a549 TRANSLATION: Add the new translatable game file in the groovie engine
829624f4d6 README: Update documentation on the recently changed t7g movie speed settings
5c44f3e953 NEWS: Mention the change in the movie speed options of the 7th Guest
98ec267543 MT-32: Sync with the latest changes in munt
Commit: 3249278a51c666ae75a92d7119790ea551a81351
https://github.com/scummvm/scummvm/commit/3249278a51c666ae75a92d7119790ea551a81351
Author: Filippos Karapetis (bluegr at gmail.com)
Date: 2013-01-02T02:42:53-08:00
Commit Message:
GROOVIE: Simplify the movie speed settings and add a GUI option
This removes the "iOS" speed setting, where some movies could get out
of sync. Two movie options are now available, "normal" and "fast" movie
speed, which is the old "tweaked" setting. With the "fast" movie speed,
the movie speed is changed to match that of the iOS version, but only
in movies with sound. Movies without sound (like the supernatural
animations, i.e. the "teeth" icon in-game) are still played at their
regular speed, to avoid music sync issues.
Changed paths:
engines/groovie/detection.cpp
engines/groovie/groovie.cpp
engines/groovie/groovie.h
engines/groovie/vdx.cpp
diff --git a/engines/groovie/detection.cpp b/engines/groovie/detection.cpp
index e06dace..65452f5 100644
--- a/engines/groovie/detection.cpp
+++ b/engines/groovie/detection.cpp
@@ -25,9 +25,12 @@
#include "groovie/saveload.h"
#include "common/system.h"
+#include "common/translation.h"
namespace Groovie {
+#define GAMEOPTION_T7G_FAST_MOVIE_SPEED GUIO_GAMEOPTIONS1
+
static const PlainGameDescriptor groovieGames[] = {
// Games
{"t7g", "The 7th Guest"},
@@ -52,7 +55,7 @@ static const GroovieGameDescription gameDescriptions[] = {
"t7g", "",
AD_ENTRY1s("script.grv", "d1b8033b40aa67c076039881eccce90d", 16659),
Common::EN_ANY, Common::kPlatformPC, ADGF_NO_FLAGS,
- GUIO4(GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIGM, GUIO_NOASPECT)
+ GUIO5(GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIGM, GUIO_NOASPECT, GAMEOPTION_T7G_FAST_MOVIE_SPEED)
},
kGroovieT7G, 0
},
@@ -63,7 +66,7 @@ static const GroovieGameDescription gameDescriptions[] = {
"t7g", "",
AD_ENTRY1s("T7GMac", "acdc4a58dd3f007f65e99b99d78e0bce", 1814029),
Common::EN_ANY, Common::kPlatformMacintosh, ADGF_MACRESFORK,
- GUIO4(GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIGM, GUIO_NOASPECT)
+ GUIO5(GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIGM, GUIO_NOASPECT, GAMEOPTION_T7G_FAST_MOVIE_SPEED)
},
kGroovieT7G, 0
},
@@ -79,7 +82,7 @@ static const GroovieGameDescription gameDescriptions[] = {
"t7g", "",
AD_ENTRY1s("T7GMac", "6bdee8d0f9eef6d58d02fcd7deec3fb2", 1830783),
Common::EN_ANY, Common::kPlatformMacintosh, ADGF_MACRESFORK,
- GUIO4(GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIGM, GUIO_NOASPECT)
+ GUIO5(GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIGM, GUIO_NOASPECT, GAMEOPTION_T7G_FAST_MOVIE_SPEED)
},
kGroovieT7G, 0
},
@@ -90,7 +93,7 @@ static const GroovieGameDescription gameDescriptions[] = {
"t7g", "",
AD_ENTRY1s("T7GMac", "0d595d4b44ae1814082938d051e5174e", 1830783),
Common::EN_ANY, Common::kPlatformMacintosh, ADGF_MACRESFORK,
- GUIO4(GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIGM, GUIO_NOASPECT)
+ GUIO5(GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIGM, GUIO_NOASPECT, GAMEOPTION_T7G_FAST_MOVIE_SPEED)
},
kGroovieT7G, 0
},
@@ -106,7 +109,7 @@ static const GroovieGameDescription gameDescriptions[] = {
{ NULL, 0, NULL, 0}
},
Common::RU_RUS, Common::kPlatformPC, ADGF_NO_FLAGS,
- GUIO4(GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIGM, GUIO_NOASPECT)
+ GUIO5(GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIGM, GUIO_NOASPECT, GAMEOPTION_T7G_FAST_MOVIE_SPEED)
},
kGroovieT7G, 0
},
@@ -120,7 +123,7 @@ static const GroovieGameDescription gameDescriptions[] = {
{ NULL, 0, NULL, 0}
},
Common::EN_ANY, Common::kPlatformIOS, ADGF_NO_FLAGS,
- GUIO2(GUIO_NOMIDI, GUIO_NOASPECT)
+ GUIO3(GUIO_NOMIDI, GUIO_NOASPECT, GAMEOPTION_T7G_FAST_MOVIE_SPEED)
},
kGroovieT7G, 0
},
@@ -302,9 +305,23 @@ static const char *directoryGlobs[] = {
0
};
+static const ADExtraGuiOptionsMap optionsList[] = {
+ {
+ GAMEOPTION_T7G_FAST_MOVIE_SPEED,
+ {
+ _s("Fast movie speed"),
+ _s("Play movies at an increased speed"),
+ "fast_movie_speed",
+ false
+ }
+ },
+
+ AD_EXTRA_GUI_OPTIONS_TERMINATOR
+};
+
class GroovieMetaEngine : public AdvancedMetaEngine {
public:
- GroovieMetaEngine() : AdvancedMetaEngine(gameDescriptions, sizeof(GroovieGameDescription), groovieGames) {
+ GroovieMetaEngine() : AdvancedMetaEngine(gameDescriptions, sizeof(GroovieGameDescription), groovieGames, optionsList) {
_singleid = "groovie";
// Use kADFlagUseExtraAsHint in order to distinguish the 11th hour from
diff --git a/engines/groovie/groovie.cpp b/engines/groovie/groovie.cpp
index 16358bf..5ade442 100644
--- a/engines/groovie/groovie.cpp
+++ b/engines/groovie/groovie.cpp
@@ -60,13 +60,8 @@ GroovieEngine::GroovieEngine(OSystem *syst, const GroovieGameDescription *gd) :
SearchMan.addSubDirectoryMatching(gameDataDir, "MIDI");
_modeSpeed = kGroovieSpeedNormal;
- if (ConfMan.hasKey("t7g_speed")) {
- Common::String speed = ConfMan.get("t7g_speed");
- if (speed.equals("im_an_ios"))
- _modeSpeed = kGroovieSpeediOS;
- else if (speed.equals("tweaked"))
- _modeSpeed = kGroovieSpeedTweaked;
- }
+ if (ConfMan.hasKey("fast_movie_speed") && ConfMan.getBool("fast_movie_speed"))
+ _modeSpeed = kGroovieSpeedFast;
// Initialize the custom debug levels
DebugMan.addDebugChannel(kGroovieDebugAll, "All", "Debug everything");
diff --git a/engines/groovie/groovie.h b/engines/groovie/groovie.h
index c66e54b..79abc13 100644
--- a/engines/groovie/groovie.h
+++ b/engines/groovie/groovie.h
@@ -74,15 +74,14 @@ enum DebugLevels {
/**
* This enum reflects the available movie speed settings:
- * - Normal: both movies and 'teeth' animations are played at a normal speed
- * - Tweaked: movies are played at a normal speed, 'teeth' animations at
- increased speed
- * - iOS: both movies and 'teeth' animations are played at increased speed
+ * - Normal: play videos at a normal speed
+ * - Fast: play videos with audio at a fast speed. Videos without audio,
+ * like teeth animations, are played at their regular speed to avoid
+ * audio sync issues
*/
enum GameSpeed {
kGroovieSpeedNormal,
- kGroovieSpeediOS,
- kGroovieSpeedTweaked
+ kGroovieSpeedFast
};
struct GroovieGameDescription;
diff --git a/engines/groovie/vdx.cpp b/engines/groovie/vdx.cpp
index b3fcf46..8786e75 100644
--- a/engines/groovie/vdx.cpp
+++ b/engines/groovie/vdx.cpp
@@ -88,7 +88,7 @@ uint16 VDXPlayer::loadInternal() {
// Enable highspeed if we're not obeying fps, and not marked as special
// This will be disabled in chunk audio if we're actually an audio vdx
- if ( _vm->_modeSpeed == kGroovieSpeediOS || (_vm->_modeSpeed == kGroovieSpeedTweaked && ((_flags & (1 << 15)) == 0)))
+ if (_vm->_modeSpeed == kGroovieSpeedFast && ((_flags & (1 << 15)) == 0))
setOverrideSpeed(true);
if (_flagOnePrev && !_flagOne && !_flagEight) {
Commit: 307972a549070c6abe1ff95bcf4cd217fd299c5e
https://github.com/scummvm/scummvm/commit/307972a549070c6abe1ff95bcf4cd217fd299c5e
Author: Filippos Karapetis (bluegr at gmail.com)
Date: 2013-01-02T02:42:54-08:00
Commit Message:
TRANSLATION: Add the new translatable game file in the groovie engine
Changed paths:
po/POTFILES
diff --git a/po/POTFILES b/po/POTFILES
index 72c6fb1..f79391d 100644
--- a/po/POTFILES
+++ b/po/POTFILES
@@ -40,6 +40,7 @@ engines/agos/animation.cpp
engines/gob/inter_playtoons.cpp
engines/gob/inter_v2.cpp
engines/gob/inter_v5.cpp
+engines/groovie/detection.cpp
engines/groovie/script.cpp
engines/kyra/detection.cpp
engines/kyra/lol.cpp
Commit: 829624f4d6583e473bd490d0c75996f1fad17755
https://github.com/scummvm/scummvm/commit/829624f4d6583e473bd490d0c75996f1fad17755
Author: Filippos Karapetis (bluegr at gmail.com)
Date: 2013-01-02T02:42:54-08:00
Commit Message:
README: Update documentation on the recently changed t7g movie speed settings
Changed paths:
README
diff --git a/README b/README
index b7b8176..f39df9a 100644
--- a/README
+++ b/README
@@ -2161,8 +2161,11 @@ keywords:
The 7th Guest adds the following non-standard keyword:
- t7g_speed string Video playback speed (normal, tweaked,
- im_an_ios)
+ fast_movie_speed bool If true, movies are played at an increased
+ speed, matching the speed of the iOS version.
+ Movies without sound are still played at their
+ normal speed, to avoid music synchronization
+ issues
8.2) Custom game options that can be toggled via the GUI
Commit: 5c44f3e95351d8ab7cb4a041b701da814ff77fea
https://github.com/scummvm/scummvm/commit/5c44f3e95351d8ab7cb4a041b701da814ff77fea
Author: Filippos Karapetis (bluegr at gmail.com)
Date: 2013-01-02T02:42:54-08:00
Commit Message:
NEWS: Mention the change in the movie speed options of the 7th Guest
Changed paths:
NEWS
diff --git a/NEWS b/NEWS
index 74b8b04..abbec87 100644
--- a/NEWS
+++ b/NEWS
@@ -33,6 +33,13 @@ For a more comprehensive changelog of the latest experimental code, see:
protection, this extra line can be toggled by the ScummVM copy protection
command line option.
+ Groovie:
+ - Simplified the movie speed options, and added a custom option for The 7th
+ Guest. Movie options are now "normal" and "fast", with the latter changing
+ the movie speed in T7G to match the faster movie speed of the iOS version.
+ The game entry might need to be readded in the launcher for the new setting
+ to appear.
+
SAGA:
- Added music support for the Macintosh version of I Have No Mouth and, I
Must Scream.
Commit: 98ec26754329b13170e045c7aa34915be8be4758
https://github.com/scummvm/scummvm/commit/98ec26754329b13170e045c7aa34915be8be4758
Author: Filippos Karapetis (bluegr at gmail.com)
Date: 2013-01-02T02:42:54-08:00
Commit Message:
MT-32: Sync with the latest changes in munt
This syncs our code with munt commits 3f0db2d and 2c5f314
Changed paths:
audio/softsynth/mt32/Partial.cpp
audio/softsynth/mt32/Tables.cpp
audio/softsynth/mt32/Tables.h
diff --git a/audio/softsynth/mt32/Partial.cpp b/audio/softsynth/mt32/Partial.cpp
index 58878a3..a4d1ab0 100644
--- a/audio/softsynth/mt32/Partial.cpp
+++ b/audio/softsynth/mt32/Partial.cpp
@@ -284,8 +284,12 @@ unsigned long Partial::generateSamples(float *partialBuf, unsigned long length)
// res corresponds to a value set in an LA32 register
Bit8u res = patchCache->srcPartial.tvf.resonance + 1;
- // Using tiny exact table for computation of EXP2F(1.0f - (32 - res) / 4.0f)
- float resAmp = tables.resAmpMax[res];
+ float resAmp;
+ {
+ // resAmp = EXP2F(1.0f - (32 - res) / 4.0f);
+ static const float resAmpFactor = EXP2F(-7);
+ resAmp = EXP2I(res << 10) * resAmpFactor;
+ }
// The cutoffModifier may not be supposed to be directly added to the cutoff -
// it may for example need to be multiplied in some way.
@@ -317,23 +321,26 @@ unsigned long Partial::generateSamples(float *partialBuf, unsigned long length)
relWavePos -= waveLen;
}
+ // Ratio of positive segment to wave length
float pulseLen = 0.5f;
if (pulseWidthVal > 128) {
- pulseLen += tables.pulseLenFactor[pulseWidthVal - 128];
+ // pulseLen = EXP2F((64 - pulseWidthVal) / 64);
+ static const float pulseLenFactor = EXP2F(-192 / 64);
+ pulseLen = EXP2I((256 - pulseWidthVal) << 6) * pulseLenFactor;
}
pulseLen *= waveLen;
- float lLen = pulseLen - cosineLen;
+ float hLen = pulseLen - cosineLen;
// Ignore pulsewidths too high for given freq
- if (lLen < 0.0f) {
- lLen = 0.0f;
+ if (hLen < 0.0f) {
+ hLen = 0.0f;
}
// Ignore pulsewidths too high for given freq and cutoff
- float hLen = waveLen - lLen - 2 * cosineLen;
- if (hLen < 0.0f) {
- hLen = 0.0f;
+ float lLen = waveLen - hLen - 2 * cosineLen;
+ if (lLen < 0.0f) {
+ lLen = 0.0f;
}
// Correct resAmp for cutoff in range 50..66
diff --git a/audio/softsynth/mt32/Tables.cpp b/audio/softsynth/mt32/Tables.cpp
index b6e6384..5353a74 100644
--- a/audio/softsynth/mt32/Tables.cpp
+++ b/audio/softsynth/mt32/Tables.cpp
@@ -72,24 +72,12 @@ Tables::Tables() {
//synth->printDebug("%d: %d", i, pulseWidth100To255[i]);
}
- // Ratio of negative segment to wave length
- for (int i = 0; i < 128; i++) {
- // Formula determined from sample analysis.
- float pt = 0.5f / 127.0f * i;
- pulseLenFactor[i] = (1.241857812f - pt) * pt; // seems to be 2 ^ (5 / 16) = 1.241857812f
- }
-
// The LA32 chip presumably has such a table inside as the internal computaions seem to be performed using fixed point math with 12-bit fractions
for (int i = 0; i < 4096; i++) {
exp2[i] = EXP2F(i / 4096.0f);
}
// found from sample analysis
- for (int i = 0; i < 32; i++) {
- resAmpMax[i] = EXP2F(1.0f - (32 - i) / 4.0f);
- }
-
- // found from sample analysis
resAmpFadeFactor[7] = 1.0f / 8.0f;
resAmpFadeFactor[6] = 2.0f / 8.0f;
resAmpFadeFactor[5] = 3.0f / 8.0f;
diff --git a/audio/softsynth/mt32/Tables.h b/audio/softsynth/mt32/Tables.h
index b353cf4..c3e80e7 100644
--- a/audio/softsynth/mt32/Tables.h
+++ b/audio/softsynth/mt32/Tables.h
@@ -57,8 +57,6 @@ public:
Bit8u pulseWidth100To255[101];
float exp2[4096];
- float pulseLenFactor[128];
- float resAmpMax[32];
float resAmpFadeFactor[8];
float sinf10[5120];
};
More information about the Scummvm-git-logs
mailing list