aboutsummaryrefslogtreecommitdiff
path: root/engines/scumm
AgeCommit message (Collapse)Author
2013-08-03SCUMM: Do not set Surface::pixels directly anymore.Johannes Schickel
2013-08-03SCUMM: Take advantage of Surface::getPixels.Johannes Schickel
2013-08-03SCUMM: Prefer getBasePtr over direct Surface::pixels access.Johannes Schickel
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-07-21SCUMM: Fix test before running VAR_SAVELOAD_SCRIPT2 (CID 1004135)Torbjörn Andersson
This doesn't really make any difference because either both VAR_SAVELOAD_SCRIPT and VAR_SAVELOAD_SCRIPT2 exist, or neither does. But it feels more correct this way.
2013-07-18Merge pull request #345 from countingpine/patch-1Johannes Schickel
SCUMM: More precise Player_Mac::durationToSamples
2013-07-16SCUMM: Better Player_Mac::durationToSamplescountingpine
Uses the fact that 4*480*480 == 225 << 12, and the identity (a*b)>>n == (a>>n)*b + ((a%(1<<n))*b)>>n (assuming non-overflowing math), except the rhs uses smaller intermediate values and does not overflow(*). Compared to the original code, this uses 1 fewer division and eliminates the rounding error. (*) Technical note: In some cases the right hand side of the above identity still has possibilities of intermediate overflow, but only if b > (1 << n), or if (b << n) overflows, neither of which are true here.
2013-07-15INSANE: Fix CID 1003734. Missing break in switchEugene Sandulenko
2013-07-15INSANE: Fix CID 1003733. Missing break in switch.Eugene Sandulenko
In fact the code was wrong there due to copy-paste error
2013-07-14JANITORIAL: Remove trailing whitespaceSven Hesse
2013-07-09SCUMM: Add another French Windows version of Pajama Sam 2.Kirben
2013-07-06SCUMM: Fix initGM() buffer overflow (CID 1032513)Torbjörn Andersson
We're clearly using 12 bytes, not 11.
2013-06-23SCUMM: Corrected Russian Full Throttle variant namesEugene Sandulenko
2013-06-22SCUMM: Added another Russian variant of Full ThrottleEugene Sandulenko
2013-06-04SCUMM: Verify sample width in Digital iMUSE callback. CID 1002112Torbjörn Andersson
Verify that 'bits' really is one of 8, 12 or 16 before decoding the data. It's probably always the case (unless the data files are damaged) but if it isn't we'll either try to queue NULL to the audio stream, or queue the same buffer more than once, or free the buffer more than once. All of which are bad, though Coverity only noticed the last of these cases.
2013-06-02SCUMM: Remove unused variable _quitTorbjörn Andersson
CID 1003018
2013-05-11SCUMM: Clean-up of Roland GS codetcarey
1. Remove _sc55 bool. All Roland GS-capable devices have MT-32 sound/drum maps, so they should always be used when _enable_gs is set. 2. Always enable _native_mt32 if Roland GS mode is selected. I don't know why I never did this originally, since _enable_gs is automatically disabled for SCUMM v6+ games that use General MIDI tracks instead of MT-32 music. 3. Set master tune for GS devices to 442.0kHz. This is the master tune setting for the MT-32.
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.
2013-05-01SCUMM: Change NUM_SCRIPT_LOCALS to NUM_SCRIPT_LOCALTorbjörn Andersson
For consistency with NUM_SCRIPT_SLOT.
2013-05-01SCUMM: Fix out-of-bounds access in runScript() debug messagesTorbjörn Andersson
I believe this fixes CID 1003954, 1003957, 1003958, 1003962 and 1003966.
2013-04-30SCUMM: CleanupTorbjörn Andersson
We only need to initialize 'args' in runInventoryScript() when we are actually using them.
2013-04-30SCUMM: Use correct array size when calling initializeLocals()Torbjörn Andersson
The initializeLocals() function assumes that it can copy 25 elements when being provided an array of values. But this array was frequently a lot smaller than that. I've introduced a constant for the number of locals (though VirtualMachineState has one more for some reason), and fixed the array sizes in a number of places. CID 1003951, 1003952, 1003953, 1003955, 1003956, 1003959, 1003960, 1003961, 1003963, 100394, 1003965
2013-04-29SCUMM HE: fix crash introduced in a10ad272a84Eugene Sandulenko
2013-04-29SCUMM: Fix o100_videoOps subOp 0Matthew Hoops
football2002 endzone videos now display
2013-04-28SCUMM HE: Plug memory leak. CID 1003582Eugene Sandulenko
2013-04-24SCUMM: Fix non-terminated string. CID 1003867Eugene Sandulenko
2013-04-23SCUMM: Fix football2002 field coordinatesMatthew Hoops
2013-04-22SCUMM: Fix a bug in football's nextPoint U32 opcodeMatthew Hoops
Seems to fix bug #3495704
2013-04-21INSANE: Fix potential buffer overflow. CID 1003866Eugene Sandulenko
2013-04-18ENGINES: Remove a bunch of unused private member variablesMax Horn
All instances uncovered by clang warnings.
2013-04-06SCUMM: Add Italian Windows version of Freddi Fish 4.Kirben
2013-04-03SCUMM: Add Italian Windows demos of Freddi Fish 4 and Putt-Putt Enters the Game.Kirben
2013-04-02SCUMM: Hardly-even-worth-mentioning cleanup.Torbjörn Andersson
2013-04-02SCUMM: Fix bug #3575444: "FT: Enemy behaviour in biker fight"Eugene Sandulenko
Also fixed enemy behavior along the way. No wonder it differed from the original!
2013-04-02SCUMM: More fixes in INSANEEugene Sandulenko
2013-03-30SCUMM: Fix more bugs in INSANEEugene Sandulenko
2013-03-30SCUMM: Fix several bugs in INSANEEugene Sandulenko
2013-03-30SCUMM: Fix bug #3546434: "SCUMM: FT glitches in Vulture encounter on old ↵Eugene Sandulenko
mine road" There was a missing Sfx call.
2013-02-23ALL: Fix typo (existant->existent)Willem Jan Palenstijn
2013-01-27SCUMM: Update handling of non so resources in Loom Mac.Johannes Schickel
This changes the warning to a debug and also updates the comment a bit. Thanks to eriktorbjorn for checking Loom Mac in an emulator.
2013-01-27SCUMM: Work around bug #3602239 ("Mac Loom crashes using opening...")Torbjörn Andersson
Skip music resources that don't have the "so" (song?) tag. It is better than asserting, now that it turns out that they do exist.
2013-01-26Merge pull request #301 from lordhoto/c++11-playgroundJohannes Schickel
RFC: Allow use of override and nullptr. Also allow C++11 compilation.
2013-01-09SCUMM: Cleanup ScummEngine_v80he::createSound()Matthew Hoops
Added some comments to make it more readable. Switched usage of a temporary buffer and a double memcpy with a memmove. Also fixed a potential out-of-bounds write, thanks to LordHoto.
2013-01-09SCUMM: Silence C++11 narrowing warnings.Johannes Schickel
2013-01-02JANITORIAL: Fix or silence a couple of Clang analyzer warningsTorbjörn Andersson
Clang will produce plenty of warnings (most of them seem to be of the "if the stars align the wrong way, this may happen" variety), but I don't have the time or patience to look at all of them.
2012-12-15SCUMM: Handle double-clicks in Mac Loom (bug #3588164)Torbjörn Andersson
Unlike the EGA DOS version, it doesn't seem to be the scripts that keep track of double-clicks. Instead, the engine sets a variable to indicate them. Unlike the DOS version, we don't check that the second click happens close enough on the screen to the first one. We could, but it seemed needlessly complicated.
2012-12-14SCUMM: Fix compilation on AmigaOS4.Johannes Schickel
2012-12-14Merge pull request #291 from eriktorbjorn/mac-mi-music-finalJohannes Schickel
SCUMM: Add support for Macintosh music in Monkey Island 1 and Loom
2012-11-24SCUMM: Handle note value 1 as "hold current note" in MI1 MacTorbjörn Andersson
After listening to the original music in a Mac emulator (which unfortunately doesn't handle the music very well), I can only conclude that note value 1 means the note should continue playing. At first I thought maybe it was supposed to fade the current note, or perhaps change its volume, but I can't hear any traces of either. So I'm going to assume it just means "hold the current note", though for the life of me I cannot think of any valid reason for such a command. So it may be wrong, but it sounds closer to the emulator than it did before.
2012-11-23SCUMM: Added TODO comment about Mac MI1 musicTorbjörn Andersson
Some notes in the main theme are very staccato, and this could possibly explain why.