aboutsummaryrefslogtreecommitdiff
path: root/engines/scumm
AgeCommit message (Collapse)Author
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.
2012-11-23SCUMM: Fix memory leak when loading old MI1 Mac savegamesTorbjörn Andersson
I completely forgot to delete the dummy iMUSE object after using it to skip over the old music save information. Thanks to Lordhoto for pointing this out.
2012-11-22Merge pull request #283 from lordhoto/scumm-opl3Johannes Schickel
SCUMM: Support OPL3 in Sam&Max
2012-11-19SCUMM: Try harder to find Mac Monkey Island instrumentsTorbjörn Andersson
At least for me, hfsutils turns spaces into underscores so try both "Monkey Island" and "Monkey_Island".
2012-11-19SCUMM: Simplify checkMusicAvailable() a bitTorbjörn Andersson
2012-11-19SCUMM: Fix crash when Macintosh instruments aren't availableTorbjörn Andersson
Initialise _channel[] even when the instruments aren't available. Otherwise, ScummVM will crash in a number of places including, but not limited to, when loading savegames.
2012-11-19SCUMM: Add Windows encoding of the Mac Loom filenameTorbjörn Andersson
2012-11-18SCUMM: Lock the sound resource while the music is playingTorbjörn Andersson
After some discussion on #scummvm, the player now locks the sound resource while the music is playing. This prevents the resource manager from expiring the resource, which at best could cause music to restart where it shouldn't.. At worst, I guess it could have crashed, but I never saw that happen.
2012-11-18SCUMM: Fix regression that caused "pops" in MI1 jungle musicTorbjörn Andersson
Properly treat rests as rests, not notes. Otherwise, it would try to play a really low note which just came out as a "pop".
2012-11-18SCUMM: Use more correct (I think) way of converting samplesTorbjörn Andersson
It shouldn't make any real difference, but it's probably more formally correct.
2012-11-18SCUMM: Prevent music channels from drifting out of sync in Mac MI1Torbjörn Andersson
In looped music, prevent the music channels from drifting out of sync over time. This was noticeable after a few minutes in the SCUMM Bar. We do this by extending the last note (which is just zeroes, so we didn't even use to play it) so that it has the exact number of samples needed to make all channels the exact same length. (This is calculated when the music is loaded, so it does not need any extra data in the save games, thankfully.) As a result, the getNextNote() is now responsible for converting the duration to number of samples (out of necessity) and for converting the note to a pitch modifier (out of symmetry). I made several false starts before I realized how much easier it would be this way.
2012-11-18SCUMM: Fix whitespaceTorbjörn Andersson
2012-11-17SCUMM: Avoid "pops" at the end of the note in Mac MI1/Loom musicTorbjörn Andersson
At least on my computer, when the note ended abruptly there would be an annoying "pop" at the end. This was particularly noticeable at the end of the distaff notes in Loom. To get around this, fade out the last 100 samples. There's nothing magical about 100 in particular, but it's a nice even number and it should be short enough that it's never a noticeable part of the note, even at low sample rates.
2012-11-17SCUMM: Remove commented out code.Torbjörn Andersson
It was the remains of an experiment and no longer serves a purpose.
2012-11-16SCUMM: Fix the "drafts" debugger command for Mac LoomTorbjörn Andersson
Mac Loom's drafts appear to be stored from variable 55 and upwards. I'm working under the assumption that there's either only one version of Loom for the Mac, or that they all behave the same. I could be wrong about that.
2012-11-16SCUMM: Remove obsolete part of the "drafts" debugger commandTorbjörn Andersson
It was never quite clear exactly what "drafts fix" did. It wasn't guaranteed to work on all versions of Loom - or at all - and I haven't heard any reports about the data structure getting corrupted for years.
2012-11-16SCUMM: Store sample rate in Mac MI1 / Loom savegamesTorbjörn Andersson
This keeps the music from breaking when loading a savegame that was made with a different sample rate than the current one. It also breaks all savegames made in the past eight hours, but I don't think it's necessary to maintain savegame compatibility within a pull request, as long as it still works with savegames made before it.
2012-11-16SCUMM: Add hack to preserve savegame compatibility with Mac MI1Torbjörn Andersson
For old savegames, we now use a "dummy" iMUSE objet to skip the old iMUSE save state. I had hoped to be able to do this without making any changes to the iMUSE code itself, but I was unable to. Also added note about how the save state for the new music will not quite work if the mixer output rate changes. Personally, I'm not too worried about that. It breaks, but it shouldn't break badly.
2012-11-15SCUMM: Save/load Mac music engine state for Loom and MI1Torbjörn Andersson
Note that while this removes _townsPlayer->saveLoadWithSerializer(s) it really shouldn't break anything because _musicEngine also points to the FM Towns player. Famous last words...
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.