Commit Graph
428 Commits
Author SHA1 Message Date
Colin Snover 0f2748b15a SCI32: Implement kRobot 2016-08-19 14:08:22 -05:00
Martin Kiewitz c270b30a79 SCI: Fix pseudo mouse in various SCI1 games like e.g. Larry5
Pseudo mouse was functionality in SCI1+ games, that allowed the
user to control the mouse via keyboard cursor keys.

This new class only worked, when a tiny difference inside
the keyboard driver happened on kMapKeyToDir calls. We previously
tried to enable this behavior depending on cursor type, but
this didn't work correctly (Larry 5 for example was not detected
as such, but had PseudoMouse support).
2016-08-13 14:58:07 +02:00
Colin Snover 2071196f42 SCI32: Add bitmap segment and remove GC option from hunk segment 2016-08-01 10:37:14 -05:00
Colin Snover 4a637d65c3 SCI32: Enable optional explicit memory management of hunk entries
Bitmaps in ScrollWindow and Robot code are managed by the kernel
and not by game scripts, although they must be able to be
referenced through a reg_t. To prevent incorrect GC of bitmaps
that are in use but not referenced by any game script, explicit
memory management of hunk entries can be enabled.
2016-08-01 10:37:14 -05:00
Colin Snover 4cfc387602 SCI32: Split GfxPalette and GfxPalette32 + HunkPalette 2016-07-11 10:39:50 -05:00
Willem Jan Palenstijn 08f1727b08 SCI: Improve kernel subfunction logging
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-07-02 21:25:53 +02:00
Colin Snover a613a27b44 SCI32: Implement line drawing (kAddLine/kUpdateLine/kRemoveLine)
This line drawing code lives in a remodelled GfxPaint32 class
that is totally separate from GfxPaint16.
2016-06-21 08:14:12 -05:00
Colin Snover 79ddb9e605 SCI: Allow debugging output of all VM variables in one shot 2016-05-25 12:36:53 -05:00
Johannes Schickel 1c6112e121 SCI: Introduce accessors for SegmentObjTable entries.
This makes code not use _table directly whenever possible. An exception is the
save game code which is not easy to adapt due to design deficiencies.
2016-03-25 01:15:26 +01:00
Colin Snover 13f2a2c3bd SCI32: Add debugger command to view screen items in the visible plane list 2016-03-07 16:46:25 -06:00
Filippos Karapetis cdbd7c8add SCI: Use uint32 instead of unsigned int 2016-03-01 01:12:58 +02:00
Lars Skovlund ca623ff490 SCI: Fix compilation on amigaos4 2016-02-29 20:16:37 +01:00
Lars Skovlund 98878d69b8 SCI: Add vocab994 console command
This is intended for early SCI2, but should work with older SCI too,
not that we need it.
2016-02-29 16:00:13 +01:00
Martin Kiewitz 82165bb6f6 SCI: Improve kAnimate fastcast detection, Remove EQ1 hack
- Add "kAnimate fast cast state" to "version" debug command
- Make it possible for script patcher signatures to get fully
used outside of the regular script patcher
- Remove previous fastcast detections and replace them with
a signature heuristic
- Remove object name checking, when fastcast global is set
- Heuristic detects "fast cast" support incorrectly for multilingual
KQ5, but it seems the game never sets the global, so it won't
matter. KQ5 CD (also SCI1 late) has fastcast support.
- Remove hack in GfxView::draw
- Add lots of comments to ScriptPatcher class

