Commit Graph
86814 Commits
Author SHA1 Message Date
Colin Snover 52505dc57f SCI32: Implement basic kMessageBox
This kernel call seems only to be used by KQ7 1.51 (which was
Windows-only) to send warnings to the user.

It was easy enough to do a basic implementation in the ScummVM
GUI rather than just make it an empty call, so now it is a thing.
2016-06-21 08:14:12 -05:00
Willem Jan Palenstijn ceee33ba2c SCI32: Add workaround for kScrollWindowAdd call in Phantasmagoria 2016-06-21 08:14:12 -05:00
Willem Jan PalenstijnandColin Snover ab864ba366 SCI32: Implement kScrollWindow
These should be all the actually used subfunctions.

Co-authored-by: Colin Snover <github.com@zetafleet.com>
2016-06-21 08:14:12 -05:00
Colin Snover a613a27b44 SCI32: Implement line drawing (kAddLine/kUpdateLine/kRemoveLine)
This line drawing code lives in a remodelled GfxPaint32 class
that is totally separate from GfxPaint16.
2016-06-21 08:14:12 -05:00
Willem Jan Palenstijn 94328f0ec8 SCI32: Make GfxText32::_scaledWidth/Height statics
They were global in SSCI. This way secondary GfxText32 instances
(such as in ScrollWindow) use the correct scaling.
2016-06-21 08:14:12 -05:00
Willem Jan Palenstijn c4b41f5d7c SCI32: Fix drawText on consecutive control codes 2016-06-21 08:14:11 -05:00
Willem Jan Palenstijn 97c11e7d5f SCI32: Fix getTextWidth on consecutive control codes 2016-06-21 08:14:11 -05:00
Colin Snover dcc6234d81 SCI32: Add low-pass filter to 8-bit SOL audio
This improves the perceived quality of audio in games that use
8-bit samples for music, like Torin.
2016-06-21 08:14:11 -05:00
Colin Snover f939868f3a SCI32: Add kDoSound(play) workaround for LSL6hires 2016-06-20 21:52:41 -05:00
Colin Snover f02107f682 SCI: Minor cleanup of kDoSound
Replaces unused kernel calls to use kEmpty, and set correct
signatures for SCI32 kernel calls.
2016-06-20 21:02:21 -05:00
Colin Snover 46551fd4b5 SCI32: Rewrite digital audio engine
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-20 21:02:21 -05:00
Colin Snover 5d3385750d SCI: Split audio sync to its own class
SCI32 has its own audio handling code, but audio sync code is the
same as SCI16.
2016-06-19 14:48:33 -05:00
Colin Snover cbc3b773aa AUDIO: Make WAV streams seekable
This allows raw PCM in WAVE containers to have duration and be
seekable, and opens the door for ADPCM streams to be seekable later
if necessary.

This change is needed to avoid duplication of RIFF/WAVE container
parsing for SCI engine, which uses raw PCM WAVE files and needs to
be able to determine their lengths.
2016-06-19 14:48:33 -05:00
Eugene Sandulenko 547fcecf38 GRAPHICS: Fix 1bpp BMP drawing 2016-06-17 13:31:28 +02:00
Eugene Sandulenko 19be66f150 ENGINES: Make splash more robust for non-standard screen sizes 2016-06-17 12:47:00 +02:00
Eugene Sandulenko 8f2a0eb662 TONY: Safer string manipulation 2016-06-17 12:10:11 +02:00
Eugene Sandulenko b404524599 TONY: Complete class initializations 2016-06-17 12:10:11 +02:00
Eugene Sandulenko 4dc60b525d TINSEL: Fix class initialization 2016-06-17 12:10:11 +02:00
Lothar Serra Mari 9131976ff4 NEWS: Fix missing whitespace 2016-06-16 11:28:02 +02:00
Lothar Serra Mari 552ef68fea NEWS/DE: Mention newly supported games 2016-06-16 11:27:48 +02:00
Eugene Sandulenko 2368283ab4 NEWS: Mention newly supported games 2016-06-16 11:16:19 +02:00
Strangerke fd19d453dd PEGASUS: Fix some missing variable initializations 2016-06-16 07:59:53 +02:00
Thierry Crozat 78a85f581d SHERLOCK: Fix compilation error with some gcc versions
Without this change the Apple gcc 4.0 compiler (the last version to
support the MacOS X 10.4 SDK) generate a lot of errors regarding
trying to initialise references to Sherlock::Scalpel::Talk with the
address to a Sherlock::Talk object, or about forward declarations of Sherlock::Scalpel::Talk.
2016-06-15 22:00:36 +01:00
Eugene Sandulenko f2f04b5edd SCUMM HE: Removed unneeded warning 2016-06-15 22:08:08 +02:00
Eugene Sandulenko bb43f5c0f4 SCUMM HE: Fix Moonbase distortion codec 2016-06-15 22:02:55 +02:00
Eugene Sandulenko 0211c0b27c SCUMM HE: Plugged Moonbase distortion in 2016-06-15 07:33:52 +02:00
Torbjörn Andersson 2b81401368 SCUMM HE: Silence GCC "suggest parentheses" warnings
Thanks to sev for confirming that this is the intended expressions.
2016-06-15 06:09:48 +02:00
Torbjörn Andersson 5188a954a6 SCUMM HE: Fix GCC warnings about casting away [const] qualifiers
I hope this is correct. I don't know when the function is used.
2016-06-15 06:05:49 +02:00
Colin Snover ffcab2fa5d SCI: Fix memory leaks in resource patcher 2016-06-14 20:58:53 -05:00
Colin Snover b56266d28d SCI32: Fix video performance benchmarking in most SCI32 games
Most SCI32 games draw a "fred" object to the screen when the game
first starts to benchmark video performance. When framerate
throttling is enabled (which fixes many/most timing-related bugs
and reduces system load caused by unnecessary graphics updates),
the game's performance check will think that video card is slow,
causing some "high-performance" game features to be disabled.

