diff options
author | Willem Jan Palenstijn | 2011-06-12 01:11:42 +0200 |
---|---|---|
committer | Willem Jan Palenstijn | 2011-06-12 02:00:09 +0200 |
commit | 4296ac6d15e163b0c6b4fff5665e7add444ba310 (patch) | |
tree | 1b89445b415cc5f5f19d6c32a7a25a98592d0284 | |
parent | 50176e7c5fca547c3a1e3043d04091484b979f31 (diff) | |
download | scummvm-rg350-4296ac6d15e163b0c6b4fff5665e7add444ba310.tar.gz scummvm-rg350-4296ac6d15e163b0c6b4fff5665e7add444ba310.tar.bz2 scummvm-rg350-4296ac6d15e163b0c6b4fff5665e7add444ba310.zip |
SCI: Fix sign in disasm of relative jumps
-rw-r--r-- | engines/sci/engine/scriptdebug.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/engines/sci/engine/scriptdebug.cpp b/engines/sci/engine/scriptdebug.cpp index 16098ab275..957930784b 100644 --- a/engines/sci/engine/scriptdebug.cpp +++ b/engines/sci/engine/scriptdebug.cpp @@ -174,13 +174,15 @@ reg_t disassemble(EngineState *s, reg_t pos, bool printBWTag, bool printBytecode break; case Script_SRelative: - if (opsize) - param_value = scr[retval.offset++]; + if (opsize) { + int8 offset = (int8)scr[retval.offset++]; + debugN(" %02x [%04x]", 0xff & offset, 0xffff & (retval.offset + offset)); + } else { - param_value = READ_SCI11ENDIAN_UINT16(&scr[retval.offset]); + int16 offset = (int16)READ_SCI11ENDIAN_UINT16(&scr[retval.offset]); retval.offset += 2; + debugN(" %04x [%04x]", 0xffff & offset, 0xffff & (retval.offset + offset)); } - debugN(opsize ? " %02x [%04x]" : " %04x [%04x]", param_value, (0xffff) & (retval.offset + param_value)); break; case Script_End: |