aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/engine/vm.cpp
AgeCommit message (Collapse)Author
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
2011-02-20SCI: Moved the gcCountdown() code inside the op_callk case, since that's the ↵md5
only place where it's used
2011-02-19SCI: Refactored the reg_t related operations and comparisonsmd5
This refactoring reduces a lot of code duplication, allows for better control, makes the code more readable and allows us to remove a lot of now unneeded workarounds
2011-02-15SCI: Removed several redundant helper functionsmd5
Removed validate_arithmetic(), signed_validate_arithmetic(), validate_unsignedInteger() and validate_signedInteger()
2011-01-15SCI: cleaned up checkSelectorBreakpoint()Filippos Karapetis
svn-id: r55250
2011-01-07SCI: Moved the handling of the op_line debug opcode inside ↵Filippos Karapetis
readPMachineInstruction() The handling has been moved inside readPMachineInstruction(), instead of run_vm(), as a lot of parts of the code depend on this function handling all opcodes correctly (e.g. the script dissassembler, the features class, find_callk etc) svn-id: r55154
2011-01-01SCI: debugC calls no longer require a debug level of 2 to show outputFilippos Karapetis
svn-id: r55086
2010-12-22SCI: Sync in-game speech/subtitle options with the ones from the ScummVM GUI.Filippos Karapetis
- Obtain speech/subtitle options from the ScummVM GUI and set them in CD games. - Also, set simultaneous speech and subtitles in games that support them (currently SQ4 CD and Freddy Pharkas CD). There is no GUI option for setting simultaneous speech and subtitles in Freddy Pharkas CD, so this is the only current way of achieving this (unless the text speed slider inside the Freddy Pharkas options window is repurposed - but that will require extensive changes) svn-id: r55005
2010-11-21SCI: Removed incorrect pointer arithmetic support for SCI2 stringsFilippos Karapetis
There was never pointer arithmetic support in SCI2 and newer games svn-id: r54400
2010-11-19SCI: Only handle seg_type_string if ENABLE_SCI32 is definedLars Persson
svn-id: r54376
2010-11-19SCI3: Implement new opcode 0x4c.Lars Skovlund
svn-id: r54370
2010-11-19SCI: Added pointer arithmetic support for SCI2 stringsFilippos Karapetis
svn-id: r54365
2010-11-19SCI: Moved the Object class in a separate fileFilippos Karapetis
svn-id: r54361
2010-11-18SCI3: Fix new opcode 0x4eLars Skovlund
svn-id: r54347
2010-11-18SCI3: Added another previously unused opcode (0x27 / 0x4e)Filippos Karapetis
svn-id: r54341
2010-11-18SCI3: Add proper support for the calle instructionLars Skovlund
svn-id: r54327