aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/sound
AgeCommit message (Collapse)Author
2016-08-19SCI32: Implement kRobotColin Snover
2016-08-06SCI32: Remove VMD flags from Audio32 mixerColin Snover
The VMD decoder sends audio directly to the system mixer.
2016-07-11SCI32: Fix broken background volume in Torin during speechColin Snover
2016-07-11SCI32: Silence non-monitored channels while monitoring is activeColin Snover
2016-07-11SCI32: Fix sign comparison warningColin Snover
2016-07-11SCI32: Fix audio deadlocksColin Snover
Several functions in Audio32 would call into the mixer to pause or resume the audio handle, which would cause a deadlock if the mixer's mixCallback timer fired while one of these functions was running on the main thread. To address this, calls to mixer to pause/unpause the digital audio handle have been removed. Since this was just an optimisation to prevent unnecessary calls to fill the audio buffer, the only problem now is that a tiny amount of CPU is wasted on unnecessary callbacks to read from the empty SCI mixer.
2016-07-11SCI32: Minor Audio32 cleanupColin Snover
2016-07-08SCI: Set isSample when starting digital sample from soundInitSndWillem Jan Palenstijn
This fixes digital samples in at least QfG1, SQ3, LSL5. Bug #7159.
2016-07-01SCI32: Use better audio fading algorithmColin Snover
Using the one from SCI2.1mid makes fades very slow because SDL has a larger audio buffer than SSCI DOS. This new algorithm is based on wall time so will always fade at the correct speed, although the larger buffers will have a coarser granularity so the fades may not be as smooth as in the original engine. If anyone cares, the fade volume could be mixed into individual samples in `readBuffer` instead of applying just once per complete buffer. SSCI did not do this, however, so this implementation should be pretty accurate.
2016-07-01SCI32: Fix audio fadingColin Snover
2016-06-30SCI32: Specify default hardware ratesColin Snover
This normally happens in SSCI when the audio hardware is initialised. CID 1357048
2016-06-26SCI32: Fix hang when playing auto-play audio channelsColin Snover
2016-06-26SCI32: Fix race condition when freeing audio resourcesColin Snover
It's not possible to call any ResourceManager methods from any thread other than the main thread because it is not thread-safe.
2016-06-25SCI32: Properly initialize pausedAtTick inside Audio32::play()Filippos Karapetis
Fixes audio not playing in later SCI32 games that use Audio32
2016-06-25Revert "SCI32: Properly initialize AudioChannel inside Audio32::play()"Filippos Karapetis
This reverts commit 5eaea05a2b6af0ddcf28fca1f0cd3fc0c54f4d07.
2016-06-23SCI32: Properly initialize AudioChannel inside Audio32::play()Filippos Karapetis
Fixes audio issues caused by uninitialized variables
2016-06-23SCI32: Fix usage of the C++11 override keyword with MSVCFilippos Karapetis
MSVC does not allow the usage of the "override" keyword on function definition, only on declaration
2016-06-23SCI32: Fix potentially uninitialized variableFilippos Karapetis
2016-06-23SCI32: Const correction in Audio32's readBuffer() implementationFilippos Karapetis
2016-06-21SCI32: Add low-pass filter to 8-bit SOL audioColin Snover
This improves the perceived quality of audio in games that use 8-bit samples for music, like Torin.
2016-06-20SCI: Minor cleanup of kDoSoundColin Snover
Replaces unused kernel calls to use kEmpty, and set correct signatures for SCI32 kernel calls.
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-06-12SCI: Fix uninitialized read in SoundCommandParserColin Snover
2016-06-07SCI: Plug memory leakEugene Sandulenko
2016-04-14JANITORIAL: Reduce audio header dependenciesOri Avtalion
2016-03-13BACKENDS: Only expose one set of functions for AudioCDManagerMatthew Hoops
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-13SCI: Ensure openCD() is calledMatthew Hoops
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-03-01SCI: Use uint32 instead of unsigned intFilippos Karapetis
2016-01-15SCI: Add a hack in music init for MUMG Deluxe, so that it startsFilippos Karapetis
2016-01-03SCI: sciAudio support for .wav + .aiff filesMartin Kiewitz
2016-01-03SCI: sciSound: check compression typeMartin Kiewitz
2016-01-02SCI: fix sciAudio not doing loops correctlyMartin Kiewitz
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-07-07SCI: Delete OPL when init failsWalter van Niftrik
2015-07-07SCI: Check OPL init return codeWalter van Niftrik
2015-07-07AUDIO: Remove all AudioStream access to OPLMatthew Hoops
2015-07-07SCI: Use the built-in OPL timerMatthew Hoops
2015-07-07AUDIO: Remove the sample rate configuration from the OPL codeMatthew Hoops
2015-06-06AUDIO: Make makeAIFFStream return a RewindableAudioStreamMatthew Hoops
All callers requiring SeekableAudioStream have been adapted by using dynamic_cast
2015-06-04SCI: Only use makeAIFFStream instead of loading the sound twiceMatthew Hoops
2015-02-18SCI: Fix digital audioWillem Jan Palenstijn
Regression from 5028487038fd, where I assumed all songs were MIDI.
2015-02-15SCI: Add more audio debugging outputWillem Jan Palenstijn
2015-02-15SCI: Fix version check for MIDI controller 4EWillem Jan Palenstijn
This is only supported since SCI1 middle, as verified with xmas1990, SCI1 mgoose, SQ4 floppy, LSL1, Jones floppy. Fixes missing sounds in Jones floppy.
2015-02-15SCI: Fix sound object frame selector rateWillem Jan Palenstijn
Thanks waltervn. Verified against asm (QfG2, KQ6CD)
2015-02-15SCI: Only allow a single 'playBed' song in SCI1earlyWillem Jan Palenstijn
2015-02-15SCI: Allow channel remapping from audio thread tooWillem Jan Palenstijn
2015-02-15SCI: Use sound resource priority by default for songsWillem Jan Palenstijn
SCI1 sound resources can have an embedded priority. We now use that by default, unless an explicit DoSound/SetPriority call overrides it. Thanks waltervn. This fixes relative priority of songs in at least PQ3 room 29. Also increase savegame version to 33.
2015-02-15SCI: Give songs that start playing later higher priorityWillem Jan Palenstijn