SCI: changes for mother goose sci2.1
changed signature for kSetCursor sci2.1 added workarounds added separate gameid for mother goose sci2.1 svn-id: r51385
This commit is contained in:
parent
828434456f
commit
b873cf2ebf
6 changed files with 11 additions and 4 deletions
|
@ -94,7 +94,7 @@ static const PlainGameDescriptor s_sciGameTitles[] = {
|
||||||
{"sq5", "Space Quest V: The Next Mutation"},
|
{"sq5", "Space Quest V: The Next Mutation"},
|
||||||
{"islandbrain", "The Island of Dr. Brain"},
|
{"islandbrain", "The Island of Dr. Brain"},
|
||||||
{"lsl6", "Leisure Suit Larry 6: Shape Up or Slip Out!"},
|
{"lsl6", "Leisure Suit Larry 6: Shape Up or Slip Out!"},
|
||||||
{"mothergoose", "Mixed-Up Mother Goose"}, // floppy is SCI1.1, CD SCI2.1
|
{"mothergoose", "Mixed-Up Mother Goose"},
|
||||||
{"pepper", "Pepper's Adventure in Time"},
|
{"pepper", "Pepper's Adventure in Time"},
|
||||||
{"slater", "Slater & Charlie Go Camping"},
|
{"slater", "Slater & Charlie Go Camping"},
|
||||||
// === SCI2 games =========================================================
|
// === SCI2 games =========================================================
|
||||||
|
@ -107,6 +107,7 @@ static const PlainGameDescriptor s_sciGameTitles[] = {
|
||||||
{"kq7", "King's Quest VII: The Princeless Bride"},
|
{"kq7", "King's Quest VII: The Princeless Bride"},
|
||||||
// TODO: King's Questions
|
// TODO: King's Questions
|
||||||
{"lsl6hires", "Leisure Suit Larry 6: Shape Up or Slip Out!"},
|
{"lsl6hires", "Leisure Suit Larry 6: Shape Up or Slip Out!"},
|
||||||
|
{"mothergoosehires","Mixed-Up Mother Goose"},
|
||||||
{"phantasmagoria", "Phantasmagoria"},
|
{"phantasmagoria", "Phantasmagoria"},
|
||||||
{"pqswat", "Police Quest: SWAT"},
|
{"pqswat", "Police Quest: SWAT"},
|
||||||
{"shivers", "Shivers"},
|
{"shivers", "Shivers"},
|
||||||
|
@ -169,6 +170,7 @@ static const GameIdStrToEnum s_gameIdStrToEnum[] = {
|
||||||
{ "lsl6hires", GID_LSL6HIRES },
|
{ "lsl6hires", GID_LSL6HIRES },
|
||||||
{ "lsl7", GID_LSL7 },
|
{ "lsl7", GID_LSL7 },
|
||||||
{ "mothergoose", GID_MOTHERGOOSE },
|
{ "mothergoose", GID_MOTHERGOOSE },
|
||||||
|
{ "mothergoosehires",GID_MOTHERGOOSEHIRES },
|
||||||
{ "msastrochicken", GID_MSASTROCHICKEN },
|
{ "msastrochicken", GID_MSASTROCHICKEN },
|
||||||
{ "pepper", GID_PEPPER },
|
{ "pepper", GID_PEPPER },
|
||||||
{ "phantasmagoria", GID_PHANTASMAGORIA },
|
{ "phantasmagoria", GID_PHANTASMAGORIA },
|
||||||
|
|
|
@ -1912,7 +1912,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
|
||||||
#ifdef ENABLE_SCI32
|
#ifdef ENABLE_SCI32
|
||||||
// Mixed-Up Mother Goose Deluxe - English Windows/DOS CD (supplied by markcoolio in bug report #2723810)
|
// Mixed-Up Mother Goose Deluxe - English Windows/DOS CD (supplied by markcoolio in bug report #2723810)
|
||||||
// Executable scanning reports "2.100.002"
|
// Executable scanning reports "2.100.002"
|
||||||
{"mothergoose", "", {
|
{"mothergoosehires", "", {
|
||||||
{"resource.map", 0, "5159a1578c4306bfe070a3e4d8c2e1d3", 4741},
|
{"resource.map", 0, "5159a1578c4306bfe070a3e4d8c2e1d3", 4741},
|
||||||
{"resource.000", 0, "1926925c95d82f0999590e93b02887c5", 15150768},
|
{"resource.000", 0, "1926925c95d82f0999590e93b02887c5", 15150768},
|
||||||
{NULL, 0, NULL, 0}},
|
{NULL, 0, NULL, 0}},
|
||||||
|
@ -1920,7 +1920,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
|
||||||
|
|
||||||
// Mixed-Up Mother Goose Deluxe - Multilingual Windows CD (English/French/German/Spanish)
|
// Mixed-Up Mother Goose Deluxe - Multilingual Windows CD (English/French/German/Spanish)
|
||||||
// Executable scanning reports "2.100.002"
|
// Executable scanning reports "2.100.002"
|
||||||
{"mothergoose", "", {
|
{"mothergoosehires", "", {
|
||||||
{"resmap.000", 0, "ef611af561898dcfea87846919ebf3eb", 4969},
|
{"resmap.000", 0, "ef611af561898dcfea87846919ebf3eb", 4969},
|
||||||
{"ressci.000", 0, "227685bc59d90821978d330713e44a7a", 17205800},
|
{"ressci.000", 0, "227685bc59d90821978d330713e44a7a", 17205800},
|
||||||
{NULL, 0, NULL, 0}},
|
{NULL, 0, NULL, 0}},
|
||||||
|
|
|
@ -416,6 +416,8 @@ static SciKernelMapEntry s_kernelMap[] = {
|
||||||
{ MAP_CALL(Said), SIG_EVERYWHERE, "[r0]", NULL, NULL },
|
{ MAP_CALL(Said), SIG_EVERYWHERE, "[r0]", NULL, NULL },
|
||||||
{ MAP_CALL(SaveGame), SIG_EVERYWHERE, "rir(r)", NULL, NULL },
|
{ MAP_CALL(SaveGame), SIG_EVERYWHERE, "rir(r)", NULL, NULL },
|
||||||
{ MAP_CALL(ScriptID), SIG_EVERYWHERE, "[io](i)", NULL, NULL },
|
{ MAP_CALL(ScriptID), SIG_EVERYWHERE, "[io](i)", NULL, NULL },
|
||||||
|
{ MAP_CALL(SetCursor), SIG_SCI21, SIGFOR_ALL, "i(i)([io])(i*)", NULL, NULL },
|
||||||
|
// TODO: SCI2.1 may supply an object optionally (mother goose sci21 right on startup) - find out why
|
||||||
{ MAP_CALL(SetCursor), SIG_EVERYWHERE, "i(i*)", NULL, NULL },
|
{ MAP_CALL(SetCursor), SIG_EVERYWHERE, "i(i*)", NULL, NULL },
|
||||||
{ MAP_CALL(SetDebug), SIG_EVERYWHERE, "(i*)", NULL, NULL },
|
{ MAP_CALL(SetDebug), SIG_EVERYWHERE, "(i*)", NULL, NULL },
|
||||||
{ MAP_CALL(SetJump), SIG_EVERYWHERE, "oiii", NULL, NULL },
|
{ MAP_CALL(SetJump), SIG_EVERYWHERE, "oiii", NULL, NULL },
|
||||||
|
|
|
@ -169,7 +169,7 @@ static bool validate_variable(reg_t *r, reg_t *stack_base, int type, int max, in
|
||||||
} else {
|
} else {
|
||||||
// WORKAROUND: Mixed-Up Mother Goose tries to use an invalid parameter in Event::new().
|
// WORKAROUND: Mixed-Up Mother Goose tries to use an invalid parameter in Event::new().
|
||||||
// Just skip around it here so we don't error out in validate_arithmetic.
|
// Just skip around it here so we don't error out in validate_arithmetic.
|
||||||
if (g_sci->getGameId() == GID_MOTHERGOOSE && getSciVersion() <= SCI_VERSION_1_1 && type == VAR_PARAM && index == 1)
|
if (g_sci->getGameId() == GID_MOTHERGOOSE && type == VAR_PARAM && index == 1)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
debugC(2, kDebugLevelVM, "%s", txt.c_str());
|
debugC(2, kDebugLevelVM, "%s", txt.c_str());
|
||||||
|
|
|
@ -97,6 +97,8 @@ const SciWorkaroundEntry uninitializedReadWorkarounds[] = {
|
||||||
{ GID_LSL6HIRES, 0, 85, 0, "LL6Inv", "init", -1, 0, { WORKAROUND_FAKE, 0 } }, // on startup
|
{ GID_LSL6HIRES, 0, 85, 0, "LL6Inv", "init", -1, 0, { WORKAROUND_FAKE, 0 } }, // on startup
|
||||||
{ GID_LSL6HIRES, -1, 64950, 1, "Feature", "handleEvent", -1, 0, { WORKAROUND_FAKE, 0 } }, // at least when entering swimming pool area
|
{ GID_LSL6HIRES, -1, 64950, 1, "Feature", "handleEvent", -1, 0, { WORKAROUND_FAKE, 0 } }, // at least when entering swimming pool area
|
||||||
{ GID_LSL6HIRES, -1, 64964, 0, "DPath", "init", -1, 1, { WORKAROUND_FAKE, 0 } }, // during the game
|
{ GID_LSL6HIRES, -1, 64964, 0, "DPath", "init", -1, 1, { WORKAROUND_FAKE, 0 } }, // during the game
|
||||||
|
{ GID_MOTHERGOOSEHIRES,-1,64950, 1, "Feature", "handleEvent", -1, 0, { WORKAROUND_FAKE, 0 } }, // right when clicking on a child at the start and probably also later
|
||||||
|
{ GID_MOTHERGOOSEHIRES,-1,64950, 1, "View", "handleEvent", -1, 0, { WORKAROUND_FAKE, 0 } }, // see above
|
||||||
{ GID_QFG2, -1, 71, 0, "theInvSheet", "doit", -1, 1, { WORKAROUND_FAKE, 0 } }, // accessing the inventory
|
{ GID_QFG2, -1, 71, 0, "theInvSheet", "doit", -1, 1, { WORKAROUND_FAKE, 0 } }, // accessing the inventory
|
||||||
{ GID_SQ1, 103, 103, 0, "hand", "internalEvent", -1, 1, { WORKAROUND_FAKE, 0 } }, // spanish (and maybe early versions?) only: when moving cursor over input pad
|
{ GID_SQ1, 103, 103, 0, "hand", "internalEvent", -1, 1, { WORKAROUND_FAKE, 0 } }, // spanish (and maybe early versions?) only: when moving cursor over input pad
|
||||||
{ GID_SQ1, 103, 103, 0, "hand", "internalEvent", -1, 2, { WORKAROUND_FAKE, 0 } }, // spanish (and maybe early versions?) only: when moving cursor over input pad
|
{ GID_SQ1, 103, 103, 0, "hand", "internalEvent", -1, 2, { WORKAROUND_FAKE, 0 } }, // spanish (and maybe early versions?) only: when moving cursor over input pad
|
||||||
|
|
|
@ -143,6 +143,7 @@ enum SciGameId {
|
||||||
GID_LSL6HIRES, // We have a separate ID for LSL6 SCI32, because it's actually a completely different game
|
GID_LSL6HIRES, // We have a separate ID for LSL6 SCI32, because it's actually a completely different game
|
||||||
GID_LSL7,
|
GID_LSL7,
|
||||||
GID_MOTHERGOOSE,
|
GID_MOTHERGOOSE,
|
||||||
|
GID_MOTHERGOOSEHIRES, // We have a separate ID for Mother Goose SCI32, because it's actually a completely different game
|
||||||
GID_MSASTROCHICKEN,
|
GID_MSASTROCHICKEN,
|
||||||
GID_PEPPER,
|
GID_PEPPER,
|
||||||
GID_PHANTASMAGORIA,
|
GID_PHANTASMAGORIA,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue