aboutsummaryrefslogtreecommitdiff
path: root/engines/scumm
AgeCommit message (Collapse)Author
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.
2012-11-14SCUMM: Move Mac player initialization to its own functionTorbjörn Andersson
Apparently we cannot (portably) call virtual functions from the constructor, so initialization has been moved to a separate function.
2012-11-14SCUMM: Try harder to open the Loom Macintosh executable.Torbjörn Andersson
Try the Mac OS Roman form, the UTF-8 form and the filename without any trademark glyph.
2012-11-14SCUMM: Hopefully fix warningTorbjörn Andersson
Excplicitly cast to int to avoid a warning that I don't get, but which clone2727 does. At least, I hope it avoids the warning.
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-14SCUMM: Move most of the Macintosh player code into its own classTorbjörn Andersson
The Monkey Island and Loom mac music is really quite similar. The data layout is a bit different, but most of the code was easy to separate into its own class. The Loom player doesn't do looped music but I don't remember off-hand if it ever should.
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-12SCUMM: Initialize the Macintosh MI1 instruments, along with the channels.Torbjörn Andersson
Otherwise it may crash if you quit before any instruments have been loaded. Oops.
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-11-06SCUMM: Fix bug #3526089 - "SCUMM: ZAK Can't get objects in the bus on Mars"Filippos Karapetis
This fixes a regression in V1/V2 games when no actor direction is set (like the Shuttle Bus scene in Zak V2). The regression was caused by commit de0b5f76749add219a6b667d5d2d69fb8a86d959. Thanks to digitall for his bisecting work, which aided a lot in finding the actual issue for this bug
2012-10-01SCUMM: Ignore detune for Sam&Max.Johannes Schickel
2012-10-01AUDIO: Add support for Sam&Max's OPL3 output in our SCUMM AdLib driver.Johannes Schickel
This is an initial implementation and does not implement the differences in voice allocation.
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-23SCUMM: Add check for resource fork for ".iMUSE Setups".Johannes Schickel
This should help identify incorrect dumps/file naming like what (probably) happened in bug #3570973 "FOA: Doesn't start anymore after adding Mac sound support".
2012-09-20Merge pull request #275 from clone2727/pegasusclone2727
Pegasus engine (The Journeyman Project: Pegasus Prime)
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: Always use the Mac sound output for MI2 Mac.Johannes Schickel
Formerly it wasn't used when the user selected a MIDI output in the options. Thanks to clone2727 for noticing.
2012-09-20SCUMM: Implement support for special sfx in MI2 Mac.Johannes Schickel
This also increases the savegame version, since it introduces a new Instrument subclass.
2012-09-20SCUMM: Implement support for Monkey Island 2 Mac music.Johannes Schickel
This is a initial RE of the audio output Monkey Island 2 Mac uses. Support for special sound effects is not in there yet.
2012-09-20SCUMM: Extend comment about SysEx manufacturer 0x97.Johannes Schickel
2012-09-20SCUMM: Don't play SBL effects in MI2 mac.Johannes Schickel
The original does not do this either.
2012-09-19SCUMM: Enable CMS for the MI1 demoMatthew Hoops
2012-09-12Merge remote branch 'upstream/master' into pegasusMatthew Hoops
Conflicts: AUTHORS
2012-09-07JANITORIAL: Remove underscores from MidiParser variable names.Alyssa Milburn
2012-09-05Merge remote branch 'upstream/master' into pegasusMatthew Hoops
2012-09-01SCUMM: PCESetCostumeData should have static linkingBertrand Augereau
2012-08-31Merge remote branch 'upstream/master' into pegasusMatthew Hoops
2012-08-31SCUMM: Nicer constants in _ClassicProc3RendererShadowARM that allow ↵Bertrand Augereau
refactoring stack space more easily
2012-08-31SCUMM: Fix of spaces/tabs mismatch (Cosmetic)Bertrand Augereau
2012-08-26Merge remote branch 'upstream/master' into pegasusMatthew Hoops
Conflicts: AUTHORS devtools/credits.pl gui/credits.h
2012-08-26Merge pull request #268 from clone2727/video-rewriteMatthew Hoops
VideoDecoder upgrade & partial rewrite
2012-08-16VIDEO: Merge AdvancedVideoDecoder into VideoDecoderMatthew Hoops
2012-08-15SCUMM: Replace detector printf usage with logMessage.Alyssa Milburn
2012-07-25VIDEO: Convert Bink to the new AdvancedVideoDecoder APIMatthew Hoops
2012-07-23VIDEO: Rewrite SmackerDecoder to use the new APIMatthew Hoops
2012-07-08SCUMM: Correct HE version for another English Windows version of Freddi Fish ↵Travis Howell
and Luther's Maze Madness.