aboutsummaryrefslogtreecommitdiff
path: root/engines/scumm/imuse
AgeCommit message (Collapse)Author
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-02-23ALL: Fix typo (existant->existent)Willem Jan Palenstijn
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-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-10-01SCUMM: Ignore detune for Sam&Max.Johannes Schickel
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-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: 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
2011-11-04SCUMM: Revert "Removed a duplicate variable assignment"Willem Jan Palenstijn
This reverts commit 747ebffd17eb64423fd8fb321f9d803ec31105f4, and adds a FIXME.
2011-11-04SCUMM: Removed a duplicate variable assignmentFilippos Karapetis
2011-08-21SCUMM: Fix typo in PC Speaker output.Johannes Schickel
2011-08-07JANITORIAL: Remove trailing empty lines.Christoph Mallon
2011-07-14SCUMM: Add debug output in case the code tries to set up a non-existant ↵Johannes Schickel
iMuse instrument.
2011-07-14SCUMM: Handle default instrument set up in iMuse like the original.Johannes Schickel
2011-07-14SCUMM: Implement iMuse alloc part command closer to the original.Johannes Schickel
2011-07-11SCUMM: Adapt iMuse code formatting to our standards.Johannes Schickel
2011-07-10SCUMM: Fix some envelope bugs in PC Speaker output.Johannes Schickel
2011-07-10SCUMM: Let PC Speaker output be controlable via music volume.Johannes Schickel
2011-07-10SCUMM: Properly implement volume controler for PC Speaker output.Johannes Schickel
2011-07-10SCUMM: Fix priority settings in iMuse allocate part sysEx command.Johannes Schickel
Formerly we ever only used the lower 4 bit of the priority setting for a new part. The original used a full 8 bit setting though (based on the Indy4 PC Speaker output driver). This fixes missing notes in the Indy4 intro with PC Speaker output. This might affect other outputs too! And could cause regressions in case other outputs implemented priority settings differently.
2011-07-10SCUMM: Fix PC Speaker sound.Johannes Schickel
Now we only output a new frequency if a new channel was selected or a new output frequency has to be send. This makes the sound much more like in DOSBox. This is not present in the original, but since our timings are different this should make up for that.
2011-07-10SCUMM: Minor clean up in iMuse instrument handling code.Johannes Schickel
2011-07-10SCUMM: Limit iMuse default instrument load to PC Speaker output.Johannes Schickel
Albeit the code is marked as a hack inside the source, the original behaved exaclty the same. If the code is removed the PC Speaker output will miss notes, since unlike the original we only output to parts, which have an instrument set up.
2011-07-10SCUMM: Only try to load MT-32 instruments when we have a MIDI output in iMuse.Johannes Schickel
This fixes the melody in Indy4's intro with the PC Speaker output.
2011-07-10SCUMM: Implement effect envelope for PC Speaker output in SCUMM v5.Johannes Schickel
2011-07-08SCUMM: Initial PC Speaker output implementation for SCUMM v5.Johannes Schickel
This is *not* complete yet.
2011-07-03SCUMM: Remove unused operator int.Johannes Schickel
2011-06-20ALL: Remove trailing whitespacesMax Horn
This tries to make our code a bit more compliant with our code formatting conventions. For future use, this is the command I used: git ls-files "*.cpp" "*.h" | xargs sed -i -e 's/[ \t]*$//'
2011-06-15SCUMM: fix possible portability issueathrxx
2011-05-29SCUMM: implement some missing (very low relevance) imuse codeathrxx
1) Don't skip transpose setting in sysex command 0. There are only a few sounds where this setting is used (mainly sfx). 2) Make MI2 and INDY4 read certain player start parameters from the sound resource. The start parameters usually match our default parameters (exception: e.g. LeChuck's Fortress). The use of these parameters has been dropped in DOTT (they use default parameters like we do).
2011-05-17SCUMM: Add missing imuse featureathrxx
This adds an extra detune parameter which is assigned via sysex code 0. Most tracks don't use this (= assign a value of 0), so it isn't really a very noticeable feature.
2011-05-16SCUMM: fix regressionathrxx
2011-05-16SCUMM: formattingathrxx
2011-05-15SCUMM: fix imuse bugs #1315950 and #761637athrxx
- Revert guesswork fix for bug #761637 which caused bug #1315950 - Add missing clear_queue() call to stopAllSounds_internal(). This is taken from INDY4 / MONKEY2 disasm. Someone with a SAMXMAX or DOTT disasm might want to check whether this is correct for these targets, too. - Old FOA savegames saved after the Dr. Ubermann death scene (= during the ending sequence) will still be bugged, since the messed up imuse trigger/command queue gets restored from the savegame.
2011-05-13SCUMM: Turned ResTypeData into a Common::Array<Resource>, subsuming its ↵Max Horn
_resource member
2011-05-13SCUMM: Add a Resource class, refactor res code around itMax Horn
2011-05-13SCUMM: Get rid of the MemBlkHeader hackMax Horn
This uncovered at least one potentially serious bug in the inventory code, which still needs to be investigated and fixed.
2011-05-12GIT: Clean up: Suppress SVN tags, now uselessstrangerke
2011-04-28JANITORIAL: Reduce header dependencies in shared codeOri Avtalion
Some backends may break as I only compiled SDL
2011-04-12COMMON: Replace MKID_BE by MKTAGMax Horn
MKID_BE relied on unspecified behavior of the C++ compiler, and as such was always a bit unsafe. The new MKTAG macro is slightly less elegant, but does no longer depend on the behavior of the compiler. Inspired by FFmpeg, which has an almost identical macro.
2011-03-23AUDIO: Change several fake MidiDrivers to MidiDriver_BASE subclassesMax Horn
Many engines follow the advice in audio/midiparser.h and create a "pseudo-MidiDriver" subclass. But MidiParser really only needs a tiny subset of the MidiDriver capabilities, namely those found in MidiDriver_BASE. So we try to subclass from that whenever possible; this allows us to remove many stub methods, and enables further future simplifications.
2011-03-23SCUMM: Remove unused iMuse MIDI 'passthrough' codeMax Horn
2011-03-22AUDIO: Add pure virtual MidiDriver::isOpen() methodMax Horn
This in turn enables modifying MidiDriver_MPU401::close() to allow it to be called on a midi driver that has not yet been opened. The specific issue that triggered me to make these changes was a crash-upon-quit in HUGO, caused by it instantiating a midi driver, then encountering an error (missing hugo.dat) *before* having opened the new midi driver; the general cleanup code then tries to close the (not yet opened) midi driver -> kaboom Also fixed some engines which were leaking MidiDriver instances.
2011-02-09AUDIO: Rename sound/ dir to audio/Max Horn
svn-id: r55850
2010-12-01SCUMM: Fix GM initialization when "enable_gs" is set.Johannes Schickel
This is a regression from r25630, which caused the code to send some garbage data to the GS device, which resulted in some devices to fail with an "Address Error." (like the Roland SC-55). This might also fix bug #1927501 "GS option is broken". Even though actually the device there failed with another error it is likely to be caused by the same code. At least it is the only iMuse MIDI code change between 0.9.0 and 0.12.0, which might result in such a problem. svn-id: r54727
2010-11-01COMMON: Rename String::printf() to String::format()Max Horn
This is a first step towards getting rid of all uses of regular printf, fprintf, vprintf, vfprintf, puts, fputs, etc. in our codebase. The name format() reflects the purpose of the function, and parallels String.format() in Java, boost::format, and others. svn-id: r54004