Age | Commit message (Collapse) | Author |
|
|
|
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.
|
|
"PC" was very ambiguous and now it matches what we show in the GUI.
This also corrects sword2's platform to Windows.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
Powered by:
git ls-files "*.cpp" "*.h" "*.m" "*.mm" | xargs sed -i -e 's/[ \t]*$//'
|
|
|
|
Shouldn't be used with MI1
|
|
|
|
The original does not do this either.
|
|
|
|
This fixes sound corruption when using the new VOC streaming code. It also
reduces the runtime memory needed for compressed sound files slightly, since
it does not preload them into memory anymore. This comes at the expense of one
file descriptor needed per sfx being played though.
Thanks to Kirben for his review and feedback.
|
|
|
|
|
|
|
|
|
|
(pcm sound effects broken in 69adb13c2f3cadd4dac2bba8164aa0b8a9400abc)
|
|
Indy4 Amiga features only ROL tracks, thus with
69adb13c2f3cadd4dac2bba8164aa0b8a9400abc the MIDI -> AdLib conversion was
broken. Fixed that now by allowing ROL tracks to be played on AdLib output for
Amiga games.
This probably also affected Monkey Island 2 Amiga, but I don't have it to test.
|
|
A regression from 69adb13c2f3cadd4dac2bba8164aa0b8a9400abc
|
|
CMS support is only available in games using readSoundResourceSmallHeader.
|
|
|
|
|
|
|
|
It's much better now and hopefully quite close to the original when it comes
to the music part. The intro music of Loom and Monkey Island 1 EGA sounds fine
to me now at least.
|
|
|
|
We handle command 0x80 incorrectly, which results in sound effects never
looping. This is the cause for bug #2027877 for example. I add this FIXME
since it is (probably) non-trivial to fix and so it won't be forgotten.
|
|
Formerly we tried to play back a ROL resource on AdLib in this case, since the
game does not contain a ADL resource for the sound the game tries to play here.
The original does not exhibit this behavior, thus I changed it to behave the
same now.
Big thanks to eriktorbjorn for noticing and finding the cause of this problem.
Also thanks to Kirben for checking how the original behaved and _athrxx for
checking the FM-Towns version of Indy4.
|
|
|
|
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]*$//'
|
|
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.
|
|
_resource member
|
|
both
|
|
|
|
Previously, we had a couple of arrays of size N (where N = number of
resource types), one for each attribute of a resource type (such as as
the number of resources of that type.
Now, we have one array of size N, whose elements are a record
aggregating all the attributes of each resource type.
|
|
|
|
|
|
|
|
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.
|
|
|
|
svn-id: r55850
|
|
svn-id: r54385
|
|
svn-id: r54148
|
|
This includes an rather hacky attempt to merge all the recent gp2x backend
changes into the branch. I suppose the gp2x backend and probably all new
backends, i.e. gph, dingux etc., might not compile anymore.
Since I have no way of testing those it would be nice if porters could look
into getting those up to speed in this branch.
svn-id: r53399
|
|
svn-id: r53052
|
|
svn-id: r52796
|
|
svn-id: r52287
|
|
- Start rewriting audio code for FM-TOWNS versions of Loom, Indy3 and Monkey Island 1 using the recently added code in towns_audio.cpp (Zak should work the same way, but I can't test, since I don't own that one).
- All sound types (pcm, euphony and cd audio) now support volume and balance control (e.g. try walking into/out of the kitchen and opening/closing the door in the Scumm Bar in Monkey Island 1 or walking into/out of the circus tent).
- Pcm sounds now support proper loop start/end and note offsets (e.g. try out the hammer sound in the forge in LOOM for example).
- some other minor improvements
- The FM-Towns versions of Indy 4 and Monkey Island 2 are not affected. I don't have Monkey Island 2, but I presume that it will work like Indy 4. Adding support for these will be a separate task, since they work quite differently.
svn-id: r52198
|