diff options
author | James Brown | 2002-04-25 03:37:56 +0000 |
---|---|---|
committer | James Brown | 2002-04-25 03:37:56 +0000 |
commit | 2334c4778b6d1e58a419116cc1a35bf3037cf902 (patch) | |
tree | c15f7fa953afa5dd2a212953a5752b860fd02758 | |
parent | fb5e38d45451f0bbeb556434804fcb5bf70dfea3 (diff) | |
download | scummvm-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.cpp | 2 | ||||
-rw-r--r-- | script_v1.cpp | 7 | ||||
-rw-r--r-- | scumm.h | 4 | ||||
-rw-r--r-- | sound/imuse.cpp | 4 |
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) @@ -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; |