Commit Graph
169 Commits
Author SHA1 Message Date
Filippos Karapetis d61c5ae529 SCI: make g_base_opcode_formats and SciOpcodes a bit more readable 2012-07-04 11:57:40 +03:00
Filippos Karapetis 20b6770808 SCI: Change the program counter (PC) to be a 32-bit variable
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-23 21:45:26 +03:00
Filippos Karapetis 2b50824133 SCI: Add setter/getter methods to reg_t's
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-18 05:24:06 +03:00
Filippos Karapetis 041b1447c0 SCI: Replace RAW_IS_OBJECT with a method 2012-06-15 22:32:15 +03:00
Filippos Karapetis b5eac1b35b SCI: Fix case of the SciOpcodes enum 2012-05-20 21:35:27 +03:00
Filippos Karapetis fceeca2666 SCI: Change sci_opcodes to CamelCase 2012-05-20 20:16:13 +03:00
Willem Jan Palenstijn 0192d2f2de SCI: Fix restarting SCI engine with different SCI version 2011-11-29 18:34:34 +01:00
strangerke 69b1485a22 GIT: Clean up: Suppress SVN tags, now useless 2011-05-12 01:16:22 +02:00
md5 76b68bf88c SCI: Set the GC_INTERVAL define to its hexadecimal equivalent 2011-03-28 02:23:56 +03:00
md5 cc074b013f SCI: Refactored and cleaned up the VM call stack handling code
- 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-26 02:37:10 +02:00
Filippos Karapetis d53e5fbfb7 SCI: Removed the restoring parameter of the run_vm() function
svn-id: r51076
2010-07-20 23:15:07 +00:00
Martin Kiewitz 6402d64419 SCI: cleanup of execstack, output of backtrace slightly modified, is now also displaying local calls and exports
svn-id: r50445
2010-06-28 14:21:56 +00:00
Max Horn 30218a2c32 SCI: Make Script member vars private; add const qualifiers
Only three Script members remain public (for now)

