[Scummvm-cvs-logs] scummvm master -> b0587f6af8a754b15c8ecb7eb01592fb1406b76b

m-kiewitz m_kiewitz at users.sourceforge.net
Tue Dec 22 01:52:55 CET 2015


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
b0587f6af8 SCI32: add code for torin+sq6 audio+subtitles mode


Commit: b0587f6af8a754b15c8ecb7eb01592fb1406b76b
    https://github.com/scummvm/scummvm/commit/b0587f6af8a754b15c8ecb7eb01592fb1406b76b
Author: Martin Kiewitz (m_kiewitz at users.sourceforge.net)
Date: 2015-12-22T01:53:19+01:00

Commit Message:
SCI32: add code for torin+sq6 audio+subtitles mode

also add comments about other SCI32 games
set global 90 only for lsl6 sci1.1

Changed paths:
    engines/sci/detection_tables.h
    engines/sci/sci.cpp



diff --git a/engines/sci/detection_tables.h b/engines/sci/detection_tables.h
index 6a08fdc..d37dd18 100644
--- a/engines/sci/detection_tables.h
+++ b/engines/sci/detection_tables.h
@@ -4110,7 +4110,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
 		{"resmap.000", 0, "9a3e172cde9963d0a969f26469318cec", 3403},
 		{"ressci.000", 0, "db3e290481c35c3224e9602e71e4a1f1", 5073868},
 		AD_LISTEND},
-		Common::EN_ANY, Common::kPlatformWindows, ADGF_DEMO | ADGF_UNSTABLE, GUIO4(GUIO_NOASPECT, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI)	},
+		Common::EN_ANY, Common::kPlatformWindows, ADGF_DEMO | ADGF_UNSTABLE | ADGF_CD, GUIO4(GUIO_NOASPECT, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI)	},
 
 	// Torin's Passage (Multilingual) - English Windows CD
 	// SCI interpreter version 2.100.002
@@ -4118,7 +4118,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
 		{"resmap.000", 0, "bb3b0b22ff08df54fbe2d06263409be6", 9799},
 		{"ressci.000", 0, "693a259d346c9360f4a0c11fdaae430a", 55973887},
 		AD_LISTEND},
-		Common::EN_ANY, Common::kPlatformWindows, ADGF_UNSTABLE, GUIO4(GUIO_NOASPECT, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI)	},
+		Common::EN_ANY, Common::kPlatformWindows, ADGF_UNSTABLE | ADGF_CD, GUIO4(GUIO_NOASPECT, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI)	},
 
 	// Torin's Passage (Multilingual) - Spanish Windows CD (from jvprat)
 	// Executable scanning reports "2.100.002", VERSION file reports "1.0"
@@ -4127,7 +4127,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
 		{"ressci.000", 0, "693a259d346c9360f4a0c11fdaae430a", 55973887},
 		// TODO: depend on one of the patches?
 		AD_LISTEND},
-		Common::ES_ESP, Common::kPlatformWindows, ADGF_UNSTABLE, GUIO4(GUIO_NOASPECT, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI)	},
+		Common::ES_ESP, Common::kPlatformWindows, ADGF_UNSTABLE | ADGF_CD, GUIO4(GUIO_NOASPECT, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI)	},
 
 	// Torin's Passage (Multilingual) - French Windows CD
 	// SCI interpreter version 2.100.002
@@ -4135,7 +4135,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
 		{"resmap.000", 0, "bb3b0b22ff08df54fbe2d06263409be6", 9799},
 		{"ressci.000", 0, "693a259d346c9360f4a0c11fdaae430a", 55973887},
 		AD_LISTEND},
-		Common::FR_FRA, Common::kPlatformWindows, ADGF_UNSTABLE, GUIO4(GUIO_NOASPECT, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI)	},
+		Common::FR_FRA, Common::kPlatformWindows, ADGF_UNSTABLE | ADGF_CD, GUIO4(GUIO_NOASPECT, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI)	},
 
 	// Torin's Passage - German Windows CD (from m_kiewitz)
 	// SCI interpreter version 2.100.002
@@ -4144,7 +4144,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
 		{"resmap.000", 0, "e55c3097329b3c53752301e01c6af2fb", 9787},
 		{"ressci.000", 0, "118f9bec04bfe17c4f87bbb5ddb43c18", 56127540},
 		AD_LISTEND},
-		Common::DE_DEU, Common::kPlatformWindows, ADGF_UNSTABLE, GUIO4(GUIO_NOASPECT, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI)	},
+		Common::DE_DEU, Common::kPlatformWindows, ADGF_UNSTABLE | ADGF_CD, GUIO4(GUIO_NOASPECT, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI)	},
 
 	// Torin's Passage (Multilingual) - German Windows CD
 	// SCI interpreter version 2.100.002
@@ -4152,7 +4152,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
 		{"resmap.000", 0, "bb3b0b22ff08df54fbe2d06263409be6", 9799},
 		{"ressci.000", 0, "693a259d346c9360f4a0c11fdaae430a", 55973887},
 		AD_LISTEND},
-		Common::DE_DEU, Common::kPlatformWindows, ADGF_UNSTABLE, GUIO4(GUIO_NOASPECT, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI)	},
+		Common::DE_DEU, Common::kPlatformWindows, ADGF_UNSTABLE | ADGF_CD, GUIO4(GUIO_NOASPECT, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI)	},
 
 	// Torin's Passage (Multilingual) - Italian Windows CD (from glorifindel)
 	// SCI interpreter version 2.100.002
