diff options
author | Eugene Sandulenko | 2005-03-30 23:25:49 +0000 |
---|---|---|
committer | Eugene Sandulenko | 2005-03-30 23:25:49 +0000 |
commit | f4c50eff957a7bdb65769fbee9e60c63e24605bf (patch) | |
tree | a9ccd799f6e9ae68f28259c7d52f4eb25bf1a353 | |
parent | 9c772ce7d85153e4cfb44d8510569bc7fc2004d2 (diff) | |
download | scummvm-rg350-f4c50eff957a7bdb65769fbee9e60c63e24605bf.tar.gz scummvm-rg350-f4c50eff957a7bdb65769fbee9e60c63e24605bf.tar.bz2 scummvm-rg350-f4c50eff957a7bdb65769fbee9e60c63e24605bf.zip |
Switch to headerless PRG data for MM NES for better compatibility.
svn-id: r17302
-rw-r--r-- | scumm/scumm.cpp | 24 | ||||
-rw-r--r-- | scumm/util.cpp | 21 |
2 files changed, 22 insertions, 23 deletions
diff --git a/scumm/scumm.cpp b/scumm/scumm.cpp index 5c0f2b09c0..037bc91043 100644 --- a/scumm/scumm.cpp +++ b/scumm/scumm.cpp @@ -408,6 +408,8 @@ static const ScummGameSettings multiple_versions_md5_settings[] = { GF_NEW_OPCODES | GF_HUMONGOUS | GF_NEW_COSTUMES, 0, 0}, {"22c9eb04455440131ffc157aeb8d40a8", "Fatty Bear's Birthday Surprise (Windows Demo)", GID_FBEAR, 6, 70, 13, MDT_NONE, GF_NEW_OPCODES | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES | GF_WINDOWS, 0, 0}, + {"22d07d6c386c9c25aca5dac2a0c0d94b", "Maniac Mansion (NES SW)", GID_MANIAC, 1, 0, 25, MDT_NONE, + GF_SMALL_HEADER | GF_USE_KEY | GF_SMALL_NAMES | GF_16COLOR | GF_OLD_BUNDLE | GF_NO_SCALING | GF_NES, 0, "Maniac Mansion (SW).prg"}, {"2e85f7aa054930c692a5b1bed1dfc295", "Backyard Football 2002 (Demo Updated)", GID_HEGAME, 6, 100, 61, MDT_NONE, GF_NEW_OPCODES | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0, 0}, // Football2002 {"32709cbeeb3044b34129950860a83f14", "Pajama Sam 2: Thunder and Lightning Aren't so Frightening (Updated)", GID_HEGAME, 6, 99, 61, MDT_NONE, // FIXME: number of actors @@ -416,18 +418,16 @@ static const ScummGameSettings multiple_versions_md5_settings[] = { GF_NEW_OPCODES | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0, 0}, // PajamaNHD {"37ff1b308999c4cca7319edfcc1280a0", "Putt-Putt Joins The Parade (Windows Demo)", GID_PUTTDEMO, 6, 70, 13, MDT_NONE, GF_NEW_OPCODES | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0, 0}, + {"3905799e081b80a61d4460b7b733c206", "Maniac Mansion (NES U)", GID_MANIAC, 1, 0, 25, MDT_NONE, + GF_SMALL_HEADER | GF_USE_KEY | GF_SMALL_NAMES | GF_16COLOR | GF_OLD_BUNDLE | GF_NO_SCALING | GF_NES, 0, "Maniac Mansion (U).prg"}, {"3de99ef0523f8ca7958faa3afccd035a", "Spyfox 1: Dry Cereal (Updated)", GID_HEGAME, 6, 100, 61, MDT_NONE, GF_NEW_OPCODES | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0, 0}, {"4ce2d5b355964bbcb5e5ce73236ef868", "Freddi Fish 5: The Case of the Creature of Coral Cave (Updated Ru)", GID_HEGAME, 6, 100, 61, MDT_NONE, GF_NEW_OPCODES | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0, 0}, // FIXME: number of actors {"4dbff3787aedcd96b0b325f2d92d7ad9", "Freddi Fish and Luther's Maze Madness (Updated)", GID_HEGAME, 6, 100, 60, MDT_NONE, GF_NEW_OPCODES | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0, 0}, - {"4f101be44a2a2323ae679e34a7c3f634", "Maniac Mansion (NES SW)", GID_MANIAC, 1, 0, 25, MDT_NONE, - GF_SMALL_HEADER | GF_USE_KEY | GF_SMALL_NAMES | GF_16COLOR | GF_OLD_BUNDLE | GF_NO_SCALING | GF_NES, 0, "Maniac Mansion (SW).nes"}, {"51305e929e330e24a75a0351c8f9975e", "Freddi Fish 2: The Case of the Haunted Schoolhouse (Updated)", GID_HEGAME, 6, 99, 30, MDT_NONE, GF_NEW_OPCODES | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0, 0}, - {"59293b8524faee354f6ce7db9b5460d4", "Maniac Mansion (NES F)", GID_MANIAC, 1, 0, 25, MDT_NONE, - GF_SMALL_HEADER | GF_USE_KEY | GF_SMALL_NAMES | GF_16COLOR | GF_OLD_BUNDLE | GF_NO_SCALING | GF_NES, 0, "Maniac Mansion (F).nes"}, {"6a30a07f353a75cdc602db27d73e1b42", "Putt-Putt Joins The Parade (Windows)", GID_HEGAME, 6, 70, 13, MDT_NONE, GF_NEW_OPCODES | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES | GF_WINDOWS, 0, 0}, {"6af2419fe3db5c2fdb091ae4e5833770", "Putt-Putt Enters the Race (Demo Alt)", GID_FREDDI4, 6, 98, 61, MDT_NONE, @@ -442,6 +442,8 @@ static const ScummGameSettings multiple_versions_md5_settings[] = { GF_NEW_OPCODES | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0, 0}, // FIXME: number of actors {"7f45ddd6dbfbf8f80c0c0efea4c295bc", "Maniac Mansion (v1)", GID_MANIAC, 1, 0, 25, MDT_PCSPK, GF_SMALL_HEADER | GF_USE_KEY | GF_SMALL_NAMES | GF_16COLOR | GF_OLD_BUNDLE | GF_NO_SCALING, 0, 0}, + {"81bbfa181184cb494e7a81dcfa94fbd9", "Maniac Mansion (NES F)", GID_MANIAC, 1, 0, 25, MDT_NONE, + GF_SMALL_HEADER | GF_USE_KEY | GF_SMALL_NAMES | GF_16COLOR | GF_OLD_BUNDLE | GF_NO_SCALING | GF_NES, 0, "Maniac Mansion (F).prg"}, {"86c9902b7bec1a17926d4dae85beaa45", "Let's Explore the Airport with Buzzy (Demo) (puttputt cd)", GID_HEGAME, 6, 71, 13, 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, @@ -452,8 +454,6 @@ static const ScummGameSettings multiple_versions_md5_settings[] = { GF_NEW_OPCODES | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0, 0}, {"92e7727e67f5cd979d8a1070e4eb8cb3", "Putt-Putt Saves the Zoo (Updated)", GID_FREDDI4, 6, 98, 30, MDT_NONE, GF_NEW_OPCODES | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0, 0}, - {"9a7f9443a7372f09f325c96176d9fec3", "Maniac Mansion (NES E)", GID_MANIAC, 1, 0, 25, MDT_NONE, - GF_SMALL_HEADER | GF_USE_KEY | GF_SMALL_NAMES | GF_16COLOR | GF_OLD_BUNDLE | GF_NO_SCALING | GF_NES, 0, "Maniac Mansion (E).nes"}, {"9c143c5905055d5df7a0f014ab379aee", "Putt-Putt Goes To The Moon (Windows Demo)", GID_HEGAME, 6, 70, 13, MDT_NONE, GF_NEW_OPCODES | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES | GF_WINDOWS, 0, 0}, {"9c92eeaf517a31b7221ec2546ab669fd", "Putt-Putt Goes To The Moon (Windows)", GID_HEGAME, 6, 70, 13, MDT_NONE, @@ -476,10 +476,10 @@ static const ScummGameSettings multiple_versions_md5_settings[] = { GF_NEW_OPCODES | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0, 0}, {"d7ab7cd6105546016e6a0d46fb36b964", "Pajama Sam: No Need To Hide When It's Dark Outside (Demo Updated)", GID_HEGAME, 6, 100, 61, MDT_NONE, GF_NEW_OPCODES | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0, 0}, // PJSamDemo + {"d8d07efcb88f396bee0b402b10c3b1c9", "Maniac Mansion (NES E)", GID_MANIAC, 1, 0, 25, MDT_NONE, + GF_SMALL_HEADER | GF_USE_KEY | GF_SMALL_NAMES | GF_16COLOR | GF_OLD_BUNDLE | GF_NO_SCALING | GF_NES, 0, "Maniac Mansion (E).prg"}, {"e41de1c2a15abbcdbf9977e2d7e8a340", "Freddi Fish 2: The Case of the Haunted Schoolhouse (Updated Ru)", GID_HEGAME, 6, 100, 61, MDT_NONE, // FIXME: number of actors GF_NEW_OPCODES | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0, 0}, // FreddiCHSH - {"fcd1fb5aaae86dc0d23c624cd66c0aef", "Maniac Mansion (NES U)", GID_MANIAC, 1, 0, 25, MDT_NONE, - GF_SMALL_HEADER | GF_USE_KEY | GF_SMALL_NAMES | GF_16COLOR | GF_OLD_BUNDLE | GF_NO_SCALING | GF_NES, 0, "Maniac Mansion (U).nes"}, #endif {NULL, NULL, 0, 0, 0, MDT_NONE, 0, 0, 0, 0} }; @@ -499,10 +499,10 @@ struct SubstResFileNames { static SubstResFileNames substResFileNameTable[] = { { "Intentionally/left/blank", "", kGenMacNoParens}, - { "00.LFL", "Maniac Mansion (E).nes", kGenAsIs }, - { "00.LFL", "Maniac Mansion (F).nes", kGenAsIs }, - { "00.LFL", "Maniac Mansion (SW).nes", kGenAsIs }, - { "00.LFL", "Maniac Mansion (U).nes", kGenAsIs }, + { "00.LFL", "Maniac Mansion (E).prg", kGenAsIs }, + { "00.LFL", "Maniac Mansion (F).prg", kGenAsIs }, + { "00.LFL", "Maniac Mansion (SW).prg", kGenAsIs }, + { "00.LFL", "Maniac Mansion (U).prg", kGenAsIs }, { "racedemo", "500demo", kGenPC}, { "Spydemo", "foxdemo", kGenPC}, { "Spydemo", "FoxDemo", kGenMac }, diff --git a/scumm/util.cpp b/scumm/util.cpp index 9ef56cfe8d..9a7a1d21f2 100644 --- a/scumm/util.cpp +++ b/scumm/util.cpp @@ -766,7 +766,7 @@ uint16 ScummNESFile::extractResource(Common::MemoryWriteStream *output, p_resour if ((resOffset(res) == 0) && (resLength(res) == 0)) return 0; /* there are 8 scripts that are zero bytes long, so we should skip them */ - File::seek(16 + resOffset(res),SEEK_SET); + File::seek(resOffset(res),SEEK_SET); switch (res->type) { case NES_GLOBDATA: @@ -794,8 +794,8 @@ uint16 ScummNESFile::extractResource(Common::MemoryWriteStream *output, p_resour reslen += write_byte(output, FileReadByte()); } - if (File::pos() - resOffset(res) - 16 != resLength(res)) - error("extract_resource - length mismatch while extracting graphics resource (was %04X, should be %04X)", File::pos() - resOffset(res) - 16, resLength(res)); + if (File::pos() - resOffset(res) != resLength(res)) + error("extract_resource - length mismatch while extracting graphics resource (was %04X, should be %04X)", File::pos() - resOffset(res), resLength(res)); break; @@ -849,8 +849,8 @@ uint16 ScummNESFile::extractResource(Common::MemoryWriteStream *output, p_resour } else error("extract_resource - unknown sound type %d/%d detected",val,cnt); - if (File::pos() - resOffset(res) - 16 != resLength(res)) - error("extract_resource - length mismatch while extracting sound resource (was %04X, should be %04X)", File::pos() - resOffset(res) - 16, resLength(res)); + if (File::pos() - resOffset(res) != resLength(res)) + error("extract_resource - length mismatch while extracting sound resource (was %04X, should be %04X)", File::pos() - resOffset(res), resLength(res)); break; @@ -1136,23 +1136,22 @@ bool ScummNESFile::open(const char *filename, AccessMode mode) { uint8 md5sum[16]; if (_ROMset == kROMsetNum) { - // calculate md5 of first 900 bytes which is enough to tell the difference - if (md5_file(filename, md5sum, 0, 900)) { + if (md5_file(filename, md5sum)) { char md5str[32+1]; for (int j = 0; j < 16; j++) { sprintf(md5str + j*2, "%02x", (int)md5sum[j]); } - if (!strcmp(md5str, "27b1163056a66b16f862345ecb433890")) { + if (!strcmp(md5str, "3905799e081b80a61d4460b7b733c206")) { _ROMset = kROMsetUSA; debug(1, "ROM contents verified as Maniac Mansion (USA)"); - } else if (!strcmp(md5str, "3a831207809d1dc8e6ca323102827ec1")) { + } else if (!strcmp(md5str, "d8d07efcb88f396bee0b402b10c3b1c9")) { _ROMset = kROMsetEurope; debug(1, "ROM contents verified as Maniac Mansion (Europe)"); - } else if (!strcmp(md5str, "96129094b3e09b7e3292b132bf345b17")) { + } else if (!strcmp(md5str, "22d07d6c386c9c25aca5dac2a0c0d94b")) { _ROMset = kROMsetSweden; debug(1, "ROM contents verified as Maniac Mansion (Sweden)"); - } else if (!strcmp(md5str, "95274b9e82c15b1be98ba6e99122196d")) { + } else if (!strcmp(md5str, "81bbfa181184cb494e7a81dcfa94fbd9")) { _ROMset = kROMsetFrance; debug(2, "ROM contents verified as Maniac Mansion (France)"); } else { |