aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/engine/features.cpp
AgeCommit message (Collapse)Author
2019-07-09SCI: Implement early GetLongest() behavior, bug #10000sluicebox
2019-07-09SCI32: Remove some Hoyle 5 TODOsFilippos Karapetis
Hoyle 5 does not show subtitles, even though it does contain text for all of the included speech in its resource files
2018-12-28SCI32: Add feature detection for plane id baseLars Skovlund
This provides a generic fix for AddScreenItem crashes in early SCI32 floppy games that have previously required individual script patches.
2018-08-30SCI32: Add audio volume sync support for Hoyle5Filippos Karapetis
2017-11-28SCI32: Fix crash starting KQ7 demoColin Snover
Fixes Trac#10343.
2017-09-30SCI32: Fix support for RAMA demoColin Snover
Fixes Trac#10251.
2017-09-28SCI32: Add audio volume sync support for RAMAColin Snover
2017-09-10SCI: Remove dead codeColin Snover
2017-07-30SCI32: Implement guest additions volume sync for Phant2Colin Snover
2017-07-17SCI32: Add guest additions support for LSL7Colin Snover
2017-07-07SCI32: Force General MIDI for games that support nothing elseColin Snover
* MGDX has only GM music; * KQ7 1.x's AdLib data is incomplete, so is not usable even though it is partially there Fixes Trac#9789.
2017-06-18SCI: Switch SCI2 games to use Audio32Colin Snover
Upon investigation of Sound code across SCI32 games, it was determined that there are actually (at least) 3 different revisions, not just a single SCI2.1 version. This patch only changes the parts of Sound code that are relevant to the correct use of Audio32. Fixes Trac#9736, Trac#9756, Trac#9767, Trac#9791.
2017-05-20SCI: Add more support for >16-bit SCI3 offsetsColin Snover
Basically just grepped for getOffset calls being assigned to uint16s and expanded those to uint32 when they looked trivial. While some of these changes seem superfluous, at least for the US/English SCI3 games where potentially impacted game scripts are not large enough to have a problem with 16-bit offsets (e.g. when feature detecting the sound type), at least some of these changes are necessary for correct operation of the find_callk debugger command in SCI3 games. There should not be a reason why any of these variables need to be kept as uint16, in any case.
2017-05-06SCI32: Fix missing/incorrect game features detectionColin Snover
2017-04-21SCI: Improve audio volume & settings sync codeColin Snover
This patch includes enhancements to the ScummVM integration with SCI engine, with particular focus on SCI32 support. 1. Fixes audio volumes syncing erroneously to ScummVM in games that modify the audio volume without user action (e.g. SCI1.1 talkies that reduce music volume during speech playback). Now, volumes will only be synchronised when the user interacts with the game's audio settings. This mechanism works by looking for a known volume control object in the stack, and only syncing when the control object is present. (Ports and planes were researched and found unreliable.) 2. Fixes audio syncing in SCI32 games that do not set game volumes through kDoSoundMasterVolume/kDoAudioVolume, like GK1, GK2, Phant1, and Torin. 3. Fixes speech/subtitles syncing in SCI32 games that do not use global 90, like LSL6hires. 4. Fixes in-game volume controls in SCI32 games reflecting outdated audio volumes when a change is made during the game from the ScummVM launcher. 5. Fixes SCI32 games that would restore volumes from save games or reset volumes on startup, which caused game volumes to be out-of-sync with ScummVM when started. 6. ScummVM integration code for audio sync has been abstracted into a new GuestAdditions class. This keeps the ScummVM- specific code all in one place, with only small hooks into the engine code. ScummVM integrated save/load code should probably also go here in the future. Fixes Trac#9700.
2017-03-27SCI: Implement bounds-checked reads of game resourcesColin Snover
2016-08-13SCI: Fix pseudo mouse in various SCI1 games like e.g. Larry5Martin Kiewitz
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).
2015-12-29SCI32: split up SCI2.1 into EARLY/MIDDLE/LATEMartin Kiewitz
- 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
2014-08-08SCI: Fix wrong game features heuristic for Hoyle 1/2 - bug #6606Filippos Karapetis
Games with newer graphics functions can call kDrawPic with 4 or 8 parameters. Older games call it with 6 parameters. Fixes the about dialog in Hoyle 1
2014-02-18SCI: Make GPL headers consistent in themselves.Johannes Schickel
2013-08-20SCI: Add support for the King's Questions mini-gameFilippos Karapetis
This can be found in the KQ collection
2013-04-28SCI: Fix Phantasmagoria Mac's kDoSoundMatthew Hoops
2012-10-22SCI: Add the Inside the Chest / Benind the Developer's Shield demoFilippos Karapetis
2012-06-18SCI: Add setter/getter methods to reg_t'sFilippos Karapetis
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-04-29SCI: Fix for bug #3522046 "Detection of SQ4CD as Windows breaks Music"Filippos Karapetis
Fall back to the DOS soundtracks in Windows CD versions if the user picks a non-General MIDI music device, as the Windows tracks only contain MIDI music
2012-03-31ENGINES: Return all available custom GUI options if no target is specifiedFilippos Karapetis
This is used to set default settings for all custom game options when an engine starts
2012-03-25SCI: Hook up the digital SFX and CD audio optionsFilippos Karapetis
The relevant code wasn't added in the newer commits - this was an oversight from my part
2012-01-15SCI: Clean up some memory management and loopsWillem Jan Palenstijn
2011-05-12GIT: Clean up: Suppress SVN tags, now uselessstrangerke
2011-02-28SCI: Cleanup of the save/load dialog patching code and the lofs type ↵md5
detection code
2010-11-25SCI: Added support for the alternate Windows MIDI soundtracks of the CD ↵Filippos Karapetis
versions of EcoQuest, Jones, KQ5 and SQ4 svn-id: r54476
2010-11-21SCI: Added a heuristic to detect the modified late SCI2.1/SCI3 ↵Filippos Karapetis
kString/kArray kernel functions svn-id: r54398
2010-11-17SCI1.1 and newer games always ignore move count. The "version" command works ↵Filippos Karapetis
now in SCI3 svn-id: r54295
2010-11-17SCI: lofsa/lofss functionality for SCI3Filippos Karapetis
- Updated detectLofsType() for SCI3 - Cleaned up op_lofsa and op_lofss and updated them for SCI3 svn-id: r54293
2010-09-04SCI: doing detectDoSoundType() properly sci0earlyMartin Kiewitz
checking, if sound resources are sci0early or late for sci0early games instead of hardcoding lsl2 svn-id: r52514
2010-09-04SCI: lsl2 early uses sci0late soundMartin Kiewitz
fixes bug #3037012 and lsl2 now has music everywhere svn-id: r52513
2010-08-23SCI: storing game super class address now inside SciEngineMartin Kiewitz
svn-id: r52311
2010-08-02SCI: Fix leaks in ResourceManager::listResources caller code.Johannes Schickel
svn-id: r51666
2010-07-31SCI: fix lofs autodetectionMartin Kiewitz
makes polish lsl1 work (its game superclass name got translated, so no "Game" object available) - bug #3037194 thx to dam-soft for his patient help svn-id: r51557
2010-07-27SCI: Better fix for bug #3035058 - ECOQUEST demo: Missing subtitlesMatthew Hoops
The demo really uses kGetMessage and not kMessage. We now detect which version of the message function is used. Thanks to Walter for pointing this out. svn-id: r51384
2010-07-14SCI: adding sound version 2.1, to properly add sci2.1 signature for ↵Martin Kiewitz
kDoSound(play) svn-id: r50878
2010-07-01Added some slight fixes for the RAMA demo, which starts now, though it dies ↵Filippos Karapetis
horribly when clicking on anything svn-id: r50569
2010-06-28SCI: More comment rewrappingMax Horn
svn-id: r50431
2010-06-28SCI: Make Script member vars private; add const qualifiersMax Horn
Only three Script members remain public (for now) svn-id: r50428
2010-06-23Moved the SelectorCache struct inside selector.h, where it belongs, and ↵Filippos Karapetis
fixed some header dependencies in the process svn-id: r50183
2010-06-17Strict mode: Turned several severe errors (almost all detection related) ↵Filippos Karapetis
into errors, instead of warnings svn-id: r49972
2010-06-10Use the SELECTOR() macro for readabilityFilippos Karapetis
svn-id: r49563
2010-05-31CleanupFilippos Karapetis
svn-id: r49342
2010-05-30Limit access to the _bufSize, _scriptSize and _heapSize members of the ↵Filippos Karapetis
Script class svn-id: r49327
2010-05-29Mass renaming of selector-related functions, and removed some defines which ↵Filippos Karapetis
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