aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/engine/vm.cpp
AgeCommit message (Collapse)Author
2016-09-29SCI: Deduplicate call origin formattingColin Snover
2016-09-29SCI: Add prefix to global variable constantsColin Snover
2016-09-29SCI: Replace magic numbers for globals with named constantsColin Snover
2016-09-29SCI: Generalize code for getting information on the current callColin Snover
2016-08-12SCI32: Implement kShowMovieColin Snover
2016-08-11SCI32: Temporarily revert kShowMovie due to buildbot failuresColin Snover
Revert "SCI32: Fix KQ7 1.51 video background" This reverts commit c8affb54cca259f37522216bad739be085bf9caa. Revert "SCI32: Fix crash when kShowMovie is called but the video cannot be found" This reverts commit 93b06f4a9e08de281ee7eb9c780ceac147c3fb23. Revert "SCI32: Fix KQ7 1.51 basic video playback" This reverts commit cdab24aa07c18ad4a25a1659f7fca15cca5e358e. Revert "SCI32: Additional Video32 documentation" This reverts commit 4ff0924e57a9bc9101ee0799a967fe3373dd2574. Revert "SCI32: Implement kShowMovie" This reverts commit 13297c19298c5ad73c9e996c5c31ca91de124911.
2016-08-11SCI32: Implement kShowMovieColin Snover
2016-07-02SCI: Remove unexpected side effect from ExecStack constructorWillem Jan Palenstijn
The ExecStack constructor set argp[0] to argc before. This is now moved to the caller, to make this action more explicit.
2016-07-02SCI: Remove unclear &rest handlingWillem Jan Palenstijn
Modifying a value above the stack pointer doesn't seem to make much sense. This was added in FreeSCI back in 2002 in a pair of commits that did not make clear what the purpose of this was. My guess is that it attempted to adjust argc, but failed. This wouldn't have been noticed since argc was always set correctly by make_exec_stack_entry (which is now the ExecStack constructor).
2016-07-02SCI: Improve kernel subfunction loggingWillem Jan Palenstijn
ExecStack now stores the kernel call number as well as the subfunction. This allows kStub and backtraces to log the actual subfunction called. The kernel call number in ExecStack used to be stored in the debugSelector field. It now has its own field, to avoid confusion.
2016-03-01SCI32: Fix index/offset mixup in updateInfoFlagViewVisibleWillem Jan Palenstijn
2016-02-27SCI32: Update InfoFlagViewVisible from send_selectorWillem Jan Palenstijn
2016-02-27SCI32: Update InfoFlagViewVisible in VM opcodesWillem Jan Palenstijn
2016-02-05SCI: Clean up the op_infoToa and op_superToa SCI3 opcodesFilippos Karapetis
2015-03-20SCI: improve debug output for signature mismatchMartin Kiewitz
dump parameter list to debugger as well
2014-02-18SCI: Make GPL headers consistent in themselves.Johannes Schickel
2013-10-31SCI: Update ScummVM's game audio options for SCI1.1 CD gamesFilippos Karapetis
This ensures that ScummVM's game audio options for speech and subtitles get updated when they are changed in the game GUI
2012-09-26JANITORIAL: Remove trailing whitespaces.Johannes Schickel
Powered by: git ls-files "*.cpp" "*.h" "*.m" "*.mm" | xargs sed -i -e 's/[ \t]*$//'
2012-07-26SCI: Add some debug code to op_lineFilippos Karapetis
2012-06-23SCI: Change the program counter (PC) to be a 32-bit variableFilippos Karapetis
This is needed for future support of large SCI3 scripts. The program counter is isolated and does not interfere with other parts of the VM, plus it does not get stored in saved games, so it's pretty straightforward to convert
2012-06-23SCI: Clean up validateExportFunc() and related functionsFilippos Karapetis
Also renamed some SCI3 related code to indicate when it's SCI3 specific
2012-06-18SCI: Add setter/getter methods to reg_t'sFilippos Karapetis
No functionality change has been made with this commit. This avoids setting and getting the reg_t members directly, and is the basis of any future work on large SCI3 scripts (larger than 64KB)
2012-06-15SCI: Change getClassAddress() to only require the caller segmentFilippos Karapetis
The caller offset is never actually used inside the function
2012-01-15SCI: Ignore an invalid export in a script in the demo of RAMAFilippos Karapetis
2011-11-29SCI: Fix restarting SCI engine with different SCI versionWillem Jan Palenstijn
2011-11-28SCI: Added handling of invalid jump offsets (e.g. QFG2, script 260)Filippos Karapetis
2011-11-05SCI: Made more fields of the Script class private. Some cleanup.Filippos Karapetis
2011-10-16SCI: Script 64036 in Torin's passage contains an invalid exportFilippos Karapetis
2011-09-22SCI: Fixed compilation with VM_DEBUG_SEND definedFilippos Karapetis
2011-06-25SCI: Fix incorrect usage of sizeofWillem Jan Palenstijn
Thanks to salty-horse for the reports.
2011-06-20ALL: Remove trailing whitespacesMax Horn
This tries to make our code a bit more compliant with our code formatting conventions. For future use, this is the command I used: git ls-files "*.cpp" "*.h" | xargs sed -i -e 's/[ \t]*$//'
2011-06-11SCI: Changed order of script and room in error messagesmd5
This matches the order in which workarounds are stored in workarounds.cpp
2011-05-27Revert "SCI: Don't attempt to modify null/disposed objects."Lars Skovlund
This fix for bug #3303802 is a potential cause of unreproducible bugs in all SCI games that taint savegames. This reverts commit 48140a012d69d76de5ae80de7ca926e71c39cd03.
2011-05-27SCI: Don't attempt to modify null/disposed objects.md5
These cases occur usually because of script bugs. Fixes script bug #3303802 - "SCI: PQ1VGA - Crash at the jail"
2011-05-13SCI: Don't include several debug tables when REDUCE_MEMORY_USAGE is definedmd5
2011-05-12GIT: Clean up: Suppress SVN tags, now uselessstrangerke
2011-04-28JANITORIAL: Reduce header dependencies in shared codeOri Avtalion
Some backends may break as I only compiled SDL
2011-03-28SCI: Fix Compilation with --enable-release set.D G Turner
2011-03-28SCI: Renamed restAdjust to r_rest (like r_acc and r_prev)md5
2011-03-27SCI: Moved some debug functions from vm.cpp to scriptdebug.cppmd5
2011-03-26SCI: Removed the READ_VAR and WRITE_VAR wrappersmd5
2011-03-26SCI: Refactored and cleaned up the VM call stack handling codemd5
- Removed the CallsStruct intermediate stack. Calls are inserted directly in the execution stack - Added a constructor for the ExecStack struct and removed add_exec_stack_varselector() and add_exec_stack_entry()
2011-03-25SCI: Reordered some functionsmd5
2011-03-25SCI: Cleaned up the BreakpointType enum and documented the bpe commandmd5
2011-03-25SCI: Cleaned up send_selector()md5
- Placed all of the associated debug code in a separate function - Unified debug output
2011-03-04SCI: Improved debug output of validate_property()md5
2011-02-28SCI: Fix crash with hunk refs in logkernel outputWillem Jan Palenstijn
2011-02-22SCI: Added code to aid in detecting infinite loops in scriptsmd5
When the ABORT_ON_INFINITE_LOOP define is defined in vm.cpp, the VM will now abort in cases where a conditional statement is followed by an unconditional jump (which will most likely lead to an infinite loop). Aids in detecting infinite loop bugs such as #3040722.
2011-02-21SCI: Fixed script bug #3040722 in QFG3md5
2011-02-21SCI: Added a custom modulo reg_t operatormd5
This version only handles signed integers. The modulo operator was changed in SCI0 late (Iceman, and perhaps all SCI0 0.000.685 and later) so that it handles negative numbers as well. We need to see if there really is a need to keep two different modulo operators (which will only be necessary if any SCI0 game asks for the modulo of a negative number by mistake, or a number larger than 32767). Thus, error out in such a case for SCI0, so that this can be investigated properly