diff --git a/TODO b/TODO index a8d9537ad05..fb2fa639d12 100644 --- a/TODO +++ b/TODO @@ -281,7 +281,7 @@ SCUMM (^ Need to find where they are used) - Add shadows support for akos codecs in HE90+ games, uses XMAP resources. - Add addtional arrayOps cases (For smaller/lost). - - Add support for array sorting (Need to find where it is used). + - Add support for array sorting (Used in lost/smaller). - Fix actor glitches in pajama2 - Fix array issues in Buzzy games (Kirben) - Fix inventory background/items disappearing in puttzoo/zoodemo/putttime/timedemo diff --git a/scumm/script_v100he.cpp b/scumm/script_v100he.cpp index ec3702819ee..631e31d18d8 100644 --- a/scumm/script_v100he.cpp +++ b/scumm/script_v100he.cpp @@ -248,7 +248,7 @@ void ScummEngine_v100he::setupOpcodes() { /* A4 */ OPCODE(o6_ifClassOfIs), OPCODE(o6_invalid), - OPCODE(o6_invalid), + OPCODE(o90_cond), OPCODE(o90_cos), /* A8 */ OPCODE(o6_invalid), diff --git a/scumm/script_v90he.cpp b/scumm/script_v90he.cpp index 8b5dbf5039d..e4d581221e0 100644 --- a/scumm/script_v90he.cpp +++ b/scumm/script_v90he.cpp @@ -1288,6 +1288,7 @@ void ScummEngine_v90he::o90_sortArray() { switch (subOp) { case 129: + case 134: // HE100 fetchScriptWord(); pop(); pop(); diff --git a/scumm/scumm-md5.h b/scumm/scumm-md5.h index 0a22b62135a..3e44d6d5cbc 100644 --- a/scumm/scumm-md5.h +++ b/scumm/scumm-md5.h @@ -1,5 +1,5 @@ /* - This file was generated by the md5table tool on Sat Jan 29 05:09:32 2005 + This file was generated by the md5table tool on Tue Feb 01 04:45:11 2005 DO NOT EDIT MANUALLY! */ @@ -82,6 +82,7 @@ static const MD5Table md5table[] = { { "362c1d281fb9899254cda66ad246c66a", "digdemo", Common::EN_USA, Common::kPlatformUnknown }, { "3686cf8f89e102ececf4366e1d2c8126", "monkey2", Common::EN_USA, Common::kPlatformPC }, { "36a6750e03fb505fc19fc2bf3e4dbe91", "pj2demo", Common::EN_USA, Common::kPlatformUnknown }, + { "37aed3f91c1ef959e0bd265f9b13781f", "PajamaNHD", Common::EN_USA, Common::kPlatformUnknown }, { "37f56ceb13e401a7ac7d9e6b37fecaf7", "loom", Common::EN_USA, Common::kPlatformPC }, { "37ff1b308999c4cca7319edfcc1280a0", "puttdemo", Common::EN_USA, Common::kPlatformWindows }, { "3824e60cdf639d22f6df92a03dc4b131", "fbear", Common::EN_USA, Common::kPlatformPC }, @@ -221,6 +222,7 @@ static const MD5Table md5table[] = { { "a2bb6aa0537402c1b3c2ea899ccef64b", "smaller", Common::EN_USA, Common::kPlatformWindows }, { "a3036878840720fbefa41e6965fa4a0a", "samnmax", Common::EN_USA, Common::kPlatformPC }, { "a525c1753c1db5011c00417da37887ef", "PuttTTT", Common::EN_USA, Common::kPlatformWindows }, + { "a561d2e2413cc1c71d5a1bf87bf493ea", "lost", Common::EN_USA, Common::kPlatformUnknown }, { "a570381b028972d891052ee1e51dc011", "maniac", Common::EN_USA, Common::kPlatformAtariST }, { "a654fb60c3b67d6317a7894ffd9f25c5", "pj3-demo", Common::EN_USA, Common::kPlatformWindows }, { "a7cacad9c40c4dc9e1812abf6c8af9d5", "circdemo", Common::EN_USA, Common::kPlatformUnknown }, diff --git a/scumm/scumm.cpp b/scumm/scumm.cpp index 5d6e8c2b989..bfdc59ccdc6 100644 --- a/scumm/scumm.cpp +++ b/scumm/scumm.cpp @@ -313,7 +313,7 @@ static const ScummGameSettings scumm_settings[] = { // these and later games can easily be identified by the .(a) file instead of a .he1 // and INIB chunk in the .he0 {"lost", "Pajama Sam's Lost & Found", GID_HEGAME, 6, 98, 61, MDT_NONE, - GF_NEW_OPCODES | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0, 0}, + GF_NEW_OPCODES | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES | GF_MULTIPLE_VERSIONS, 0, 0}, {"racedemo", "Putt-Putt Enters the Race (Demo)", GID_HEGAME, 6, 98, 61, MDT_NONE, GF_NEW_OPCODES | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0, 0}, {"puttrace", "Putt-Putt Enters the Race", GID_HEGAME, 6, 98, 61, MDT_NONE, @@ -376,6 +376,8 @@ static const ScummGameSettings scumm_settings[] = { GF_NEW_OPCODES | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0, 0}, {"PjSamDemo", "Pajama Sam: No Need To Hide When It's Dark Outside (Demo)", GID_HEGAME, 6, 100, 61, MDT_NONE, GF_NEW_OPCODES | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0, 0}, + {"PajamaNHD", "Pajama Sam: No Need To Hide When It's Dark Outside (Updated)", GID_HEGAME, 6, 100, 61, MDT_NONE, + GF_NEW_OPCODES | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0, 0}, {"PuttTTT", "Putt-Putt Travels Through Time *updated)", GID_HEGAME, 6, 100, 31, MDT_NONE, GF_NEW_OPCODES | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0, 0}, @@ -418,6 +420,8 @@ static const ScummGameSettings he_md5_settings[] = { GF_NEW_OPCODES | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0, 0}, {"21abe302e1b1e2b66d6f5c12e241ebfd", "Freddi Fish 5: The Case of the Creature of Coral Cave (Unencrypted)", GID_HEGAME, 6, 99, 61, MDT_NONE, GF_NEW_OPCODES | GF_HUMONGOUS | GF_NEW_COSTUMES, 0, 0}, + {"a561d2e2413cc1c71d5a1bf87bf493ea", "Pajama Sam's Lost & Found (Updated)", GID_HEGAME, 6, 100, 61, MDT_NONE, + GF_NEW_OPCODES | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0, 0}, {"0ab19be9e2a3f6938226638b2a3744fe", "Putt-Putt Travels Through Time (Updated Demo)", GID_HEGAME, 6, 100, 31, MDT_NONE, GF_NEW_OPCODES | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0, 0}, {"8e3241ddd6c8dadf64305e8740d45e13", "Putt-Putt and Pep's Balloon-O-Rama (Updated)", GID_HEGAME, 6, 100, 60, MDT_NONE, diff --git a/tools/scumm-md5.txt b/tools/scumm-md5.txt index 6a077747843..f676bd9b19c 100644 --- a/tools/scumm-md5.txt +++ b/tools/scumm-md5.txt @@ -312,6 +312,7 @@ Let's Explore the Jungle with Buzzy - Windows en 8801fb4a1200b347f7a38523339526dd jungle Kirben Pajama Sam 1: No Need to Hide When It's Dark Outside + - All en 37aed3f91c1ef959e0bd265f9b13781f PajamaNHD Kirben - All en 672dec94b82f7f0877ebb5b5cf7f4bc1 pajama khalek - Windows nl 4fa6870d9bc8c313b65d54b1da5a1891 pajama joostp Demo All en f237bf8a5ef9af78b2a6a4f3901da341 pjs-demo khalek, sev @@ -330,6 +331,7 @@ Pajama Sam 3: You Are What You Eat From Your Head to Your Feet Demo All nl f08145577e4f13584cc90b3d6e9caa55 pj3demo joostp Pajama Sam's Lost & Found + - All en a561d2e2413cc1c71d5a1bf87bf493ea lost Kirben - All en ed361270102e355afe5236954216aba2 lost Kirben Demo Windows en a2bb6aa0537402c1b3c2ea899ccef64b smaller Kirben