To avoid this, we simply disable throttling during benchmarking by
detecting the "fred" object.
2016-06-14 20:58:53 -05:00
Eugene Sandulenko 934e186063 GRAPHICS: Initialize mask in FllodFill when required 2016-06-14 20:45:09 +02:00
Eugene Sandulenko 2bf0ebf317 GRAPHICS: Add possibility to specify Fill maskmode in the constructor 2016-06-14 20:30:24 +02:00
Eugene Sandulenko 3028d9202d SCUMM HE: Simplify Moonbase distortion code 2016-06-14 19:43:08 +02:00
Eugene Sandulenko 6928ddba15 SCUMM HE: Initial Moonbase distortion code 2016-06-14 19:28:29 +02:00
Strangerke df02215957 PEGASUS: Initialize some variables 2016-06-14 07:43:04 +02:00
Thierry Crozat 95f1e6555c I18N: Regenerate translations data file 2016-06-13 23:41:45 +01:00
Thierry Crozat f7bb128dd8 I18N: Update French translation 2016-06-13 23:41:16 +01:00
Thierry Crozat da9302184a I18N: Update Hungarian translation (from patch #1650) 2016-06-13 23:35:49 +01:00
Eugene Sandulenko f25c848238 MOHAWK: Engine classes initializations 2016-06-13 22:00:38 +02:00
Strangerke 3a954932cc GNAP: Specify highres in configure.engine 2016-06-13 21:19:39 +02:00
Filippos Karapetis a4ef3f9d73 SCI32: All versions of KQ7 are using the older remap range semantics 2016-06-13 12:01:28 +03:00
Filippos Karapetis 00761de4a3 SCI32: Remove the unused newColors array 2016-06-13 12:01:28 +03:00
Strangerke 013406abdd SHERLOCK: Fix uninitialized variables 2016-06-13 07:33:17 +02:00
Strangerke 010e676184 TOON: Fix uninitialized variable 2016-06-13 07:13:46 +02:00
Colin Snover b51d60f85c SCI: Fix uninitialized read in SoundCommandParser 2016-06-12 20:28:34 -05:00
Eugene Sandulenko e3fff124ee BBVS: Initialize SpriteModule class 2016-06-12 22:51:29 +02:00
Alyssa Milburn ce9573c8c5 ANDROID: Relax manifest hardware requirements.
This is necessary to make the package installable via Google Play for
almost all modern devices.
2016-06-12 08:55:21 +02:00
Eugene Sandulenko a7d18763ac TOLTECS: Initialized Animation class 2016-06-10 14:21:17 +02:00
Eugene Sandulenko 50868e9e10 TOLTECS: Initialize Menu class 2016-06-10 14:17:04 +02:00
Eugene Sandulenko 455d433afd TOLTECS: Initialize objects 2016-06-10 14:12:27 +02:00