mirror of
https://github.com/libretro/scummvm.git
synced 2024-12-16 14:50:17 +00:00
Add work around for bug in French version of Simon the Sorcerer 1
svn-id: r12068
This commit is contained in:
parent
dcbbb04d3c
commit
f845008972
@ -2579,6 +2579,16 @@ void SimonEngine::vc_resume_sprite(byte *code_ptr, uint16 cur_file, uint16 cur_s
|
||||
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++) {
|
||||
|
@ -128,14 +128,6 @@ void SimonEngine::run_vga_script() {
|
||||
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);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user