diff options
| -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;  | 