@@ -4160,7 +4160,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
 		{"resmap.000", 0, "bb3b0b22ff08df54fbe2d06263409be6", 9799},
 		{"ressci.000", 0, "693a259d346c9360f4a0c11fdaae430a", 55973887},
 		AD_LISTEND},
-		Common::IT_ITA, Common::kPlatformWindows, ADGF_UNSTABLE, GUIO4(GUIO_NOASPECT, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI)	},
+		Common::IT_ITA, Common::kPlatformWindows, ADGF_UNSTABLE | ADGF_CD, GUIO4(GUIO_NOASPECT, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI)	},
 
 	// Torin's Passage - French Windows (from LePhilousophe)
 	// SCI interpreter version 2.100.002
@@ -4168,7 +4168,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
 		{"resmap.000", 0, "66ed46e3e56f487e688d52f05b33d0ba", 9787},
 		{"ressci.000", 0, "118f9bec04bfe17c4f87bbb5ddb43c18", 56126981},
 		AD_LISTEND},
-		Common::FR_FRA, Common::kPlatformWindows, ADGF_UNSTABLE, GUIO4(GUIO_NOASPECT, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI)	},
+		Common::FR_FRA, Common::kPlatformWindows, ADGF_UNSTABLE | ADGF_CD, GUIO4(GUIO_NOASPECT, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI)	},
 
 	// Torin's Passage - English Macintosh
 	{"torin", "", {
@@ -4180,7 +4180,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
 		{"Data6", 0, "b639487c83d1dae0e001e700f3631566", 7594881},
 		{"Data7", 0, "2afd9b5434102b89610916b904c3f73a", 7627374},
 		AD_LISTEND},
-		Common::EN_ANY, Common::kPlatformMacintosh, ADGF_MACRESFORK | ADGF_UNSTABLE, GUIO4(GUIO_NOASPECT, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
+		Common::EN_ANY, Common::kPlatformMacintosh, ADGF_MACRESFORK | ADGF_UNSTABLE | ADGF_CD, GUIO4(GUIO_NOASPECT, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
 #endif // ENABLE_SCI32
 
 	// SCI Fanmade Games
diff --git a/engines/sci/sci.cpp b/engines/sci/sci.cpp
index 542e818..eeea998 100644
--- a/engines/sci/sci.cpp
+++ b/engines/sci/sci.cpp
@@ -892,20 +892,50 @@ bool SciEngine::speechAndSubtitlesEnabled() {
 }
 
 void SciEngine::syncIngameAudioOptions() {
-	bool subtitlesOn = false;
-	bool speechOn = false;
+	bool useGlobal90 = false;
 
 	// Sync the in-game speech/subtitles settings for SCI1.1 CD games
 	if (isCD()) {
 		switch (getSciVersion()) {
 		case SCI_VERSION_1_1:
+			// All SCI1.1 CD games use global 90
+			useGlobal90 = true;
+			break;
 #ifdef ENABLE_SCI32
 		case SCI_VERSION_2:
 		case SCI_VERSION_2_1:
+			// Only use global 90 for some specific games, not all SCI32 games used this method
+			switch (_gameId) {
+			case GID_KQ7: // SCI2.1
+			case GID_GK1: // SCI2
+			case GID_GK2: // SCI2.1
+			case GID_SQ6: // SCI2.1
+			case GID_TORIN: // SCI2.1
+			case GID_QFG4: // SCI2.1
+				useGlobal90 = true;
+				break;
+			case GID_LSL6: // SCI2.1
+				// TODO: Uses gameFlags array
+				break;
+			// TODO: Unknown at the moment:
+			// Shivers - seems not to use global 90
+			// Police Quest: SWAT - unable to check
+			// Police Quest 4 - unable to check
+			// Mixed Up Mother Goose - unable to check
+			// Phantasmagoria - seems to use global 90, unable to check for subtitles atm
+			default:
+				return;
+			}
+			break;
 #endif // ENABLE_SCI32
-			subtitlesOn = ConfMan.getBool("subtitles");
-			speechOn = !ConfMan.getBool("speech_mute");
+		default:
+			return;
+		}
+
+		bool subtitlesOn = ConfMan.getBool("subtitles");
+		bool speechOn = !ConfMan.getBool("speech_mute");
 
+		if (useGlobal90) {
 			if (subtitlesOn && !speechOn) {
 				_gamestate->variables[VAR_GLOBAL][90] = make_reg(0, 1);	// subtitles
 			} else if (!subtitlesOn && speechOn) {
@@ -920,8 +950,11 @@ void SciEngine::syncIngameAudioOptions() {
 				case GID_LAURABOW2:
 				case GID_KQ6:
 #ifdef ENABLE_SCI32
+				// Unsure about Gabriel Knight 2
 				case GID_KQ7: // SCI2.1
 				case GID_GK1: // SCI2
+				case GID_SQ6: // SCI2.1, SQ6 seems to always use subtitles anyway
+				case GID_TORIN: // SCI2.1
 				case GID_QFG4: // SCI2.1
 #endif // ENABLE_SCI32
 					_gamestate->variables[VAR_GLOBAL][90] = make_reg(0, 3);	// speech + subtitles
@@ -931,9 +964,6 @@ void SciEngine::syncIngameAudioOptions() {
 					_gamestate->variables[VAR_GLOBAL][90] = make_reg(0, 2);	// speech
 				}
 			}
-			break;
-		default:
-			break;
 		}
 	}
 }






More information about the Scummvm-git-logs mailing list