Apply patch to add 'monkeyvga' target for MI1 Floppy.

svn-id: r4076
This commit is contained in:
James Brown 2002-04-25 03:37:56 +00:00
parent fb5e38d454
commit 2334c4778b
4 changed files with 14 additions and 3 deletions

View file

@ -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,

View file

@ -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)

View file

@ -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,
};

View file

@ -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;