[Scummvm-cvs-logs] CVS: scummvm/simon simon.cpp,1.409,1.410 vga.cpp,1.109,1.110

Travis Howell kirben at users.sourceforge.net
Thu Jan 1 02:43:02 CET 2004


Update of /cvsroot/scummvm/scummvm/simon
In directory sc8-pr-cvs1:/tmp/cvs-serv8667/simon

Modified Files:
	simon.cpp vga.cpp 
Log Message:

Add work around for bug in French version of Simon the Sorcerer 1


Index: simon.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/simon/simon.cpp,v
retrieving revision 1.409
retrieving revision 1.410
diff -u -d -r1.409 -r1.410
--- simon.cpp	1 Jan 2004 09:00:40 -0000	1.409
+++ simon.cpp	1 Jan 2004 10:42:10 -0000	1.410
@@ -2579,6 +2579,16 @@
 void SimonEngine::add_vga_timer(uint num, byte *code_ptr, uint cur_sprite, uint cur_file) {
 	VgaTimerEntry *vte;
 
+	// When Simon talks to the Golum about stew in French version of
+	// Simon the Sorcerer 1 the code_ptr is at wrong location for
+	// sprite 200. This  was a bug in the original game, which 
+	// caused several glitches in this scene.
+	// We work around the problem by correcting the code_ptr for sprite
+	// 200 in this scene, if it is wrong.
+	if (!(_game & GF_SIMON2) && (_language == 2) &&
+		(code_ptr - _vga_buffer_pointers[cur_file].vgaFile1 == 4) && (cur_sprite == 200) && (cur_file == 2))
+		code_ptr += 0x66;
+
 	_lock_word |= 1;
 
 	for (vte = _vga_timer_list; vte->delay; vte++) {

Index: vga.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/simon/vga.cpp,v
retrieving revision 1.109
retrieving revision 1.110
diff -u -d -r1.109 -r1.110
--- vga.cpp	1 Jan 2004 05:13:17 -0000	1.109
+++ vga.cpp	1 Jan 2004 10:42:10 -0000	1.110
@@ -128,14 +128,6 @@
 			opcode = *_vc_ptr++;
 		}
 
-		// HACK Stop ScummVM error when Simon talks to Golum about Stew
-		// in French version of Simon the Sorcerer 1. This was a bug in
-		// the original game, which just ignored the invalid opcodes.
-		// Unfortunately causes no subtitles and a stack of wait timeouts,
-		// which also occured in original game.
-		if (!(_game & GF_SIMON2) && (_language == 2) && opcode == 207)
-			return;
-
 		if (opcode >= NUM_VIDEO_OP_CODES)
 			error("Invalid VGA opcode '%d' encountered", opcode);
 





More information about the Scummvm-git-logs mailing list