Commit Graph
82 Commits
Author SHA1 Message Date
Eugene Sandulenko abea37c9bb ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
Orgad Shaneh 940c7bfc14 SCI: Use nullptr
Using clang-tidy modernize-use-nullptr
2021-11-14 15:51:59 +02:00
sluicebox 816f65cd68 SCI: Remove AIFF handling from SCI16 code
Only SCI32 Mac games use AIFF audio. This should have been
removed when SCI32 code was moved into its own classes.
2021-06-10 14:28:15 -06:00
sluicebox ed170da62d SCI: Validate size in AudioPlayer::getAudioStream() 2021-06-03 16:56:08 -06:00
SupSuper df4bf9d557 SCI: Fix audio resources being freed too early
Copy audio resource buffers as we don't have control over the lifetime of the resource.
2021-06-03 23:27:46 +01:00
sluicebox 77b93c77ab SCI: Add support for MOTHERGOOSE256 CD-Audio version
This multi-lingual version handles audio in a unique manner.
English audio is only on the CD audio track while the other
four languages are only in resource files. This is transparent
to the scripts that play audio; they're the same in all versions.
This required a custom interpreter that detects the language and
handles English differently. It even has a custom error message:
"You will not be able to play the 'ENGLISH' version."

Fixes bug #12431
2021-04-24 00:35:03 -07:00
sluicebox 364542e9e1 SCI: Fully implement kDoAudio(13) for PHARKAS CD
Now that we match SSCI behavior when it comes to interrupting samples
when new samples play, we need to implement kDoAudio(13) so that the CD
version of Freddy Pharkas can detect these interruptions. Otherwise,
the game will softlock if the points sound effect or narration is
interrupted.
2021-02-23 18:22:25 -08:00
Filippos Karapetis bd7e708fc3 SCI: Move resource related functionality into a separate folder 2020-11-29 14:34:55 +02:00
sluicebox 3c71df687b SCI: Return correct kSciAudioCD value on failure
SSCI returns 0 when CD audio track can't be selected
2020-11-27 10:58:35 -08:00
sluicebox 843dd302d7 SCI: Add support for fan library sciAudio 1.1
Used by Soulshade Asylum
2020-09-29 18:36:37 -07:00
D G Turner d11c61db14 SCI: Fix Missing Default Switch Cases
These are flagged by GCC if -Wswitch-default is enabled.
2019-12-01 05:06:31 +00:00
Colin Snover 67b72cc5a8 SCI: Remove unused Robot code from SCI16 audio code 2017-05-10 10:55:00 -05:00
Colin Snover 0826501ef6 SCI32: Fix audio, wave, VMD, Duck, CLUT, TGA, ZZZ, Etc patches
Specifically, audio patches are used in at least PQ:SWAT
(40103.AUD), Lighthouse (9103.AUD), and the GK2 demo (300.AUD).
2017-03-30 19:46:27 -05:00
Colin Snover 31daa956d6 SCI: Implement bounds-checked reads of game resources 2017-03-27 19:42:31 -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
Matthew Hoops aa6ff44440 BACKENDS: Only expose one set of functions for AudioCDManager
Engines should only have to call one set of functions and not decide between the two. In fact, the 'emulation' API was documented to just call the 'real CD' API.
2016-03-13 13:57:19 +01:00
Matthew Hoops c0e11a431d SCI: Ensure openCD() is called 2016-03-13 13:53:08 +01:00
Martin Kiewitz 4a63352462 SCI: sciAudio support for .wav + .aiff files 2016-01-03 00:27:42 +01:00
Martin Kiewitz 30b554d694 SCI: sciSound: check compression type 2016-01-03 00:07:05 +01:00
Martin Kiewitz 4892bd8066 SCI: fix sciAudio not doing loops correctly 2016-01-02 22:43:27 +01:00
Martin Kiewitz 0dd760724e SCI32: split up SCI2.1 into EARLY/MIDDLE/LATE
- 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-12-29 01:44:11 +01:00
Matthew Hoops b6fdc7be88 AUDIO: Make makeAIFFStream return a RewindableAudioStream
All callers requiring SeekableAudioStream have been adapted by using dynamic_cast
2015-06-06 17:20:41 -04:00
Matthew Hoops c76e30d01c SCI: Only use makeAIFFStream instead of loading the sound twice 2015-06-04 19:47:23 -04:00
Filippos Karapetis b8aca5c202 SCI: Add missing USE_MAD check for commit 6a519f7f
This fixes compilation for platforms where libmad isn't present
2014-03-28 22:00:12 +02:00
Filippos Karapetis 6a519f7f40 SCI: Initial implementation of the fanmade sciAudio library
This is used in the fanmade games "LockerGnome Quest Redux" and
"Betrayed Alliance"
2014-03-28 02:16:54 +02:00
Johannes Schickel 8fc7d60feb SCI: Make GPL headers consistent in themselves. 2014-02-18 02:39:37 +01:00
Willem Jan Palenstijn 09fc458f15 SCI: Report sound stream loading errors 2013-04-20 16:13:41 +02:00
Filippos Karapetis b19ccb9d1e SCI: Set the correct audio type for SCI1.1 sound effects, fixing bug #3554709
Now, sound effects in SCI1.1 games will no longer be incorrectly using the speech
sound volume. This avoids them being silenced in floppy games that are flagged
as not having speech. Fixes bug #3554709 - "SCI: Digital SFX don't play when
Override Global Audio set"
2012-08-20 03:22:56 +03:00
Max Horn 88913c0139 ALL: Remove trailing whitespaces
This tries to make our code a bit more compliant with our code formatting
conventions. For future use, this is the command I used:
  git ls-files "*.cpp" "*.h" | xargs sed -i -e 's/[ \t]*$//'
