[Scummvm-git-logs] scummvm master -> fab43f0f714a3bcfc314d7da66430e75c07b2a50

wjp wjp at usecode.org
Sat Oct 21 18:59:09 CEST 2017


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
fab43f0f71 SCI: Fix offsets in disasm for multi-param opcodes


Commit: fab43f0f714a3bcfc314d7da66430e75c07b2a50
    https://github.com/scummvm/scummvm/commit/fab43f0f714a3bcfc314d7da66430e75c07b2a50
Author: Willem Jan Palenstijn (wjp at usecode.org)
Date: 2017-10-21T18:55:40+02:00

Commit Message:
SCI: Fix offsets in disasm for multi-param opcodes

This code was assuming that retval points to the start of the next
instruction, which is only true if the current parameter is the last
one. This fixes op_call printing.

Changed paths:
    engines/sci/engine/scriptdebug.cpp


diff --git a/engines/sci/engine/scriptdebug.cpp b/engines/sci/engine/scriptdebug.cpp
index bae1fb4..9390296 100644
--- a/engines/sci/engine/scriptdebug.cpp
+++ b/engines/sci/engine/scriptdebug.cpp
@@ -260,7 +260,7 @@ reg_t disassemble(EngineState *s, reg32_t pos, const Object *obj, bool printBWTa
 				retval.incOffset(2);
 			}
 
-			const uint32 offset = findOffset(param_value, script_entity, retval.getOffset());
+			const uint32 offset = findOffset(param_value, script_entity, pos.getOffset() + bytecount);
 			reg_t addr;
 			addr.setSegment(retval.getSegment());
 			addr.setOffset(offset);
@@ -277,11 +277,11 @@ reg_t disassemble(EngineState *s, reg32_t pos, const Object *obj, bool printBWTa
 			if (opsize) {
 				int8 offset = (int8)scr[retval.getOffset()];
 				retval.incOffset(1);
-				debugN("\t%02x  [%04x]", 0xff & offset, kOffsetMask & (retval.getOffset() + offset));
+				debugN("\t%02x  [%04x]", 0xff & offset, kOffsetMask & (pos.getOffset() + bytecount + offset));
 			} else {
 				int16 offset = (int16)READ_SCI11ENDIAN_UINT16(&scr[retval.getOffset()]);
 				retval.incOffset(2);
-				debugN("\t%04x  [%04x]", 0xffff & offset, kOffsetMask & (retval.getOffset() + offset));
+				debugN("\t%04x  [%04x]", 0xffff & offset, kOffsetMask & (pos.getOffset() + bytecount + offset));
 			}
 			break;
 





More information about the Scummvm-git-logs mailing list