aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/engine/vm.h
AgeCommit message (Collapse)Author
2009-07-18SCI: Fix breakpointsWillem Jan Palenstijn
svn-id: r42599
2009-07-11Moved the kernel and the vocabulary outside of the engine state (they're ↵Filippos Karapetis
static data, which never changes during a game) svn-id: r42398
2009-07-08Some cleanup for the script debugger code:Filippos Karapetis
- Renamed struct DebugState to ScriptState and r_amp_rest to restAdjust inside EngineState. Changed restAdjust to be a uint16 (actually it is a uint16, but it was being casted back and forth from an unsigned integer, so this clears up its type and size) - Moved the script state variables from inside the run_vm() into the ScriptState struct, so that they can be accessed by the console commands and the script debugger all the time, and removed the weird isValid code svn-id: r42260
2009-07-07Cleanup: added an enum for the auto-detected features, removed the selectors ↵Filippos Karapetis
which are only used for auto-detection from the convenience selector map and placed feature auto-detection in a separate function. Also, now the automatically detected graphics resources are shown in the console. svn-id: r42212
2009-07-07Added auto-detection for games with older headers for script blocks, and ↵Filippos Karapetis
removed game flag GF_SCI0_OLD svn-id: r42211
2009-07-05- Fixed feature auto-detection for Conquests of CamelotFilippos Karapetis
- Auto-detected features are now printed in the console (to ease debugging) svn-id: r42132
2009-07-05SCI1 games with absolute parameters to lofs instructions are automatically ↵Filippos Karapetis
detected now. Removed the GF_SCI1_LOFSABSOLUTE game flag svn-id: r42118
2009-07-04- Kernel function names are no longer loaded from vocab.999, but are ↵Filippos Karapetis
constructed from the hardcoded function table, depending on the SCI version used - SCI0 games using older graphics functions are now detected by the presence of the "curAngle" selector - SCI0 games using a SCI1 table (like KQ1 demo version and full version) are detected by the presence of the "sightAngle" selector (as no SCI0 game seems to have it) svn-id: r42095
2009-07-04Newer DoSound() semantics are now detected automatically, by the existence ↵Filippos Karapetis
of the "setVol" selector. Removed game flag GF_SCI1_NEWDOSOUND svn-id: r42087
2009-06-24SCI: Partial support for dual-language games.Walter van Niftrik
svn-id: r41833
2009-06-18PatchMax Horn
svn-id: r41647
2009-06-06Store long-term pointers to object variables in a new ObjVarRef struct.Willem Jan Palenstijn
Storing them as reg_t* could cause the pointers to become invalid when they pointed into CloneTable since CloneTable can be re-allocated. svn-id: r41220
2009-06-05Moved some more debug commands to ScummVM's coneole and removed some unused codeFilippos Karapetis
svn-id: r41198
2009-06-04SCI: Renamed EngineState::flags and version to _flags and _version ↵Max Horn
(following our conventions); also slightly changed the EngineState constructor to init _version & _flags, and used this to make them constant svn-id: r41177
2009-06-04SCI: Moved MemObject code into a separate source fileMax Horn
svn-id: r41166
2009-06-04SCI: cleanupMax Horn
svn-id: r41165
2009-06-04SCI: Renamed various debug related global variables to have a g_ prefix; and ↵Max Horn
moved any 'extern' decls of them into a new header file svn-id: r41163
2009-06-02Removed the gfxw_new_visual and gfxw_new_port wrappers, moved _kfuncTable ↵Filippos Karapetis
inside the Kernel class and moved gfxw_find_port inside the GfxVisual struct svn-id: r41125
2009-05-31Removed script_error_flag and script_debug_flag, which were used to error ↵Filippos Karapetis
out if something went wrong and open the debugger console. Changed all the places where they were used to error() out instead, as ScummVM's debugger console can open on error() svn-id: r41073
2009-05-31- Further objectification of the SCI vocabulary functionsFilippos Karapetis
- Rewrote the sci_opcodes enum so that it's easier to read - Made the engine error out if data is sent to an invalid selector (which is a fatal condition) svn-id: r41069
2009-05-31More objectification of the Vocabulary functionsFilippos Karapetis
svn-id: r41057
2009-05-30- Removed debug_mode from the engine stateFilippos Karapetis
- Turned all SCIkwarn and SCIkdebug functions to ScummVM's debugC function - Placed some debug code in appropriate defines: DEBUG_PARSER, DEBUG_AVOIDPATH and DEBUG_SOUND - Removed the "debuglog" command and the "script_checkloads_flag" and "sci_debug_flags" variables svn-id: r41033
2009-05-28SCI: Fix potential dangling pointer more robustly,Willem Jan Palenstijn
by changing the executionStack implementation to a list. svn-id: r40971
2009-05-19SCI: Some debugger fixes and cleanup.Walter van Niftrik
svn-id: r40732
2009-05-19SCI: Doxygenified a few commentsMax Horn
svn-id: r40720
2009-05-19SCI: Introduce a new subclass StringFrag of MemObject (does nothing right ↵Max Horn
now); switched MemObject to subclass Common::Serializable svn-id: r40714
2009-05-18SCI: Got rid of EngineState::execution_stack_pos; overally, the resulting ↵Max Horn
code should be even stricter in detecting invalid VM stack access (and some bugs when loading saves might be fixed now...) svn-id: r40694
2009-05-18SCI: Removed ENTRY_IS_VALID macroMax Horn
svn-id: r40690
2009-05-18SCI: Fixed Table::initTable to invoke _table.clear()Max Horn
svn-id: r40687
2009-05-18SCI: Replaced SegManager::getHeap() by Script::getHeap()Max Horn
svn-id: r40683
2009-05-15SCI: Turned several script related SegManager methods into Script methodsMax Horn
svn-id: r40597
2009-05-15Simplified SCI versions to be SCI version generations, and fixed some game ↵Filippos Karapetis
entries in the process. Also, added a sanity check for invalid game entries svn-id: r40596
2009-05-14SCI: A provisional fix for the "invalid selector" problem in KQ6 and otherWalter van Niftrik
SCI1.1 games. svn-id: r40575
2009-05-14- Replaced SCI_VERSION_FTU_LOFS_ABSOLUTE with the GF_SCI1_LOFSABSOLUTE game flagFilippos Karapetis
- Moved the version defines outside of versions.h svn-id: r40559
2009-05-13- Simplified SCI version detection a bit and clarified the different version ↵Filippos Karapetis
feature flags (not used yet) - Removed the version verification functions (they were only used for two specific cases, but the SCI executable reader is able to detect the exact SCI game version anyway, so there is no point in having these) - Removed the empty GameFlags structure and replaced it with a 32-bit integer instead svn-id: r40524
2009-05-12SCI: Changed object / script local vars storage to use a Common::ArrayMax Horn
svn-id: r40515
2009-05-11SCI: Simplified the Table class, by making it use an Common::Array ↵Max Horn
internally. Increased savegame version, breaking compatibility to the previous one -- sorry for that, but some of my previous changes accidentally messed up the table syncing, resulting in messed up savegames anyway; these breakages should be fixed with this commit svn-id: r40453
2009-05-10SCI: Replaced Cplain odeBlock array in class Script by a ↵Max Horn
Common::Array<CodeBlock> svn-id: r40433
2009-05-10SCI: Changed object list in Script instances to use Common:::ArrayMax Horn
svn-id: r40431
2009-05-08SCI: Moved findCanonicAddress from SegInterface to MemObjectMax Horn
svn-id: r40376
2009-05-08SCI: Moved freeAtAddress from SegInterface to MemObjectMax Horn
svn-id: r40375
2009-05-08SCI: Renamed dstack_t -> DataStack; removed obsolete KF_OLD constantMax Horn
svn-id: r40374
2009-05-08SCI: Started to merge SegInterface into MemObjectMax Horn
svn-id: r40373
2009-05-04This should fix linking on PSP.Johannes Schickel
svn-id: r40310
2009-05-04SCI: Got rid of heapmgr.h; further improve the Table codeMax Horn
svn-id: r40308
2009-05-04SCI: Unified serializing code for Table subclasses, using template ↵Max Horn
specialization. This whole syncWithSerializer / DefaultSyncer / ArraySyncer code is experimental work in progress ;) svn-id: r40306
2009-05-04SCI: Fixed savestate loadingMax Horn
svn-id: r40305
2009-05-04SCI: Added doxygen comment to MemObject::MemObjectMax Horn
svn-id: r40303
2009-05-03SCI: Started adding methods to MemObject subclasses: constructors, ↵Max Horn
destructors, dereference() (and currently commented out refs to Common::Serializable svn-id: r40295
2009-05-03SCI: Completed transition from MemObject (a union of various structs) to ↵Max Horn
MemObjectNEW (a baseclass for these structs) svn-id: r40294