2011-06-20 00:59:48 +02:00
strangerke 69b1485a22 GIT: Clean up: Suppress SVN tags, now useless 2011-05-12 01:16:22 +02:00
Max Horn 0ce2ca4e00 COMMON: Replace MKID_BE by MKTAG
MKID_BE relied on unspecified behavior of the C++ compiler,
and as such was always a bit unsafe. The new MKTAG macro
is slightly less elegant, but does no longer depend on the
behavior of the compiler.
Inspired by FFmpeg, which has an almost identical macro.
2011-04-12 16:53:15 +02:00
Max Horn 42ab839dd6 AUDIO: Rename sound/ dir to audio/
svn-id: r55850
2011-02-09 01:09:01 +00:00
Filippos Karapetis 9149100629 SCI: Several changes related to robot files
- Added WIP robot sound support (which has pops between each frame for some reason)
- Now handling a lot of previously ignored fields
- Now handling the chunk before the palette chunk properly. Fixes some v6 videos
- Added known robot related TODOs

svn-id: r55793
2011-02-06 11:51:21 +00:00
Filippos Karapetis 512bcf8b90 SCI: Rewrote the robot playing code in a way similar to other video decoders
- The code now streams videos instead of loading them in memory, without utilizing seeking
- Removed the sound-related robot code from the graphics classes
- Started implementing the code for the sound in robot videos (still not finished)

svn-id: r55772
2011-02-04 17:51:59 +00:00
Matthew Hoops a6891a4372 SCI: Fix Mac sync resource support
svn-id: r55716
2011-02-02 02:20:25 +00:00
Filippos Karapetis 401a8c355d SCI: Some initial work on the sound of robot videos (doesn't work yet, seems to be a problem with the encoding of the customized SOL audio files in robot videos)
svn-id: r55023
2010-12-23 13:11:10 +00:00
Max Horn 2180b2d6b5 COMMON: Split common/stream.h into several headers
svn-id: r54385
2010-11-19 17:03:07 +00:00
Max Horn 059944e59c COMMON: Push #include audiocd.h in system.h out to .cpp files
svn-id: r54148
2010-11-08 23:07:42 +00:00
Alejandro Marzini fb4086cadb Merged from trunk, from Rev 50841 to HEAD
svn-id: r51495
2010-07-30 05:28:09 +00:00
Matthew Hoops 7a86204e5c SOUND: Move the Mac snd decoder from SCI to /sound
For use with Kyra1 Mac instrument samples. T7G Mac and Loom Mac also use this format for their custom instrument samples.

svn-id: r51327
2010-07-26 18:13:35 +00:00
Alejandro Marzini 609e08d5db Merged from trunk, from Rev 49499 to HEAD
svn-id: r50840
2010-07-13 04:31:15 +00:00
Filippos Karapetis a1dc56429c SCI: Removed duplicate warning for missing audio samples
svn-id: r50560
2010-07-01 17:42:39 +00:00
Max Horn b09996cb5c SCI: Rewrap yet more comments
svn-id: r50505
2010-06-29 20:50:52 +00:00
Matthew Hoops bb9f556c36 Add support for the QFG3 demo audio map and audio resources. Based on a patch by Walter.
svn-id: r50144
2010-06-22 15:18:55 +00:00
Filippos Karapetis 0e365131ac Fixed wPlayAudio, and added some documentation on the 3 new kDoAudio subops. Digital sounds in Pharkas work again
svn-id: r49928
2010-06-17 12:29:58 +00:00
Max Horn f936443252 SCI: Saner and simpler conversion from msecs to ticks
svn-id: r49846
2010-06-15 12:34:33 +00:00
Max Horn d570e10b77 Modify makeAIFFStream to match the other sound decoder factories
svn-id: r49844
2010-06-15 12:33:54 +00:00
Alejandro Marzini e1ef3cd9fc Renamed getAudioCD to getAudioCDManager.
svn-id: r49678
2010-06-15 04:13:12 +00:00
Filippos Karapetis f4739f9f68 Added debug output to kDoAudio and some music commands. Also added a warning when an audio stream can't be created. Finally, the debug level of the MIDI parser debug output has been raised to 4, as it's too verbose
svn-id: r49605
2010-06-12 11:41:22 +00:00