[Scummvm-git-logs] scummvm master -> 5063bc2288b9a55019eed1662212c3f5aeeeeef2
sluicebox
noreply at scummvm.org
Fri Dec 17 02:35:26 UTC 2021
This automated email contains information about 3 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
2cbac8baa5 SCI: Update detection entries for Japanese games
46cdbecbc6 SCI: Fix uninitialied variable in multi-language parser
5063bc2288 SCI: Fix PQ3 lockup when showing judge evidence
Commit: 2cbac8baa52bc39dab757addc2de51c66e3de0d0
https://github.com/scummvm/scummvm/commit/2cbac8baa52bc39dab757addc2de51c66e3de0d0
Author: sluicebox (22204938+sluicebox at users.noreply.github.com)
Date: 2021-12-16T21:31:19-05:00
Commit Message:
SCI: Update detection entries for Japanese games
- Remove unnecessary English entry for SQ4
- Update game flags for KQ5 and QFG1
Changed paths:
engines/sci/detection_tables.h
diff --git a/engines/sci/detection_tables.h b/engines/sci/detection_tables.h
index e501520c7a..7c8a2c79eb 100644
--- a/engines/sci/detection_tables.h
+++ b/engines/sci/detection_tables.h
@@ -1983,7 +1983,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.000", 0, "71afd220d46bde1109c58e6acc0f3a01", 469094},
{"resource.001", 0, "72a569f46f1abf2d9d2b1526ad3799c3", 12808839},
AD_LISTEND},
- Common::JA_JPN, Common::kPlatformFMTowns, ADGF_ADDENGLISH, GUIO4(GUIO_NOASPECT, GAMEOPTION_ORIGINAL_SAVELOAD, GUIO_MIDITOWNS, GAMEOPTION_RGB_RENDERING) },
+ Common::JA_JPN, Common::kPlatformFMTowns, ADGF_ADDENGLISH, GUIO_STD16_HIRES },
// King's Quest 5 - Japanese PC-98 Floppy 0.000.015 (supplied by omer_mor in bug report #5384)
{"kq5", "", {
@@ -4456,7 +4456,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.002", 0, "a21451ef6fa8179bd4b22c4950004c44", 1136968},
{"resource.003", 0, "a21451ef6fa8179bd4b22c4950004c44", 769897},
AD_LISTEND},
- Common::JA_JPN, Common::kPlatformPC98, ADGF_ADDENGLISH, GUIO4(GUIO_NOSPEECH, GUIO_NOASPECT, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_RGB_RENDERING) },
+ Common::JA_JPN, Common::kPlatformPC98, ADGF_ADDENGLISH, GUIO7(GUIO_NOSPEECH, GUIO_NOASPECT, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_MIDI_MODE, GAMEOPTION_RGB_RENDERING) },
// Quest for Glory 1 - Japanese PC-98 5.25" Floppy (also includes English language)
// Executable scanning reports "S.old.201"
@@ -4466,7 +4466,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
{"resource.002", 0, "a21451ef6fa8179bd4b22c4950004c44", 1147121},
{"resource.003", 0, "a21451ef6fa8179bd4b22c4950004c44", 777575},
AD_LISTEND},
- Common::JA_JPN, Common::kPlatformPC98, ADGF_ADDENGLISH, GUIO4(GUIO_NOSPEECH, GUIO_NOASPECT, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_RGB_RENDERING) },
+ Common::JA_JPN, Common::kPlatformPC98, ADGF_ADDENGLISH, GUIO7(GUIO_NOSPEECH, GUIO_NOASPECT, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_MIDI_MODE, GAMEOPTION_RGB_RENDERING) },
// Quest for Glory 1 - English Amiga
// Executable scanning reports "1.002.020"
@@ -5430,16 +5430,6 @@ static const struct ADGameDescription SciGameDescriptions[] = {
AD_LISTEND},
Common::JA_JPN, Common::kPlatformPC98, ADGF_ADDENGLISH, GUIO_STD16_HIRES },
- // Space Quest 4 - Japanese PC-98 5.25" Floppy (also includes english language)
- // SCI interpreter version 1.000.1068
- {"sq4", "", {
- {"resource.map", 0, "ca7bba01019222b6f3e54e9051067a99", 5283},
- {"resource.000", 0, "161d719f38ed98d33f058a8cf3dc09c3", 952909},
- {"resource.001", 0, "454684e3a7a68cbca073945e50778447", 1187088},
- {"resource.002", 0, "6dc668326cc22cb9e8bd8ca9e68d2a66", 1181249},
- AD_LISTEND},
- Common::EN_ANY, Common::kPlatformPC98, ADGF_ADDENGLISH, GUIO_STD16_HIRES },
-
// Space Quest 4 - English DOS CD (from the Space Quest Collection)
// Executable scanning reports "1.001.064", VERSION file reports "1.0"
{"sq4", "CD", {
Commit: 46cdbecbc6c4c546f496ff6bae03ea6ea8ef6d35
https://github.com/scummvm/scummvm/commit/46cdbecbc6c4c546f496ff6bae03ea6ea8ef6d35
Author: sluicebox (22204938+sluicebox at users.noreply.github.com)
Date: 2021-12-16T21:31:19-05:00
Commit Message:
SCI: Fix uninitialied variable in multi-language parser
Fixes QFG1 Japanese message display when messages are set to
Japanese and subtitles are enabled
Huge thanks to DarkSoul for verifying original PC-98 behavior
Changed paths:
engines/sci/engine/state.cpp
diff --git a/engines/sci/engine/state.cpp b/engines/sci/engine/state.cpp
index 9b5ab9acb4..ae77cac163 100644
--- a/engines/sci/engine/state.cpp
+++ b/engines/sci/engine/state.cpp
@@ -221,6 +221,9 @@ static kLanguage charToLanguage(const char c) {
Common::String SciEngine::getSciLanguageString(const Common::String &str, kLanguage requestedLanguage, kLanguage *secondaryLanguage, uint16 *languageSplitter) const {
kLanguage foundLanguage = K_LANG_NONE;
const byte *textPtr = (const byte *)str.c_str();
+ if (secondaryLanguage) {
+ *secondaryLanguage = K_LANG_NONE;
+ }
byte curChar = 0;
byte curChar2 = 0;
Commit: 5063bc2288b9a55019eed1662212c3f5aeeeeef2
https://github.com/scummvm/scummvm/commit/5063bc2288b9a55019eed1662212c3f5aeeeeef2
Author: sluicebox (22204938+sluicebox at users.noreply.github.com)
Date: 2021-12-16T21:31:19-05:00
Commit Message:
SCI: Fix PQ3 lockup when showing judge evidence
Changed paths:
engines/sci/engine/script_patches.cpp
diff --git a/engines/sci/engine/script_patches.cpp b/engines/sci/engine/script_patches.cpp
index 27ab328d27..04e429287c 100644
--- a/engines/sci/engine/script_patches.cpp
+++ b/engines/sci/engine/script_patches.cpp
@@ -11434,6 +11434,35 @@ static const uint16 pq3PatchHouseFireRepeats[] = {
PATCH_END
};
+// Showing a second piece of evidence to the judge while having the locket in
+// inventory locks up the game. The hands-off script givenTwo doesn't set a cue
+// in state 5, preventing the script from ever advancing and the player from
+// regaining control.
+//
+// We fix this by setting a 10 second delay as Sierra did in later versions.
+//
+// Applies to: English PC VGA Floppy
+// Responsible method: givenTwo:changeState(5)
+static const uint16 pq3SignatureJudgeEvidenceLockup[] = {
+ 0x72, SIG_ADDTOOFFSET(+2), // lofsa ijudge
+ 0x36, // push
+ 0x39, 0x2c, // pushi 2c
+ 0x39, 0x10, // pushi 10
+ 0x45, 0x10, SIG_MAGICDWORD, 0x06, // callb proc0_16
+ 0x32, SIG_UINT16(0x0022), // jmp 0022 [ end of method ]
+ SIG_END
+};
+
+static const uint16 pq3PatchJudgeEvidenceLockup[] = {
+ 0x74, PATCH_ADDTOOFFSET(+2), // lofss ijudge
+ 0x39, 0x2c, // pushi 2c
+ 0x39, 0x10, // pushi 10
+ 0x45, 0x10, 0x06, // callb proc0_16
+ 0x35, 0x0a, // ldi 0a
+ 0x65, 0x12, // aTop seconds [ seconds = 10 ]
+ PATCH_END
+};
+
// When driving at high speeds, road signs don't always update. The scripts
// implicitly depend on the sign being already hidden before showing it, as
// they don't redraw the view. roadSignScript sets a three second timer before
@@ -11492,13 +11521,14 @@ static const uint16 pq3PatchNrsSpeedThrottle[] = {
PATCH_END
};
-// script, description, signature patch
+// script, description, signature patch
static const SciScriptPatcherEntry pq3Signatures[] = {
- { true, 25, "fix road sign updates", 1, pq3SignatureRoadSignUpdates, pq3PatchRoadSignUpdates },
- { true, 33, "prevent house fire repeating", 1, pq3SignatureHouseFireRepeats, pq3PatchHouseFireRepeats },
- { true, 36, "give locket missing points", 1, pq3SignatureGiveLocketPoints, pq3PatchGiveLocketPoints },
- { true, 36, "doctor mouth speed", 1, pq3SignatureDoctorMouthSpeed, pq3PatchDoctorMouthSpeed },
- { true, 994, "NRS: remove speed throttle", 1, pq3SignatureNrsSpeedThrottle, pq3PatchNrsSpeedThrottle },
+ { true, 25, "fix road sign updates", 1, pq3SignatureRoadSignUpdates, pq3PatchRoadSignUpdates },
+ { true, 33, "prevent house fire repeating", 1, pq3SignatureHouseFireRepeats, pq3PatchHouseFireRepeats },
+ { true, 36, "give locket missing points", 1, pq3SignatureGiveLocketPoints, pq3PatchGiveLocketPoints },
+ { true, 36, "doctor mouth speed", 1, pq3SignatureDoctorMouthSpeed, pq3PatchDoctorMouthSpeed },
+ { true, 44, "fix judge evidence lockup", 1, pq3SignatureJudgeEvidenceLockup, pq3PatchJudgeEvidenceLockup },
+ { true, 994, "NRS: remove speed throttle", 1, pq3SignatureNrsSpeedThrottle, pq3PatchNrsSpeedThrottle },
SCI_SIGNATUREENTRY_TERMINATOR
};
More information about the Scummvm-git-logs
mailing list