svn-id: r50428
2010-06-28 11:22:20 +00:00
Filippos Karapetis bb992b0b93 SCI: Moved all the script-related code inside script.cpp/.h, and all script opcode-related code inside vm.cpp/.h
svn-id: r50396
2010-06-27 20:38:43 +00:00
Filippos Karapetis 7a14846bdd Removed the misleading getHeap() function (only valid for SCI0-SCI1), plus removed some unused defines
svn-id: r50358
2010-06-26 23:48:27 +00:00
Martin Kiewitz 258494f036 SCI: adding capability to resolve local calls as well for valgrind-sci, adding another workaround for a script bug in sq1 (this time export 1 gets called locally)
svn-id: r50308
2010-06-26 08:29:55 +00:00
Martin Kiewitz fc4fa25ec4 SCI: adding capability for detecting export-calls into valgrind-sci, adding workaround for export 1 of script 703 in sq1 (gets called from various objects)
svn-id: r50292
2010-06-25 22:34:53 +00:00
Matthew Hoops 7edbcc26f7 Cleanup uninitialized read workaround(s).
svn-id: r50225
2010-06-24 17:48:15 +00:00
Martin Kiewitz e45ffc68a3 SCI: created a workaround table for uninitialized reads, removing old commented out workarounds for pharkas and laura bow 2
svn-id: r50214
2010-06-24 13:17:45 +00:00
Filippos Karapetis 0a102981f0 Moved the SelectorCache struct inside selector.h, where it belongs, and fixed some header dependencies in the process
svn-id: r50183
2010-06-23 15:23:37 +00:00
Martin Kiewitz eeba2812c1 SCI: adding some more global scaling code, adding vanishingY and vanishingX as selectors
svn-id: r50180
2010-06-23 13:42:09 +00:00
Martin Kiewitz 3bc011357b SCI: some initial work on global scaling
svn-id: r50179
2010-06-23 12:58:14 +00:00
Filippos Karapetis 9b8e4e8359 Moved all of the game init/run/exit logic inside the SciEngine class
svn-id: r49559
2010-06-10 07:32:05 +00:00
Filippos Karapetis 2c629a04dd Merged script_init_engine() and game_init() and cleaned up SciEngine::run() a bit
svn-id: r49537
2010-06-09 10:45:54 +00:00
Filippos Karapetis 67690e89a3 Merged _game_run() inside game_run(). Some cleanup
svn-id: r49513
2010-06-08 18:44:27 +00:00
Filippos Karapetis 3c82b6578f Now that EngineState is not deleted when loading games, we can move some more state-related variables to it, and remove several FIXME's about non-const global variables. Also, the entries in the data stack are now deleted when loading (fixes a memory leak - thanks to digitall for this).
svn-id: r49465
2010-06-06 23:00:33 +00:00
Filippos Karapetis 2ae4c5796b The setCursor selector is no longer used for the detection of the kSetCursor() kernel function semantics
svn-id: r49408
2010-06-03 10:44:50 +00:00
Filippos Karapetis 86b452d36c Moved several object-related defines inside vm.h into segment.h, where the Object class resides. Also, removed several unused defines
svn-id: r49406
2010-06-03 10:16:21 +00:00
Filippos Karapetis 5f2ff0b1e7 Limit access to the _classTable array (now it's directly accessible only inside saveLoadWithSerializer()
svn-id: r49318
2010-05-29 23:56:37 +00:00
Filippos Karapetis 67de5b1bd3 Mass renaming of selector-related functions, and removed some defines which were just cloaking functions with a different name
- GET_SEL32 -> readSelector
- GET_SEL32V -> readSelectorValue
- PUT_SEL32 -> writeSelector
- PUT_SEL32V -> writeSelectorValue
Also, changed some selector-related function names and variables to CamelCase

svn-id: r49317
2010-05-29 23:37:15 +00:00
Matthew Hoops d49fb8f42d Add support for showing the icon bar in SCI1.1 Mac.
svn-id: r49196
2010-05-24 17:21:11 +00:00
Filippos Karapetis 9be4f6250c Made shrink_execution_stack() a member of EngineState
svn-id: r49159
2010-05-23 16:44:36 +00:00
Filippos Karapetis 852cb16c49 Moved the breakpoint information inside the DebugState struct
svn-id: r49092
2010-05-19 07:25:06 +00:00
Filippos Karapetis f3892a506b - Removed the wrapper kalloc, kmem and kfree functions. Now, the associated Segment manager functions allocateHunkEntry, getHunkPointer and freeHunkEntry are used directly (which are more descriptive, anyway)
- Replaced the GET_SEGMENT macro by a method of the segment manager
- Removed the unused reference to the created hunk in allocateHunkEntry(), only the reg_t reference to it is returned now

svn-id: r49078
2010-05-18 13:05:09 +00:00
Filippos Karapetis 8b7c29a4ad Moved breakpointWasHit inside the DebugState struct, thus resolving a FIXME
svn-id: r49071
2010-05-18 09:18:27 +00:00
Matthew Hoops 3dda73d9a2 Add initial support for KQ6 Mac. Wrapper functions for read/writing to pointers are now used (found in util.*) for code that has different endianness in SCI1.1+ Mac games. Add support for Mac 'snd ' and 'CURS' resources. QFG1 Mac is not yet playable due to script compression.
svn-id: r49070
2010-05-18 04:17:58 +00:00
Max Horn 26b7f0bbb9 SCI: Remove hack in convertSierraGameId which caused a memory leak
svn-id: r48083
2010-02-17 23:36:50 +00:00
Max Horn 3b4c54f0e5 SCI: Add function readPMachineInstruction()
svn-id: r47956
2010-02-07 12:13:59 +00:00
Martin Kiewitz 3545438900 SCI: adding back selector for sci32
svn-id: r47879
2010-02-04 17:55:23 +00:00
Martin Kiewitz 6ea821fac7 SCI: adding selectors bottom and right
svn-id: r47876
2010-02-04 16:06:56 +00:00
Martin Kiewitz e3cab50c15 SCI: adding support for resX, resY selectors for sci32
svn-id: r47874
2010-02-04 12:01:19 +00:00
Filippos Karapetis 887ca3145e Initial implementation of text drawing for SCI2 (it's a hack for now, done the "SCI0-SCI11" way, and text splitting is wrong...)
svn-id: r47838
2010-02-03 01:36:53 +00:00
Max Horn 09046947d4 SCI: Make add_exec_stack_entry & add_exec_stack_varselector static / private
svn-id: r47837
2010-02-03 01:34:39 +00:00
Max Horn 4ecaf4d4ac SCI: restoring param of run_vm is a bool, not an int
svn-id: r47834
2010-02-03 01:33:23 +00:00
Max Horn 4b19acf255 SCI: Use Common::List and Common::String to simplify breakpoint handling (untested)
svn-id: r47824
2010-02-02 22:52:41 +00:00
Matthew Hoops d883b6215f Detect whether to use the modified SCI2 or SCI2.1 kernel table based on the kDoSound call used in Sound::play(), which fixes at least my version of KQ7 - probably others. The kernel table initialization now occurs after the script signatures are adjusted as we need it adjusted before checking through Sound::play for the kDoSound call.
svn-id: r47645
2010-01-28 18:57:31 +00:00
Johannes Schickel aed02365ec Strip trailing spaces/tabs.
svn-id: r47541
2010-01-25 01:39:44 +00:00
Martin Kiewitz 0dddf869fb SCI: changed scalesignal to scaleSignal - selector works now :)
svn-id: r47312
2010-01-15 21:26:02 +00:00
Martin Kiewitz 0338198876 SCI: adding scalesignal selector
svn-id: r47306
2010-01-15 13:33:26 +00:00
Filippos Karapetis f66d5a7f53 SCI: Removed the old graphics code
svn-id: r47005
2010-01-05 00:54:53 +00:00