aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJames Brown2002-04-25 03:37:56 +0000
committerJames Brown2002-04-25 03:37:56 +0000
commit2334c4778b6d1e58a419116cc1a35bf3037cf902 (patch)
treec15f7fa953afa5dd2a212953a5752b860fd02758
parentfb5e38d45451f0bbeb556434804fcb5bf70dfea3 (diff)
downloadscummvm-rg350-2334c4778b6d1e58a419116cc1a35bf3037cf902.tar.gz
scummvm-rg350-2334c4778b6d1e58a419116cc1a35bf3037cf902.tar.bz2
scummvm-rg350-2334c4778b6d1e58a419116cc1a35bf3037cf902.zip
Apply patch to add 'monkeyvga' target for MI1 Floppy.
svn-id: r4076
-rw-r--r--gameDetector.cpp2
-rw-r--r--script_v1.cpp7
-rw-r--r--scumm.h4
-rw-r--r--sound/imuse.cpp4
4 files changed, 14 insertions, 3 deletions
diff --git a/gameDetector.cpp b/gameDetector.cpp
index 74b8c1afe0..831ab2dde2 100644
--- a/gameDetector.cpp
+++ b/gameDetector.cpp
@@ -266,6 +266,8 @@ static const VersionSettings version_settings[] = {
{"monkeyEGA", "Monkey Island 1 (EGA)", GID_MONKEY_EGA, 4, 0, 67, GF_SMALL_HEADER | GF_USE_KEY | GF_16COLOR}, // EGA version
/* Scumm version 5 */
+ {"monkeyVGA", "Monkey Island 1 (256 color Floppy version)", GID_MONKEY_VGA, 5, 0, 16,
+ GF_SMALL_HEADER | GF_USE_KEY | GF_AUDIOTRACKS | GF_ADLIB_DEFAULT},
{"loomcd", "Loom (256 color CD version)", GID_LOOM256, 5, 1, 42,
GF_SMALL_HEADER | GF_USE_KEY | GF_AUDIOTRACKS | GF_ADLIB_DEFAULT},
{"monkey", "Monkey Island 1", GID_MONKEY, 5, 2, 2,
diff --git a/script_v1.cpp b/script_v1.cpp
index 90c453f7bd..df8dad2e49 100644
--- a/script_v1.cpp
+++ b/script_v1.cpp
@@ -778,6 +778,13 @@ void Scumm::o5_actorSet()
a->width = getVarOrDirectByte(0x80);
break;
case 17: /* scale */
+ // FIXME: 0x11 is definitly an one byte opcode in MI1 256 col Floppy !
+ // but it's not 1, 9, 16, 19, 22 or 23 (testet), what else ?
+ if (_gameId & GID_MONKEY_VGA) {
+ warning("o5_actorset: unk opcode 0x11 (%d)", getVarOrDirectByte(0x80));
+ break;
+ }
+
a->scalex = getVarOrDirectByte(0x80);
a->scaley = getVarOrDirectByte(0x40);
if (a->scalex > 255 || a->scaley > 255)
diff --git a/scumm.h b/scumm.h
index 8b146c238d..8392225f40 100644
--- a/scumm.h
+++ b/scumm.h
@@ -506,9 +506,9 @@ enum GameId {
GID_LOOM = 10,
GID_FT = 11,
GID_DIG = 12,
-
+ GID_MONKEY_VGA = 13,
/* Simon the Sorcerer */
- GID_SIMON_FIRST = 13,
+ GID_SIMON_FIRST = 14,
GID_SIMON_LAST = GID_SIMON_FIRST+3,
};
diff --git a/sound/imuse.cpp b/sound/imuse.cpp
index c1d69a9312..7a08fa7b21 100644
--- a/sound/imuse.cpp
+++ b/sound/imuse.cpp
@@ -774,6 +774,7 @@ byte *IMuse::findTag(int sound, char *tag, int index)
// debug(1, "IMuse::findTag completely failed finding sound %d",
// sound);
return NULL;
+
}
ptr += 8;
@@ -1354,7 +1355,9 @@ int32 IMuse::do_command(int a, int b, int c, int d, int e, int f, int g,
return start_sound(b) ? 0 : -1;
case 9:
return stop_sound(b);
+
case 10:
+
return stop_all_sounds(); //FIXME
case 11:
return stop_all_sounds();
@@ -1372,7 +1375,6 @@ int32 IMuse::do_command(int a, int b, int c, int d, int e, int f, int g,
return stop_sound(b); //FIXME
case 20:
return stop_sound(b); //FIXME
-
case 2:
case 3:
return 0;