aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/sci.h
AgeCommit message (Collapse)Author
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-06SCI32: Improve kShowMovieWin (AVI) renderingColin Snover
1. Added a new game option for linear interpolation when scaling video in ScummVM builds with USE_RGB_COLOR; 2. 8bpp videos that put black in a palette index other than 0 (KQ7) should now always render correctly without the earlier game-specific workarounds which did not work very well; 3. Data from game scripts regarding video size and position are now ignored, since games always just try to show videos in the middle of the screen, but frequently get this a little bit wrong, causing either bad aspect ratios or off-center videos; 4. Builds without USE_RGB_COLOR support will not crash when attempting to play >8bpp AVIs, like those from KQ7 2.00b. Fixes Trac#9843, Trac#9762.
2017-06-10SCI: Move bpk/logkernel to main breakpoint infrastructureWillem Jan Palenstijn
This changes the syntax for bpk and logkernel: Enable breakpoint on kernel call: bpk FrameOut Enable logging for kernel call: bpk FrameOut log For backward compatibility this has an alias: logkernel FrameOut Removing a kernel call breakpoint is done with bp_del/bc now.
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: 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-01-16SCI: Remove unused SciEngine::speechAndSubtitlesEnabled methodColin Snover
2017-01-12SCI32: Add Hoyle5 to the list of game versionsColin Snover
2016-12-03SCI: Update engine status commentColin Snover
2016-11-20SCI: Add code-address breakpoints to debuggerColin Snover
2016-10-20SCI32: Fix QFG4 version commentsColin Snover
2016-09-29SCI32: Add support for kPrintDebugColin 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: Implement SCI32 cursor supportColin Snover
2016-08-15SCI: Move GUI-options to sci.hMartin Kiewitz
2016-08-01SCI32: Implement plane transitions (kSetShowStyle and kSetScroll)Colin Snover
This commit implements all of the known plane transitions from SCI2 through SCI2.1mid games. Because kSetShowStyle is always called indirectly via the Styler game script, it is difficult to find all the places where transitions are used. As such, transitions that appeared to never be used have been added as stubs which will trigger a game crash with a message to report what was being done, so any missed transition types can be identified quickly and then implemented.
2016-07-11SCI32: Add detection for Hoyle 5 demoColin Snover
2016-07-10SCI32: Implement kPlayVMDColin Snover
2016-07-06SCI: Add detection for the ImagiNation Network (INN) DemoOmer Mor
2016-06-25SCI: Add getGameObjectName to fix compilationMartin Kiewitz
Is needed for 80462b3 (Fix auto-saving in the fan-made Cascade Quest)
2016-06-21SCI32: Implement line drawing (kAddLine/kUpdateLine/kRemoveLine)Colin Snover
This line drawing code lives in a remodelled GfxPaint32 class that is totally separate from GfxPaint16.
2016-06-20SCI32: Rewrite digital audio engineColin Snover
This provides a complete implementation of kDoAudio through SCI2.1mid, plus partial implementation of SCI3 features. Digital audio calls shunted through kDoSound have also been updated to go through the SCI32 audio mixer, though these shunts are a bit hacky because the ScummVM implementation of kDoSound does not currently match how SSCI kDoSound is designed. It is probably possible in the future to just replace the SCI1.1 audio code (audio.cpp) with the new SCI32 code, since the major differences seem to be that (1) SCI1.1 only supported one digital audio playback channel (this is configurable already), (2) it had extra commands for CD audio playback and queued sample playback.
2016-06-19SCI: Split audio sync to its own classColin Snover
SCI32 has its own audio handling code, but audio sync code is the same as SCI16.
2016-05-17ALL: Change main engine header guard defines to <directory>_<engine>_HEugene Sandulenko
Recently we started to use this as new semantics, although in the past we used simly <engine>_H. Now these guard defines are consistent with rest of the files which are used in the engines.
2016-03-17SCI32: Correct KQ7 version splitColin Snover
The information in the wiki was wrong, KQ7 1.51 is always SCI 2.1 early.
2016-03-17SCI32: Clarify game engine version comments for split-version gamesColin Snover
2016-03-08SCI: Split color remapping functionality into a separate classFilippos Karapetis
Currently, only the SCI16 remapping functionality is implemented (used in the QFG4 demo)
2016-03-08SCI: Separate the demos of QFG4, PQ4 and GK1 from their full versionsFilippos Karapetis
The demo versions of these games were using a very different engine - SCI1.1 vs SCI2/SCI2.1. Thus, we split them into different game IDs, to avoid mixing specific game checks for them, as well as specific game workarounds, which are different for the demos than the full versions. Also, the demos should be working when SCI32 is disabled. For these games, we don't use ADGF_DEMO, to avoid game IDs like foodemo-demo
2016-02-23SCI: Improve kAnimate fastcast detection, Remove EQ1 hackMartin Kiewitz
- Add "kAnimate fast cast state" to "version" debug command - Make it possible for script patcher signatures to get fully used outside of the regular script patcher - Remove previous fastcast detections and replace them with a signature heuristic - Remove object name checking, when fastcast global is set - Heuristic detects "fast cast" support incorrectly for multilingual KQ5, but it seems the game never sets the global, so it won't matter. KQ5 CD (also SCI1 late) has fastcast support. - Remove hack in GfxView::draw - Add lots of comments to ScriptPatcher class This fixes EcoQuest 1 Floppy showing the anemone on top of the message box (see bug #5170)
2016-01-22SCI: add user option for high resolution graphicsMartin Kiewitz
Instead of choosing Windows as platform, users can now also simply click this option for Gabriel Knight 1 + King's Quest 6 Defaults to high resolution graphics
2016-01-14SCI: Use tick-based timing more consistentlyColin Snover
This means tick-based times are saved to save games, as in SCI32 engine, instead of seconds, which are not accurate enough. It also means places in SCI engine that need to access game ticks should do so through g_sci instead of g_system or g_engine.
2016-01-10SCI: Fix compilation when SCI32 is disabledWillem Jan Palenstijn
Thanks bSr43
2016-01-07SCI32: Add initial support for palette cycling (kPalCycle) and fading (kPalFade)Colin Snover
Graphics palette code was rewritten between SCI1 and SCI2, so SCI32 palette engine code has been moved to a separate GfxPalette32 class.
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
2015-04-18SCI: add debug level for workaroundsMartin Kiewitz
It's called "Workarounds"
2014-11-04SCI: fix Japanese Space Quest 4 (intro + buttons)Martin Kiewitz
At least SQ4 uses #j text prefix as signal for the interpreter to not use the PC9801 hires font, but to use the internal low res font instead
2014-10-18SCI: Separate the rest of the detection-only functionsFilippos Karapetis
This should fix bug #6717 - "SCI fallback detection assert failure"
2014-02-18SCI: Make GPL headers consistent in themselves.Johannes Schickel
2013-12-04SCI: script patcher is now a separate classMartin Kiewitz
2013-11-20SCI: script patch for laura bow 2 for audio+textMartin Kiewitz
at the same time needs indepth testing
2013-11-01SCI: improved patcher, inventory patch for kq6/macMartin Kiewitz
Also added new debug flag for script patcher
2013-10-31SCI: Update ScummVM's game audio options for SCI1.1 CD gamesFilippos Karapetis
This ensures that ScummVM's game audio options for speech and subtitles get updated when they are changed in the game GUI
2013-08-20SCI: Add support for the King's Questions mini-gameFilippos Karapetis
This can be found in the KQ collection
2012-10-22SCI: Add the Inside the Chest / Benind the Developer's Shield demoFilippos Karapetis
2012-10-08SCI: Add documentation regarding all SCI1.1 CD games in syncIngameAudioOptions()Filippos Karapetis
2012-10-08SCI: Document syncIngameAudioOptions()Filippos Karapetis
2011-11-29SCI: Fix restarting SCI engine with different SCI versionWillem Jan Palenstijn
2011-10-29SCI: Added a new debug flag, "DebugMode" for SCI32 gamesFilippos Karapetis
This is used to enable the embedded debugger in several SCI32 games (PQ4, QFG4, GK1, GK2, KQ7, SQ6 and LSL7)
2011-10-28SCI: Added skeleton code for kEditText (still not working)Filippos Karapetis