Age | Commit message (Collapse) | Author |
|
|
|
SCUMM: Add support for Macintosh music in Monkey Island 1 and Loom
|
|
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.
|
|
|
|
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".
|
|
|
|
Shouldn't be used with MI1
|
|
|
|
This also increases the savegame version, since it introduces a new
Instrument subclass.
|
|
This is a initial RE of the audio output Monkey Island 2 Mac uses. Support
for special sound effects is not in there yet.
|
|
|
|
This reverts commit 747ebffd17eb64423fd8fb321f9d803ec31105f4,
and adds a FIXME.
|
|
|
|
|
|
|
|
iMuse instrument.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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.
|
|
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.
|
|
|
|
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.
|
|
This fixes the melody in Indy4's intro with the PC Speaker output.
|
|
|
|
This is *not* complete yet.
|
|
|
|
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]*$//'
|
|
|
|
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).
|
|
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.
|
|
|
|
|
|
- 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.
|
|
_resource member
|
|
|
|
This uncovered at least one potentially serious bug in the inventory
code, which still needs to be investigated and fixed.
|
|
|
|
Some backends may break as I only compiled SDL
|
|
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.
|
|
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.
|
|
|
|
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.
|
|
svn-id: r55850
|
|
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
|
|
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
|
|
svn-id: r52792
|