aboutsummaryrefslogtreecommitdiff
path: root/engines/sci
AgeCommit message (Collapse)Author
2016-07-10SCI32: Re-enable KQ7 subtitles, but with a warning on game startColin Snover
2016-07-10SCI32: Disable KQ7 subtitlesColin Snover
The subtitles in KQ7 were not finished and don't quite work right, drawing off the screen and in weird positions. They could probably be fixed with some aggressive script patching, but for now, they are just disabled (as they are in the official release).
2016-07-10SCI32: Use #defines to reduce duplication of game optionsColin Snover
2016-07-10SCI32: Clean up Video32/VMDPlayerColin Snover
2016-07-10SCI32: Add support for blacklined videoColin Snover
Ow. My eyeballs.
2016-07-10SCI32: Implement kPlayVMDColin Snover
2016-07-08SCI: Set isSample when starting digital sample from soundInitSndWillem Jan Palenstijn
This fixes digital samples in at least QfG1, SQ3, LSL5. Bug #7159.
2016-07-06Merge pull request #775 from wjp/sci32_readwriteWillem Jan Palenstijn
SCI32: Improve FileIO read-write support
2016-07-06SCI32: Add SaveFileRewriteStream for read/write access to filesWillem Jan Palenstijn
At least Phantasmagoria and PQ:SWAT require this. This adds a ReadStream/WriteStream to support this. It replaces the previous VirtualIndexFile which required reimplementation of most read/write functions.
2016-07-06SCI: Fix typo in script patch comment (longbow arithmetic bug)Martin Kiewitz
Wasn't bug #6571, but bug #6751 Thanks to omer_mor for spotting it
2016-07-06Revert "SCI: Mark INNDEMO as demo"Martin Kiewitz
This reverts commit 61a8a5a88f4f02f1d4cdd3523ad6cec63701d8dd.
2016-07-06SCI: Mark INNDEMO as demoMartin Kiewitz
2016-07-06SCI: Add detection for the ImagiNation Network (INN) DemoOmer Mor
2016-07-04SCI: Adding script patch for longbow arithmetic berry bush bugMartin Kiewitz
Fixes bug #6571
2016-07-03Merge pull request #741 from wjp/sci-callWillem Jan Palenstijn
SCI: Clean up some aspects of call handling
2016-07-02SCI32: Expose graphics throttling codeColin Snover
Controls that manage their own event loops and call frameOut directly generally need to sleep in order to avoid 100% CPU, just like the main VM event loop.
2016-07-02SCI32: Document _remapOccurred flagColin Snover
2016-07-02SCI32: Improve accuracy of frameout throttlerColin Snover
2016-07-02SCI32: Add const to getCurrentBufferColin Snover
2016-07-02SCI32: Document ScreenItem::_insetRectColin Snover
2016-07-02SCI32: Fix dropping events in kEditTextWillem Jan Palenstijn
2016-07-02SCI: Remove presumably long-outdated FIXMEWillem Jan Palenstijn
2016-07-02SCI: Remove unexpected side effect from ExecStack constructorWillem Jan Palenstijn
The ExecStack constructor set argp[0] to argc before. This is now moved to the caller, to make this action more explicit.
2016-07-02SCI: Remove unclear &rest handlingWillem Jan Palenstijn
Modifying a value above the stack pointer doesn't seem to make much sense. This was added in FreeSCI back in 2002 in a pair of commits that did not make clear what the purpose of this was. My guess is that it attempted to adjust argc, but failed. This wouldn't have been noticed since argc was always set correctly by make_exec_stack_entry (which is now the ExecStack constructor).
2016-07-02SCI: Improve kernel subfunction loggingWillem Jan Palenstijn
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-02SCI: Remove unneeded copyWillem Jan Palenstijn
2016-07-01SCI32: Fix signed comparison warningsColin Snover
2016-07-01SCI32: Fix bad rendering of subtitle backgrounds in TorinColin Snover
The way dimensions of scaled screen items are calculated changed over the lifetime of SSCI. In early low-resolution and mixed-resolution games, scaled drawing needed to use at a global cadence across the entire screen to ensure proper alignment, but in later games (like Torin), local scaling of individual screen items seems to be the way scaling is performed.
2016-07-01SCI32: Use better audio fading algorithmColin Snover
Using the one from SCI2.1mid makes fades very slow because SDL has a larger audio buffer than SSCI DOS. This new algorithm is based on wall time so will always fade at the correct speed, although the larger buffers will have a coarser granularity so the fades may not be as smooth as in the original engine. If anyone cares, the fade volume could be mixed into individual samples in `readBuffer` instead of applying just once per complete buffer. SSCI did not do this, however, so this implementation should be pretty accurate.
2016-07-01SCI32: Fix audio fadingColin Snover
2016-07-01SCI: Fix script patcher, so that it works on BE systemsMartin Kiewitz
2016-07-01Merge pull request #766 from OmerMor/qfg3_boundsFilippos Karapetis
SCI: Script patch for QfG3 giant tree bounds
2016-07-01Merge pull request #770 from OmerMor/kgettimeFilippos Karapetis
SCI: Fixed KGetTime with SYSDATE subop in SCI0-LATE.
2016-06-30SCI32: Specify default hardware ratesColin Snover
This normally happens in SSCI when the audio hardware is initialised. CID 1357048
2016-06-30SCI32: Add transparent pic plane typeColin Snover
It is not clear if this is ever actually used by game scripts, though.
2016-06-30SCI32: Clean-up pass on rendering pipelineColin Snover
This pass exposed two bugs, which have been fixed: 1. Checks of `_updated` and `_moved` were reversed in some areas, which lead to rendering bugs. In SQ6 the rendering bugs were subtle or non-existant, but in e.g. PQ:SWAT the Sierra logo and title screen animations were totally missing. 2. The renderer formerly kept reading from ScreenItemLists when new items were added in decrementScreenItemArrayCounts, but this was determined to be unnecessary.
2016-06-30SCI32: Implement engine-accurate screen item list sortingColin Snover
It seems highly probable that there are later SCI games that use the "hi res" rendering path, so sorting and unsorting of ScreenItemLists needs to be accurate.
2016-06-30SCI32: Document & clean up extra rect argument for frameOutColin Snover
This extra rect seems to probably only ever be used by VMD playback in some SCI2.1 games.
2016-06-30SCI32: Add low resolution constantsColin Snover
In a few places in the graphics system, fixed low-resolution values are used instead of the game script resolution.
2016-06-27SCI: Add script patch for another Colonel's Bequest game bugMartin Kiewitz
Command input stays disabled, when oiling the arm of the armor. We fix this. This script bug also happens, when using the original interpreter. Fixes bug #7154
2016-06-27SCI: Fixed KGetTime with SYSDATE subop in SCI0-LATE.Omer Mor
SSCI implementation of the SYSDATE subop of the GetTime kernel function was changed between SCI0-LATE and SCI01: The base year used was changed from 1920 to 1980. This subop is used in "Codename: Iceman" (Say "ask for date" to a passing girl on the beach). The Atari ST version of "Codename: Iceman" use the 1980 base year. The Amiga version of "Codename: Iceman" appears to return the time instead of date, with 0 for the YEAR part.
2016-06-26SCI32: Fix benchmarking for QFG4Colin Snover
2016-06-26SCI32: Change Color::operator!= to all operator== directlyColin Snover
2016-06-26SCI32: Enable aspect ratio correction on QFG4CDColin Snover
2016-06-26SCI32: Fix typoColin Snover
2016-06-26SCI32: Remove no-longer-relevant commentColin Snover
2016-06-26SCI32: Add more workarounds for SCI2.1early gamesColin Snover
These games all share the same bad system script that always sends NULL as a second argument to kDoSound(play).
2016-06-26SCI32: Fix broken Remap implementationColin Snover
Remap would crash SCI2.1early games with 19 remap slots, and did not actually work in most cases in SCI2.1mid+ games. The SCI16 implementation was moved to its own separate file but was otherwise touched as little as possible, so may still have similar problems to the SCI32 code. 1. Split SCI16 and SCI32 code into separate files 2. Use -32 prefixes for SCI32 code and no prefix for SCI16 code, where possible, to match other existing code 3. Avoid accidental corruption of values from the VM that may be valid when signed or larger than 8 bits 4. Added documentation 5. Add missing remap CelObj calls 6. Inline where possible in performance-critical code paths 7. Fix bad `matchColor` function, and move it from GfxPalette to GfxRemap32 since it is only used by GfxRemap32 8. Fix bad capitalisation in getCycleMap 9. Remove unnecessary initialisation of SingleRemaps 10. Update architecture to more closely mirror how SSCI worked 11. Clarify the purpose of each type of remap type (and associated variable names) 12. Split large `apply` function into smaller units 13. Fix buffer overrun when loading a SCI2.1early game with remap 14. Remove use of `#define` constants 15. Warn instead of crashing with an error on invalid input (to match SSCI more closely) 16. Change the collision avoidance mechanism between the RemapType enum and remap kernel functions 17. Add save/load function
2016-06-26SCI32: Fix hang when playing auto-play audio channelsColin Snover
2016-06-26SCI32: Fix race condition when freeing audio resourcesColin Snover
It's not possible to call any ResourceManager methods from any thread other than the main thread because it is not thread-safe.