This fixes EcoQuest 1 Floppy showing the anemone on top of the
message box (see bug #5170)
2016-02-23 20:17:18 +01:00
Willem Jan Palenstijn ddcf204bd0 SCI: Add help for debuglevel command 2016-02-21 20:42:06 +01:00
Colin Snover 75ccabc325 SCI: Implement accurate renderer architecture for SCI32 2016-02-18 13:18:02 -06:00
Colin Snover aeee621e44 SCI32: Add initial support for palette cycling (kPalCycle) and fading (kPalFade)
Graphics palette code was rewritten between SCI1 and SCI2, so
SCI32 palette engine code has been moved to a separate GfxPalette32
class.
2016-01-07 16:35:09 -06:00
Martin Kiewitz 0dd760724e SCI32: split up SCI2.1 into EARLY/MIDDLE/LATE
- Detection works via signatures (couldn't find a better way)
- new kString subcalls were introduced SCI2.1 LATE
- kString now has signatures and is split via subcall table
- kString fix, so that KQ7 doesn't crash, when starting a chapter
- Sci2StringFunctionType removed, because no longer needed
2015-12-29 01:44:11 +01:00
Martin Kiewitz 3183ef0854 SCI: add said-details to script_said debug cmd 2015-05-14 20:41:21 +02:00
Martin Kiewitz bfab4c4cbe SCI: debug commands scro, scrs and script_said
implement string collecting for SCI3
implement object offset collecting for SCI0-SCI2
implement said-str offset collecting for SCI0-SCI1
add new debug command scro / script_objects
add new debug command script_said
string without terminating NUL now a warning
the latter happens in qfg2 for amiga room 84
2015-05-14 20:33:21 +02:00
Willem Jan Palenstijn 8466c0f08d SCI: Restore xs after calling run_vm from debugger
This fixes possible gamestate corruption when using 'send' in the
debugger to call methods.
2015-05-14 16:45:53 +02:00
Martin Kiewitz ed7007162a SCI: Scripts: identify strings + debug command
debug command is called "script_strings" / "scrs"
2015-05-04 21:19:05 +02:00
Martin Kiewitz 9a9f569f3b SCI: debugger / fix diskdump + list commands
diskdump: support for audio36+sync36
list: always show tuple for audio36+sync36
2015-03-18 23:30:32 +01:00
Willem Jan Palenstijn 58ef44eb8d SCI: Register and save playBed option to PlaySound
The playBed option is not handled yet, only stored. This increases
the savegame format version.
2015-02-14 16:06:55 +01:00
Filippos Karapetis 9783f0bbd9 SCI: Remove trailing whitespace 2014-10-28 16:17:06 +02:00
Martin Kiewitz f317e8c877 SCI: implement 8-bit color matching SCI1.1 bug
effectively fixes bug #6455
thanks to wjp and [md5]
2014-10-28 01:40:40 +01:00
Martin Kiewitz 2d45bbd1ea SCI: debugger diskdump is now able to dump '*'
dumps all resources of given type
2014-06-01 01:23:44 +02:00
Johannes Schickel 8b7672b64c ALL: Introduce typesafe Debugger::registerVar functions.
This also adds a FIXME to SCI which registered an enum type as int...
2014-05-27 02:04:08 +02:00
Johannes Schickel 30d64edac4 ALL: Make Debugger command function names conform to our guidelines. 2014-05-27 02:04:08 +02:00
Johannes Schickel ae4ffe01f0 ALL: Rename Debugger::DCmd_Register to Debugger::registerCmd. 2014-05-27 02:04:08 +02:00
Johannes Schickel 0adca2c579 ALL: Rename Debugger::DVar_Register to Debugger::registerVar. 2014-05-27 02:04:07 +02:00
Johannes Schickel daa8d57a86 ALL: Rename Debugger::DebugPrintf to Debugger::debugPrintf. 2014-05-27 02:04:07 +02:00
Johannes Schickel 8fc7d60feb SCI: Make GPL headers consistent in themselves. 2014-02-18 02:39:37 +01:00
Martin Kiewitz 8bdffcb2fb SCI: script patcher is now a separate class 2013-12-04 20:42:16 +01:00
Filippos Karapetis 82b52fc644 SCI: Handle objects with a dot in their name
An example is the object 'dominoes.opt' in Hoyle 3, script 101
2013-10-30 08:47:46 +02:00
Willem Jan Palenstijn 23da164136 SCI: Fix memory leak 2013-04-17 23:34:06 +02:00
Willem Jan Palenstijn d17029dca2 SCI: Add missing break 2013-04-15 21:14:32 +02:00
Willem Jan Palenstijn e34bfce2c2 SCI: Remove useless checks 2013-04-15 21:05:44 +02:00
Willem Jan Palenstijn fbc1aac6a9 SCI: Fix uninitialized variables 2013-04-15 21:02:27 +02:00
Filippos Karapetis cc1bb39956 SCI: Add documentation for underscores in object names and fix a warning 2013-01-22 01:57:34 +02:00
Filippos Karapetis 5d90c6fb3e SCI: Use underscores as substitute characters for spaces in object names
This helps in debugging objects with spaces in their names (e.g. the
"Glass Jar" object in Pepper - bug #3601090). Now, this object can be
examined like "vo Glass_Jar"
2013-01-22 01:53:50 +02:00
Willem Jan Palenstijn 5f3f21e20e SCI: Fix some console output formatting 2012-10-06 13:07:12 +02:00
Matthew Hoops 18823198ad VIDEO: Merge AdvancedVideoDecoder into VideoDecoder 2012-08-16 14:00:14 -04:00
Matthew Hoops 7294a1cbcf VIDEO: Remove the Coktel video code from using the VideoDecoder API
After discussing with DrMcCoy, we felt this the best way to proceed. A wrapper class that implements AdvancedVideoDecoder is still around for use in SCI.
2012-08-16 12:17:23 -04:00
Matthew Hoops d4231fda1c SCI: Rewrite RobotDecoder to use the AdvancedVideoDecoder API 2012-07-22 23:17:36 -04:00
Matthew Hoops 0f0c6f9354 VIDEO: Rewrite the AVI code to use AdvancedVideoDecoder
In addition to using the new API, it should theoretically support multiple audio and video tracks now but that has not been tested.
2012-07-22 14:13:20 -04:00
Matthew Hoops a12b3ea2dd SCI: Move the SEQ code to the new VideoDecoder API 2012-07-20 20:52:58 -04:00
Filippos Karapetis 50dc5009c8 SCI: Ignore another leftover script from KQ7 in the debugger 2012-07-08 22:01:11 +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 76f3f1b136 SCI: Fix warnings 2012-06-21 22:24:22 +03:00