aboutsummaryrefslogtreecommitdiff
path: root/engines/scumm/sound.cpp
AgeCommit message (Collapse)Author
2019-07-14SCUMM: limit 'Unrecognized base tag' warning to valid casesathrxx
This warning will not only show up if a tag is actually unrecognized but also in cases where the tag is recognized, but the resource size is 0. This happens quite a lot in the Amiga version of MI2 with 'SOU ' tags.
2018-06-06SCUMM: Fix recent commit to compile under all circumstancesAdrian Frühwirth
2018-06-06SCUMM: Work around distorted speech on submarine in Indy4Adrian Frühwirth
The speech sample at VCTL offset 0x76ccbca ("Hey you!") which is used when Indy gets caught on the German submarine seems to not be a VOC but raw PCM s16be at (this is a guess) 44.1 kHz with a bogus VOC header. To work around this we skip the VOC header and decode the raw PCM data. Fixes Trac#10559
2018-06-03SCUMM: Improve 'imuse play' debugger command error handlingAdrian Frühwirth
This commit introduces the following (seemingly non-invasive) changes to make the 'imuse play' debugger command more useful (i.e. don't crash when trying to load the wrong kind of (sound) resource. * ScummEngine::readSoundResource() Instead of fatally error()'ing upon hitting a non-sound resource type, e.g. a room header (0x524d4844 aka RMHD), we now only issue a warning(). This enables the already existing dead code which properly returns 0 (aka no resource loaded). * ResourceManager::validateResource() Instead of fatally error()'ing upon hitting an illegal glob type we now only issue a warning() and return false (also existing dead code). All methods calling validateResource() check its return value so this seems like the right thing to do anyway. * ScummDebugger::Cmd_IMuse() Instead of directly calling ensureResourceLoaded() we now call getResourceAddress() instead (which in turn calls ensureResourceLoaded() and handles other edge cases) and only attempt to play a sound if the returned pointer actually is valid. Fixes Trac#10527.
2018-01-31SCUMM: Replace UB-triggering serialization code with Common::SerializerColin Snover
Fixes Trac#10342.
2018-01-31SCUMM: implement lipsync for v7 gamesAdrian Frühwirth
2018-01-31SCUMM: really implement lipsyncGiovanni Bajo
It looks like the code was there, but it was never fully implemented because _curSoundPos was never being incremented. Experimentally, it looks like it works if it is a 60FPS counter.
2016-10-31JANITORIAL: TyposAlexandre Detiste
I've not fixed this one, maybe it's on purpose: RELASE -> RELEASE engines/mads/staticres.cpp:const char *const kGameReleaseTitleStr = "GAME RELASE VERSION INFO";
2016-06-22SCUMM HE: Update sound flags and queue, for new settings.Kirben
2016-05-21SCUMM: Reduce audio header dependenciesOri Avtalion
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-02-15JANITORIAL: Typos detected with lintian & grepAlexandre Detiste
2014-10-28SCUMM: Remove trailing whitespaceFilippos Karapetis
2014-07-23SCUMM: Make sure digital SFX are played even when speech is muted.Johannes Schickel
This makes sure that digital SFX are started even when speech is muted (when using subtitles only mode). This is, for example, noticable in the Sam&Max CD intro.
2014-07-23SCUMM: Use correct sound type for digital sfx.Johannes Schickel
This makes sure that digital sfx in pre digital iMuse games are using the SFX sound type rather than the speech sound type. This allows proper volume control.
2014-07-05SCUMM: Fix a subtle bug in Sound::getCDStatus() for Loom SteamFilippos Karapetis
2014-07-04SCUMM: Add support for CD audio tracks in the Steam versions of LoomFilippos Karapetis
Many Thanks to Ben Castricum for the original patch
2014-02-18SCUMM: Make GPL headers consistent in themselves.Johannes Schickel
2013-11-01SCUMM: More renaming for playersFilippos Karapetis
Rename "player" directory to "players", and reintroduce the "player_" file prefix. This has been done after sev's request. "players/player_foo.*" is more descriptive, and avoids potential name clashes in libraries
2013-11-01SCUMM: Move all players to a separate "player" directoryFilippos Karapetis
There are 34 player .cpp/.h player files, so they have been placed in their own directory, to logically separate them from the rest of the engine
2013-10-03SCUMM: Fix unused variable warningsRodrigo Rebello
2013-07-24SCUMM: Implement original AD AdLib output.Johannes Schickel
This implements the original AD output and enables it for Indy3 and Loom DOS. It is not enabled for Monkey Island DOS because it would break multi MIDI support. However, there are also drawbacks for Indy3. In the catacombs we were able to play sfx (Indy walking around) and the background music at once. This was not supported in the original player and thus also does not work with this reimplementation. This fixes bug #2027877 "INDY3: Non-Looping Sound Effects". This fixes bug #1159581 "ADLIB: Adlib Emulation doesn't Respect Volume Settings" for Indy3 and Loom.
2013-05-02COMMON: Change kPlatformPC to kPlatformDOSMatthew Hoops
"PC" was very ambiguous and now it matches what we show in the GUI. This also corrects sword2's platform to Windows.
2012-11-14SCUMM: Remove Mac version of MI1 from special case.Torbjörn Andersson
We no longer use iMuse for MI1 Mac so this never happens. The Mac player can only play one song at a time, so it should be all right.
2012-11-14SCUMM: Remove unnecessary check for Mac LoomTorbjörn Andersson
As clone2727 pointed out, the default case handles Loom. I guess it was a special case before to *prevent* it from trying to play the sound, and to keep some comments about the format.
2012-11-13SCUMM: Add support for Mac Loom music and soundTorbjörn Andersson
It turns out that playing the Mac Loom music isn't particularly different from playing the Monkey Island 1 music, except the data layout is a bit different and there's no per-note volume.
2012-11-11SCUMM: Added support for Macintosh music in Monkey Island 1Torbjörn Andersson
This is based on the old Mac0-to-General MIDI conversion that we used to do (and which this patch removes), as well as the code for playing the Monkey Island 2 and Fate of Atlantis Macintosh music. I'm not sure how accurate it is, particularly in tempo and volume, but at this point it seems to work pretty well. Looping music is perhaps a bit off, but it was before as well. There is an annoying drawn out note in the music when you're following the shopkeeper, but that appears to have been there in the original as well.
2012-09-26JANITORIAL: Remove trailing whitespaces.Johannes Schickel
Powered by: git ls-files "*.cpp" "*.h" "*.m" "*.mm" | xargs sed -i -e 's/[ \t]*$//'
2012-09-20SCUMM: Update commentsMatthew Hoops
2012-09-20SCUMM: Restrict the Mac m68k v5 driver to MI2/Indy4Matthew Hoops
Shouldn't be used with MI1
2012-09-20SCUMM: Add support for Indy4 Mac 68k soundMatthew Hoops
2012-09-20SCUMM: Don't play SBL effects in MI2 mac.Johannes Schickel
The original does not do this either.
2012-01-15SCUMM: add missing free()athrxx
2011-11-06SCUMM: Stream sfx/voice sounds from mouster.sou.Johannes Schickel
This fixes sound corruption when using the new VOC streaming code. It also reduces the runtime memory needed for compressed sound files slightly, since it does not preload them into memory anymore. This comes at the expense of one file descriptor needed per sfx being played though. Thanks to Kirben for his review and feedback.
2011-11-03SCUMM: Fix warningsEugene Sandulenko
2011-11-02SCUMM: Remove outdated comment.Johannes Schickel
2011-10-09AUDIO: Add default disposeAfterUse value to makeVOCStream again.Johannes Schickel
2011-10-09AUDIO: Remove unused makeVOCStream interface.Johannes Schickel
2011-09-17SCUMM FM-TOWNS: fix another regressionathrxx
(pcm sound effects broken in 69adb13c2f3cadd4dac2bba8164aa0b8a9400abc)
2011-08-19SCUMM: Fix AdLib output in (MI2/)Indy4 Amiga.Johannes Schickel
Indy4 Amiga features only ROL tracks, thus with 69adb13c2f3cadd4dac2bba8164aa0b8a9400abc the MIDI -> AdLib conversion was broken. Fixed that now by allowing ROL tracks to be played on AdLib output for Amiga games. This probably also affected Monkey Island 2 Amiga, but I don't have it to test.
2011-08-16SCUMM: Fix AdLib output for MI2/Indy4 MacMatthew Hoops
A regression from 69adb13c2f3cadd4dac2bba8164aa0b8a9400abc
2011-08-08SCUMM: Remove unneeded check for CMS in readSoundResource.Johannes Schickel
CMS support is only available in games using readSoundResourceSmallHeader.
2011-08-06SCUMM: Fix compilationEugene Sandulenko
2011-08-06ALL: Reduce audio/ header dependencyEugene Sandulenko
2011-08-06OSYSTEM: extended installTimerProc() with timer ID parameterEugene Sandulenko
2011-08-05SCUMM: Fix up CMS player implementation.Johannes Schickel
It's much better now and hopefully quite close to the original when it comes to the music part. The intro music of Loom and Monkey Island 1 EGA sounds fine to me now at least.
2011-08-03SCUMM: Typos... thx clone2727.Johannes Schickel
2011-08-03SCUMM: Added FIXME to our old AdLib resource conversion code.Johannes Schickel
We handle command 0x80 incorrectly, which results in sound effects never looping. This is the cause for bug #2027877 for example. I add this FIXME since it is (probably) non-trivial to fix and so it won't be forgotten.
2011-07-17SCUMM: Fix strange noise in Indy4 outro with AdLib/FM-Towns output.Johannes Schickel
Formerly we tried to play back a ROL resource on AdLib in this case, since the game does not contain a ADL resource for the sound the game tries to play here. The original does not exhibit this behavior, thus I changed it to behave the same now. Big thanks to eriktorbjorn for noticing and finding the cause of this problem. Also thanks to Kirben for checking how the original behaved and _athrxx for checking the FM-Towns version of Indy4.