aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/module.mk
AgeCommit message (Collapse)Author
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.
2016-08-19SCI32: Implement SCI32 cursor supportColin Snover
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-10SCI32: Implement kPlayVMDColin Snover
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-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-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-02-20SCI: Fix missing whitespace causing create_project errorsColin Snover
2016-02-18SCI: Implement accurate renderer architecture for SCI32Colin Snover
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.
2014-10-28SCI: Remove trailing whitespaceFilippos Karapetis
2012-06-13SCI: Implement the file operations needed for the save dialog in PhantasmagoriaFilippos Karapetis
Phantasmagoria's scripts keep polling for the existence of the savegame index file and request to read and write it using the same parameters when opening it. The index file is closed and reopened for every save slot, which is slow and can be much slower on non-desktop devices. Also, the game scripts request seeking in writable streams and request to expand the existing index file. To provide this functionality and to reduce constant slow file opening and closing, this virtual class has been introduced
2012-05-21SCI: Properly alphabetize the SCI32 objectsMatthew Hoops
2012-05-20SCI: Split the SCI32 graphics kernel functions in a separate fileFilippos Karapetis
2011-11-01SCI: add sound driver for KQ5 FM-Townsathrxx
2011-10-28SCI: Added skeleton code for kEditText (still not working)Filippos Karapetis
2011-10-26SCI: Renamed GfxControls to GfxControls16Filippos Karapetis
2011-09-03SCI32: Added an initial skeleton structure for the SCI2 text drawing codeFilippos Karapetis
This includes kCreateTextBitmap, and moves all of the text drawing code into the new GfxText32 class
2011-02-19SCI: Refactored the reg_t related operations and comparisonsmd5
This refactoring reduces a lot of code duplication, allows for better control, makes the code more readable and allows us to remove a lot of now unneeded workarounds
2011-02-07SCI: Converted the robot decoder into a regular video decoder, and decoupled ↵Filippos Karapetis
it from the SciEngine class - Robot videos are now shown in frameOut(), like they should, and kRobot(sync) is only used for syncing with the game scripts - Hooked video playing into the "play_video" console command svn-id: r55801
2010-11-19SCI: Moved the Object class in a separate fileFilippos Karapetis
svn-id: r54361
2010-09-17SCI: Add CMS driver for SCI1-SCI1.1.Johannes Schickel
svn-id: r52781
2010-08-08SCI: Remove the now useless Sci::VMDDecoder wrapperSven Hesse
svn-id: r51923
2010-08-06SCI: Split the new script patch code in a separate fileFilippos Karapetis
svn-id: r51810
2010-07-22SCI: Moved the actual workaround arrays inside a cpp fileFilippos Karapetis
svn-id: r51132
2010-07-21SCI: Moved all the video related functions in a separate fileFilippos Karapetis
svn-id: r51110
2010-07-21SCI: Moved the SCI32 kernel functions out of kernel32.cpp and into their ↵Filippos Karapetis
respective files svn-id: r51108
2010-07-18SCI: Rename the Amiga music drivers to AmigaMac to reflect its current purpose.Matthew Hoops
svn-id: r51006
2010-06-30SCI: Removed the FreeSCI music codeFilippos Karapetis
svn-id: r50532
2010-06-15SCI: SciGui/SciGui32 gone for good...Martin Kiewitz
svn-id: r49860
2010-06-10Moved all of the game init/run/exit logic inside the SciEngine classFilippos Karapetis
svn-id: r49559
2010-05-27Split all of the audio-related functions of the resource manager in a ↵Filippos Karapetis
separate file svn-id: r49260
2010-05-24Add support for showing the icon bar in SCI1.1 Mac.Matthew Hoops
svn-id: r49196
2010-05-18Add initial support for KQ6 Mac. Wrapper functions for read/writing to ↵Matthew Hoops
pointers are now used (found in util.*) for code that has different endianness in SCI1.1+ Mac games. Add support for Mac 'snd ' and 'CURS' resources. QFG1 Mac is not yet playable due to script compression. svn-id: r49070
2010-04-16SCI: support for kanji (sjis), minor centering issue leftMartin Kiewitz
svn-id: r48674
2010-02-05SCI: GfxCoordAdjuster class added, local2Global and global2Local use that ↵Martin Kiewitz
class directly, kGraph / RedrawBox is now using GfxPaint16 directly svn-id: r47908
2010-02-04SCI: adding GfxPaint class, implementing kernelDrawPicture for GfxPaint16 ↵Martin Kiewitz
and GfxPaint32, using those classes directly when drawing pictures instead of SciGui/32. Making draw_pic command work in sci32 that way, using _gfxPaint16 for kDrawPic because that command is sci16 exclusive svn-id: r47883
2010-02-04SCI: moving paint32.o around...Martin Kiewitz
svn-id: r47882
2010-02-04SCI: adding GfxPaint32 class, adding back support for planes, minor change ↵Martin Kiewitz
in GfxPaint16 (using #def instead of fixed value) svn-id: r47880
2010-02-03Placed all the game feature detection code in a separate classFilippos Karapetis
svn-id: r47850
2010-02-02Fix compile without SCI32Matthew Hoops
svn-id: r47822
2010-02-02SCI: some sort of priority support for sci32 (not working right, but at ↵Martin Kiewitz
least the menu in gk1 now correctly shows up) svn-id: r47814
2010-01-31SCI: renamed Text class to GfxText16Martin Kiewitz
svn-id: r47780
2010-01-31Sort order.Travis Howell
svn-id: r47748
2010-01-31SCI: forgot the cache :PMartin Kiewitz
svn-id: r47747
2010-01-31SCI: added new modules to module.mkMartin Kiewitz
svn-id: r47746
2010-01-29Fix compile when ENABLE_SCI32 is not set.Matthew Hoops
svn-id: r47682
2010-01-29Silence gcc warnings, have gui32.cpp only build when ENABLE_SCI32 is defined.Matthew Hoops
svn-id: r47680