diff options
author | Eugene Sandulenko | 2005-03-27 21:21:05 +0000 |
---|---|---|
committer | Eugene Sandulenko | 2005-03-27 21:21:05 +0000 |
commit | dbfeb393aa3aa7a0c5252450293ff28e22ca8108 (patch) | |
tree | 0c16047ced553eb5a66be896ed52dba9662de250 /scumm | |
parent | ca8899e3c1b82cf67c6a3fd91a494931501c9f15 (diff) | |
download | scummvm-rg350-dbfeb393aa3aa7a0c5252450293ff28e22ca8108.tar.gz scummvm-rg350-dbfeb393aa3aa7a0c5252450293ff28e22ca8108.tar.bz2 scummvm-rg350-dbfeb393aa3aa7a0c5252450293ff28e22ca8108.zip |
Patch from Quietust for MM NES
o Fix number of global objects
o Camera-related differences
o Proper user states
o Updated MD5 for new 00.lfl
svn-id: r17268
Diffstat (limited to 'scumm')
-rw-r--r-- | scumm/resource_v2.cpp | 5 | ||||
-rw-r--r-- | scumm/script_v2.cpp | 13 | ||||
-rw-r--r-- | scumm/scumm.cpp | 12 |
3 files changed, 20 insertions, 10 deletions
diff --git a/scumm/resource_v2.cpp b/scumm/resource_v2.cpp index fbc4d3d392..408568032a 100644 --- a/scumm/resource_v2.cpp +++ b/scumm/resource_v2.cpp @@ -36,7 +36,10 @@ void ScummEngine_v2::readClassicIndexFile() { if (!(_features & GF_AMIGA) && !(_features & GF_NES)) _musicEngine = new Player_V1(this, _midiDriver != MD_PCSPK); - _numGlobalObjects = 800; + if (_features & GF_NES) + _numGlobalObjects = 775; + else + _numGlobalObjects = 800; _numRooms = 55; if (_features & GF_NES) diff --git a/scumm/script_v2.cpp b/scumm/script_v2.cpp index dcbc1e8429..ca244f0be3 100644 --- a/scumm/script_v2.cpp +++ b/scumm/script_v2.cpp @@ -1431,7 +1431,7 @@ void ScummEngine_v2::o2_endCutscene() { // Reset user state to values before cutscene setUserState(vm.cutSceneData[0] | 7); - if (_gameId == GID_MANIAC) { + if ((_gameId == GID_MANIAC) && !(_features & GF_NES)) { camera._mode = (byte) vm.cutSceneData[3]; if (camera._mode == kFollowActorCameraMode) { actorFollowCamera(VAR(VAR_EGO)); @@ -1453,7 +1453,7 @@ void ScummEngine_v2::o2_beginOverride() { } void ScummEngine_v2::o2_chainScript() { - int data = getVarOrDirectByte(0x80); + int data = getVarOrDirectByte(PARAM_1); stopScript(vm.slot[_currentScript].number); _currentScript = 0xFF; runScript(data, 0, 0, 0); @@ -1479,6 +1479,8 @@ void ScummEngine_v2::o2_pickupObject() { clearDrawObjectQueue(); runInventoryScript(1); + if (_features & GF_NES) + _sound->addSoundToQueue(51); // play 'pickup' sound } void ScummEngine_v2::o2_cursorCommand() { // TODO: Define the magic numbers @@ -1494,7 +1496,10 @@ void ScummEngine_v2::o2_cursorCommand() { // TODO: Define the magic numbers void ScummEngine_v2::setUserState(byte state) { if (state & 4) { // Userface - _userState = state & (32 | 64 | 128); + if (_features & GF_NES) + _userState = (_userState & ~0xE0) | (state & 0xE0); + else + _userState = state & (32 | 64 | 128); } if (state & 1) { // Freeze @@ -1505,6 +1510,8 @@ void ScummEngine_v2::setUserState(byte state) { } if (state & 2) { // Cursor Show/Hide + if (_features & GF_NES) + _userState = (_userState & ~0x10) | (state & 0x10); if (state & 16) { _userPut = 1; _cursor.state = 1; diff --git a/scumm/scumm.cpp b/scumm/scumm.cpp index a96bd09de2..cd9c0150e4 100644 --- a/scumm/scumm.cpp +++ b/scumm/scumm.cpp @@ -418,14 +418,14 @@ static const ScummGameSettings multiple_versions_md5_settings[] = { GF_NEW_OPCODES | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0, 0}, {"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}, - {"438fc5ccb17d1894f93b2add831af66c", "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, 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}, {"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}, + {"635b821a347728268ca0636c45143ab2", "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, 0}, {"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, @@ -440,8 +440,6 @@ 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}, - {"8330db03629e8fecd2c8035f0014946b", "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, 0}, {"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,7 +450,7 @@ 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}, - {"93782ee33ab4b4f4dddf5e103df5ce8b", "Maniac Mansion (NES U)", GID_MANIAC, 1, 0, 25, MDT_NONE, + {"92fc0b874e44177215336568d9e6b9d5", "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, 0}, {"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}, @@ -466,6 +464,8 @@ static const ScummGameSettings multiple_versions_md5_settings[] = { GF_NEW_OPCODES | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0, 0}, {"b23f7cd7c304d7dff08e92a96120d5b4", "Zak McKracken and the Alien Mindbenders (v1)", GID_ZAK, 1, 0, 13, MDT_PCSPK, GF_SMALL_HEADER | GF_USE_KEY | GF_SMALL_NAMES | GF_16COLOR | GF_OLD_BUNDLE | GF_NO_SCALING, 0, 0}, + {"b5fa3b53523c849fbbcaeff86d5fd1ee", "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, 0}, {"bf8b52fdd9a69c67f34e8e9fec72661c", "Let's Explore the Farm 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}, {"d37c55388294b66e53e7ced3af88fa68", "Freddi Fish 2: The Case of the Haunted Schoolhouse (Demo Updated)", GID_HEGAME, 6, 100, 30, MDT_NONE, @@ -478,7 +478,7 @@ static const ScummGameSettings multiple_versions_md5_settings[] = { GF_NEW_OPCODES | GF_USE_KEY | GF_HUMONGOUS | GF_NEW_COSTUMES, 0, 0}, // PJSamDemo {"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 - {"e96fffddd20f74d8da0f9a3af0123fa4", "Maniac Mansion (NES F)", GID_MANIAC, 1, 0, 25, MDT_NONE, + {"f77d2f0224042a21387899a54844fded", "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, 0}, #endif {NULL, NULL, 0, 0, 0, MDT_NONE, 0, 0, 0, 0} |