Commit Graph
691 Commits
Author SHA1 Message Date
Willem Jan Palenstijn a1bb715611 SCI: Fix stepping in debugger
svn-id: r42587
2009-07-18 12:51:12 +00:00
Filippos Karapetis 31a0c80905 Moved the kernel and the vocabulary outside of the engine state (they're static data, which never changes during a game)
svn-id: r42398
2009-07-11 23:45:54 +00:00
Filippos Karapetis 116d225411 Changed an incorrect warning back to scidprintf - the relevant message is for testing only
svn-id: r42394
2009-07-11 19:38:41 +00:00
Willem Jan Palenstijn 8dd3492194 SCI: don't let TimerSongIterator loop forever, and don't immediately
signal completion when starting it. This fixes a sync issue with
the departing spaceship at the start of SQ4CD (after the intro).

svn-id: r42385
2009-07-11 15:00:40 +00:00
Travis Howell 9594beb39f Only error out, if checkStaticSelectorNames() fails.
svn-id: r42376
2009-07-11 07:03:28 +00:00
Filippos Karapetis 2b5fac58d5 Applied patch 2818733 - "SCI: Timer iterator for audio resources played via doSound"
svn-id: r42375
2009-07-11 06:53:39 +00:00
Filippos Karapetis 0b47fa50ae Applied a slightly modified patch from clone2727 which adds static selector names to some demos which are missing them (KQ4, LSL1, LSL3, Iceman and Christmas1992)
svn-id: r42372
2009-07-11 06:33:19 +00:00
Filippos Karapetis 763c6c8ca1 Fixed regression in the script parser from commit 42260
svn-id: r42371
2009-07-11 06:19:29 +00:00
Filippos Karapetis 982153e0ab restAdjust should be a signed integer. Fixes crashes with SCI1 games that take absolute lofs parameters (a regression of commit #42260)
svn-id: r42297
2009-07-09 15:46:26 +00:00
Filippos Karapetis 5ca94c5cce - Moved printObject inside the Console class
- Enabled the parts where disassemble() is called

svn-id: r42263
2009-07-08 13:08:51 +00:00
Filippos Karapetis d351c7b9cb Only the kernel needs to be initialized before anything else, when saving/loading
svn-id: r42262
2009-07-08 10:44:25 +00:00
Filippos Karapetis a764f274f8 Fixed saving/loading again (broken with the latest changes for game feature auto-detection)
svn-id: r42261
2009-07-08 10:35:51 +00:00
Filippos Karapetis 62499054a0 Some cleanup for the script debugger code:
- 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-08 10:25:37 +00:00
Filippos Karapetis a62b26ea80 Silenced the very chatty song iterator console messages by converting them to appropriate debug messages
svn-id: r42240
2009-07-07 20:43:27 +00:00
Filippos Karapetis ab8c3d56b8 Removed the weird checks for a maximum resource number (the sci_max_resource_nr array), as it doesn't serve any real purpose and leads to strange errors: if a resource is found which is bigger than the maximum number, it will be remapped to an incorrect number from this check. This makes KQ5CD work properly again (resources would be remapped to incorrect resource numbers from this code as a result of not updating this array with the latest SCI version merges).
svn-id: r42219
2009-07-07 13:39:24 +00:00
Filippos Karapetis a9aaf56b3e Cleanup: added an enum for the auto-detected features, removed the selectors 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-07 11:14:18 +00:00
Filippos Karapetis d55f7e72d0 Added auto-detection for games with older headers for script blocks, and removed game flag GF_SCI0_OLD
svn-id: r42211
2009-07-07 10:28:05 +00:00
Filippos Karapetis e4f6330418 Added a SCI1.1 case in the lofss opcode, like in the lofsa opcode (essentially, lofss and lofsa both load an offset, with lofsa loading it in the accumulator and lofss in the stack). lofss is rarely used in SCI1.1 games, which explains why no lofss-related crashes have been observed in SCI1.1
svn-id: r42209
2009-07-07 07:51:26 +00:00
Filippos Karapetis c716e43a2b - Added auto-detection for EGA graphics. As a result of this, GF_SCI1_EGA has been removed and versions SCI_VERSION_01_EGA and SCI_VERSION_01_VGA have been merged into SCI_VERSION_01
- Simplified the checks for EGA and VGA graphics
- Fixed a bug in script_adjust_opcode_formats()
- Simplified the code in GfxResManager::getView() a bit

svn-id: r42206
2009-07-07 07:44:25 +00:00
Filippos Karapetis 0a8cd4a27d Removed unused define
svn-id: r42200
2009-07-07 06:29:07 +00:00
Filippos Karapetis 219b0de0d2 Renamed SCI_VERSION_01 -> SCI_VERSION_01_EGA
svn-id: r42181
2009-07-06 16:22:14 +00:00
Filippos Karapetis 30d1462da0 Swapped the music and audio resource check for SCI1.1 games. Digital sound effects are now preferred over the synthesized ones
svn-id: r42179
2009-07-06 15:50:44 +00:00
Filippos Karapetis 8f284ad396 KQ6CD should be working correctly again
svn-id: r42178
2009-07-06 15:30:07 +00:00
Filippos Karapetis b38c5f8c5c Proper handling of sound effects marked as music resources
svn-id: r42174
2009-07-06 12:44:55 +00:00
Filippos Karapetis 250a1a915a When a song isn't found, send a "stop handle" event so that the engine won't wait forever (e.g. in SQ4CD, perhaps others)
svn-id: r42172
2009-07-06 11:33:28 +00:00
Filippos Karapetis 87988c69ee Assigned several unimplemented/unused kernel functions as stubs, so that we know when they're used and how they're called
svn-id: r42170
2009-07-06 11:19:19 +00:00
Filippos Karapetis 522b161bec Replaced sciprintf() calls with printf, DebugPrintf, warning and error calls
svn-id: r42167
2009-07-06 10:39:22 +00:00
Filippos Karapetis c31d1b3180 - Fixed feature auto-detection for Conquests of Camelot
- Auto-detected features are now printed in the console (to ease debugging)

svn-id: r42132
2009-07-05 11:49:05 +00:00
Filippos Karapetis 5c60d94725 SCI1 games with absolute parameters to lofs instructions are automatically detected now. Removed the GF_SCI1_LOFSABSOLUTE game flag
svn-id: r42118
2009-07-05 11:08:53 +00:00
Filippos Karapetis b093511239 - Merged the "early" and "late" SCI1 versions - these are functionally equivalent, and the code that does the version check is unreliable (e.g. it sets SQ1 VGA to SCI1 "late" and EcoQuest 1 to SCI1 "early")
- Cleanup of the vocabulary setting functions
- Cleanup of the cursor manipulation code

svn-id: r42097
2009-07-04 16:30:20 +00:00
Filippos Karapetis c5522b3766 - Kernel function names are no longer loaded from vocab.999, but are 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-04 15:45:04 +00:00
Filippos Karapetis 230e7a8d2c Newer DoSound() semantics are now detected automatically, by the existence of the "setVol" selector. Removed game flag GF_SCI1_NEWDOSOUND
svn-id: r42087
2009-07-04 11:24:09 +00:00
Filippos Karapetis df9570cb32 SCI0 games using older graphics functions are automatically detected now, from the presence of the "TimesSin" and "SinMult" kernel functions. Removed the GF_SCI0_OLDGFXFUNCS game flag
svn-id: r42081
2009-07-03 23:37:08 +00:00
Filippos Karapetis 9a96b20cd0 Replaced script_error and CORE_ERROR with error()
svn-id: r42079
2009-07-03 21:59:07 +00:00
Filippos Karapetis 6fa8541aed - Pushed debugstate into debug.h
- When an error occurs, manipulate the execution stack before error() opens the console inside getDebugger(), like FreeSCI did. Added another method for obtaining the SCI console for use by the engine itself.

svn-id: r42062
2009-07-03 14:22:50 +00:00
Filippos Karapetis 69da51e71d Replaced all calls for manipulating the mouse cursor to be made to the CursorManager instead of directly to the graphics backend
svn-id: r42060
2009-07-03 14:18:20 +00:00
Max Horn 72512db7fb SCI: Fixed warning
svn-id: r42055
2009-07-03 10:41:03 +00:00
Filippos Karapetis 9664050ff0 Simplified the kernel name loading code: Merged the default SCI0 and SCI1 kernel name tables in one table. vocab.999 is only used in SCI0 and SCI01 games if it exists as an override to the default kernel name table (which works with SCI0/SCI01 demos with no vocab.999, like KQ1 and xmas1998). Removed GF_SCI0_SCI1VOCAB.
svn-id: r42050
2009-07-03 09:01:51 +00:00
Filippos Karapetis f3ac0a62c4 Applied patch #2815937 - "SCI: ReadString fix to repair LSL5 password". This fixes the problems with the LSL5 password for good
svn-id: r42049
2009-07-03 07:06:48 +00:00
Filippos Karapetis c3403ac739 Moved some more debug state related variables in the DebugState struct
svn-id: r42044
2009-07-02 23:58:05 +00:00
Filippos Karapetis 80cb18e87f Moved all the debug state variables in a separate struct and re-enabled several places where they're used
svn-id: r42043
2009-07-02 23:16:40 +00:00
Matthew Hoops 4df9dd82fb After discussing with waltervn, committing my fix for the King's Quest I Demo (original from Patch #2795916). I'm also fixing the full game as well :)
svn-id: r41841
2009-06-25 00:14:07 +00:00
Walter van Niftrik 1d0f4782fc SCI: Fix regression in r41833.
svn-id: r41834
2009-06-24 19:26:06 +00:00
Walter van Niftrik 06144864e1 SCI: Partial support for dual-language games.
svn-id: r41833
2009-06-24 19:12:45 +00:00
Filippos Karapetis 245a2764fc Cleanup
svn-id: r41727
2009-06-21 13:06:08 +00:00
Max Horn 42de7a1573 Patch
svn-id: r41647
2009-06-18 22:09:57 +00:00
Oystein Eftevaag cca9202372 Buildfix for gcc 3.3 (moved a template class member into the header file)
svn-id: r41493
2009-06-13 13:27:21 +00:00
Walter van Niftrik 1fb78d577f SCI: Moved audio code from AudioResource to the sfx core.
svn-id: r41486
2009-06-12 23:46:23 +00:00
Walter van Niftrik 5e68fbfe87 SCI: Moved SCI1 audio map handling into the resource manager.
svn-id: r41408
2009-06-09 19:18:48 +00:00
Filippos Karapetis 60f5ac3300 Replaced GFXWARN with warning and GFXDEBUG with debugC
svn-id: r41367
2009-06-08 11:42:13 +00:00