[Scummvm-cvs-logs] SF.net SVN: scummvm:[50266] scummvm/trunk/engines/sci/engine/vm.cpp
m_kiewitz at users.sourceforge.net
m_kiewitz at users.sourceforge.net
Fri Jun 25 16:50:27 CEST 2010
Revision: 50266
http://scummvm.svn.sourceforge.net/scummvm/?rev=50266&view=rev
Author: m_kiewitz
Date: 2010-06-25 14:50:27 +0000 (Fri, 25 Jun 2010)
Log Message:
-----------
SCI: changes to the op GT workaround
Modified Paths:
--------------
scummvm/trunk/engines/sci/engine/vm.cpp
Modified: scummvm/trunk/engines/sci/engine/vm.cpp
===================================================================
--- scummvm/trunk/engines/sci/engine/vm.cpp 2010-06-25 14:50:10 UTC (rev 50265)
+++ scummvm/trunk/engines/sci/engine/vm.cpp 2010-06-25 14:50:27 UTC (rev 50266)
@@ -1054,10 +1054,11 @@
warning("[VM] Comparing pointers in different segments (%04x:%04x vs. %04x:%04x)", PRINT_REG(r_temp), PRINT_REG(s->r_acc));
s->r_acc = make_reg(0, (r_temp.segment == s->r_acc.segment) && r_temp.offset > s->r_acc.offset);
} else if (r_temp.segment && !s->r_acc.segment) {
+ if (s->r_acc.offset >= 1000)
+ error("[VM] op_gt: comparsion between a pointer and number");
+ // Pseudo-WORKAROUND: sierra allows any pointer <-> value comparsion
// Happens in SQ1, room 28, when throwing the water at Orat
- // WORKAROUND: return false
- warning("[VM] op_gt_: comparison between a pointer and a number");
- s->r_acc = NULL_REG;
+ s->r_acc = SIGNAL_REG;
} else
s->r_acc = ACC_ARITHMETIC_L(signed_validate_arithmetic(r_temp) > (int16)/*acc*/);
break;
@@ -1110,7 +1111,7 @@
// It works because in those games, the maximum resource number is 999,
// so any parameter value above that threshold must be a pointer.
if (r_temp.segment && (s->r_acc == make_reg(0, 1000)))
- s->r_acc = make_reg(0, 1);
+ s->r_acc = SIGNAL_REG;
else if (r_temp.segment && s->r_acc.segment)
s->r_acc = make_reg(0, (r_temp.segment == s->r_acc.segment) && r_temp.offset > s->r_acc.offset);
else
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Scummvm-git-logs
mailing list