aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/sci.cpp
AgeCommit message (Collapse)Author
2019-03-09JANITORIAL: Update all scummvm.org URLS to use httpsCameron Cawley
2018-12-05SCI: Stop sleeping if the game is trying to quitColin Snover
This applies to any sleep, but is particularly noticeable in games that send SysEx messages to MT-32, which add delays by sleeping in order to avoid buffer overflows in the device firmware.
2018-12-02SCI: Add support for The Dating Pool (#1403)Kawa
2017-09-27SCI: Do some clean-up of event handling systemColin Snover
Convert macros and vars to enums, rename keyboard events in preparation for adding key up events, clean up unnecessary nested conditionals, add TODOs for potential future work.
2017-09-08SCI32: Toggle Phant2 content censoring from game optionsColin Snover
To enable the optional content censoring mode, Phant2 looks for a RESDUK.PAT file, which is normally placed by the game's installer if the user chose to enable censorship. If the file exists, the game reads an unlock password out of the file and asks the user to enter the password when starting a new game to create an uncensored game, or to click a "less intense" button to start the game with censoring. The censorship state of the game is then persisted in the save game file, and installations with the RESDUK.PAT file need to enter the password again in order to restore any of the uncensored saves. Since we do not have an installer that can enable this feature, add a game option toggle to enable/disable censoring (for the releases that have the optional censorship mode) instead so the censored content feature is available for anyone that wants to use it. This flag is restored from ScummVM whenever a save game is loaded, so it can be toggled on or off at any point without needing a separate save game, unlike in the original interpreter.
2017-07-26SCI32: Reduce priority of PATCHES directory for Phant2Colin Snover
For whatever reason, Sierra decided that the final patches would go in the root directory for Phant2. The game disc includes (different, older) patches for many of the same resources in the PATCHES directory, and loading those instead makes the game not always work quite right.
2017-07-06SCI32: Refactor Video32 code to reduce code & feature duplicationColin Snover
2017-07-06SCI32: Centralise OSystem screen updatesColin Snover
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-06-10SCI32: Fix detection and loading of localized resources in TorinColin Snover
Italian still needs to be fixed, but nobody seems to have access to this version at the moment. Fixes Trac#9772.
2017-06-10SCI: Move printObject from console to scriptdebugWillem Jan Palenstijn
2017-06-10SCI: Start engine at tick 1Colin Snover
In SSCI, games could never start at tick 0 because the video benchmarking code on game startup would take several ticks to run. In ScummVM, where the benchmarking code is disabled, it becomes possible for games to start at tick 0. This can break a lot of kernel code, which uses tick 0 as a special value indicating that a feature is not active. For example, in GK2, the music at the start of the game will not fade in on systems that are fast enough to start audio playback at tick 0, since a fade start tick of 0 is used to indicate audio fade is disabled. Fixes Trac#9830.
2017-06-09SCI32: Fix audio sync recursionColin Snover
Calling to SciEngine::syncSoundSettings from GuestAdditions recurses back into GuestAdditions, which is obviously not desirable. Even when it didn't manage to cause infinite recursion (as in SQ6 demo), it would make the UI behave in broken ways (e.g. the +/- buttons on the music slider in SQ6 would not work because the UI would just get updated immediately back to the closest rounded value).
2017-05-23SCI32: Add 'music/' subdir to file path for LSL7 GOGHein-Pieter van Braam
LSL7 originally came with music in two qualities in subdirectories of the 'music' directory, 22s8 and 22s16. The gog.com release doesn't do this and only ships the hq music in the root of 'music/'. This PR adds it to the search path. Closes gh-951.
2017-05-20SCI: Minor punctuation fix in buggy script alertColin Snover
2017-05-10SCI: Add "patch" directory to search pathsColin Snover
Refs Trac#9776.
2017-05-10SCI: Add example of KQ6 game with incorrect patches directoryColin Snover
2017-05-08SCI: Translate messages passed to dialoguesColin Snover
2017-05-06SCI32: Fix terrible rendering performance when vsync is enabledColin Snover
More than one call to OSystem::updateScreen per frame on systems with vsync ruins performance because the call is blocked until the next vsync interval. This also fixes bad rendering performance with the OpenGL backend.
2017-04-23SCI: Implement fallback detection for SCI3Colin Snover
2017-04-23SCI: Fix missing music in LSL7Colin Snover
2017-04-22SCI: Clean up unnecessary delayed restore flagsColin Snover
_delayedRestoreGame is always set and cleared at the same time as _delayedRestoreGameId, and _delayedRestoreFromLauncher is written but never read.
2017-04-22SCI: Move ScummVM save/restore to GuestAdditions and reimplement for SCI32Colin 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
2017-01-16SCI: Remove unused SciEngine::speechAndSubtitlesEnabled methodColin Snover
2016-12-03SCI: Fix non-responsive application warning during sysex transfersColin Snover
This also fixes the display of the startup LCD message, which had been delayed until after the sysex transfer was finished.
2016-12-03SCI32: Fix LSL6hires text speed sliderColin Snover
For whatever reason, this game uses a different global for specifying the text speed.
2016-11-03SCI32: Allow SCI32 games to update speech & subtitles settingsColin Snover
Fixes Trac#9637.
2016-09-30SCI32: Sync subtitle text speed with ScummVM GUIColin Snover
2016-09-29SCI: Add prefix to global variable constantsColin Snover
2016-09-29SCI32: Fix warnings and incompatible save games when built without SCI32Colin Snover
2016-09-29SCI32: Emulate MGDX ego view metadataColin Snover
2016-09-29SCI32: Fix multiple bugs in kSaveColin Snover
1. Shift save numbers up/down for game scripts that rely on save game numbers starting from 0 to work correctly 2. Add fake file operations to support KQ7 save games 3. Hide autosave games from native save/load list to match SSCI.
2016-09-29SCI32: Implement ScummVM save/loadColin Snover
2016-09-29SCI: Replace magic numbers for globals with named constantsColin Snover
2016-09-29SCI32: Start implementing kSave for SCI32Colin Snover
2016-09-29SCI32: Add support for kPrintDebugColin Snover
2016-09-29SCI: Move SciEngine::sleep to correct source fileColin Snover
2016-08-26SCI: Add a sanity check in wrapFilename(), as in unwrapFilename()Filippos Karapetis
2016-08-23SCI32: Update the SCI2/SCI2.1 games that use global 90 for speech/subsFilippos Karapetis
2016-08-19SCI32: Remove unused ResourceManager from GfxFrameoutColin Snover
2016-08-19SCI32: Remove CoordAdjuster32, at least for the momentColin Snover
This may come back in the future to deduplicate some gfx code, but SCI32 had two different inlined ways of doing coordinate conversions with different rounding methods, so CoordAdjuster32 didn't get used when the graphics system was rewritten. At the moment, SCI32 code uses the mulru/mulinc methods from helper.h for scaling up/down coordinates.
2016-08-19SCI32: Implement kRobotColin Snover
2016-08-19SCI32: Remove GfxScreen from SCI32Colin Snover
2016-08-19SCI32: Implement SCI32 cursor supportColin Snover
2016-08-19SCI32: Remove GfxScreen from GfxFrameoutColin Snover
Only cursor remains to be updated to go through GfxFrameout, and then we can let GfxScreen go back to being SCI16-only.
2016-08-15SCI: Add comments about GK1 on Mac being hi-res onlyMartin Kiewitz
2016-08-15SCI: Move GUI-options to sci.hMartin Kiewitz
2016-08-15SCI: Improve "force hires graphics"-option reading codeMartin Kiewitz
We originally used hardcoded gameIDs and checked for CD-version. Now the game option itself is checked for. When it's available for the currently detected game, the option is read, otherwise it defaults to false (same behavior as before).