aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/engine/guest_additions.h
AgeCommit message (Collapse)Author
2017-09-28SCI32: Add audio volume sync support for RAMAColin Snover
2017-09-23SCI32: Add guest additions save/restore support for RAMAColin Snover
2017-09-09SCI32: Fix Phant2 movie-vs-game playback volumesColin Snover
This update should give the game the default mix it receives in Windows. If necessary, the half-volume audio bug in the DOS interpreter can be added as an additional hack for this game, since there are still some sub-par audio mixes that might need additional correction (like Curtis talking to Blob when taking her out of the cage in his apartment at the start of the game) which were also bad in the Windows version of the game. Fixes Trac#10165.
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-09-03SCI32: Fix load from launcher for LighthouseColin Snover
Launcher loads of games without a saved Robot were fine, but games that were saved with a Robot (e.g. room 480 when facing the water) would crash.
2017-07-30SCI32: Add load from launcher support for Phant2Colin Snover
Adding a hook into kPlayDuck to skip the intro video feels kind of crappy, but it seemed simpler, consistent with the other hooks for launch loading, and therefore preferable versus hot-patching the script or messing with PC in the VM or something.
2017-07-30SCI32: Implement Phant2 save/load integrationColin Snover
2017-07-30SCI32: Deduplicate guest additions save/load codeColin Snover
2017-07-30SCI32: Indicate that LSL7 and Torin use the same save/load codeColin Snover
2017-07-30SCI32: Implement guest additions volume sync for Phant2Colin Snover
2017-07-24SCI32: Add music volume UI sync for MGDXColin Snover
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-04-22SCI: Improve comments in GuestAdditionsColin Snover
2017-04-22SCI32: Fix infinite recursion when loading invalid save from launcherColin Snover
2017-04-22SCI: Implement delayed restore for SCI32 and move implementations to ↵Colin Snover
GuestAdditions
2017-04-22SCI32: Remove original save/load option from games without ScummVM save ↵Colin Snover
integration
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.