Age | Commit message (Collapse) | Author |
|
|
|
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
|
|
- 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
|
|
svn-id: r49489
|
|
/ company.
Check this for reference:
http://en.wikipedia.org/wiki/Ad_Lib,_Inc.
http://www.crossfire-designs.de/images/articles/soundcards/adlib.jpg (note the upper left of the card)
This commit does not touch "adlib" and "ADLIB" uses!
Also it does not update all the SCUMM detection entries, which still use "Adlib".
svn-id: r47279
|
|
before freeing it, which isn't necessary.
svn-id: r46941
|
|
svn-id: r46143
|
|
minor change.
svn-id: r46081
|
|
svn-id: r44214
|
|
svn-id: r44186
|
|
report #1088045 "MI2: Minor problems in native MT-32 mode").
svn-id: r44185
|
|
report #1088045 "MI2: Minor problems in native MT-32 mode").
svn-id: r44184
|
|
the base class does not have that virtual function anymore. Code moved to the destructor.
svn-id: r43714
|
|
overflow along with it.
svn-id: r43445
|
|
look at debug() and debugC(), since I'm really bored with this now. :-)
svn-id: r41061
|
|
said the timer changes fixed it. This time, I've made the workaround a bit
simpler to understand, though.
svn-id: r30429
|
|
svn-id: r30419
|
|
been updated.
svn-id: r28966
|
|
svn-id: r27830
|
|
formerly knowns as Gaim) does; added new (incomplete) COPYRIGHT file; updated copyright dates in a few spots
svn-id: r27024
|
|
header files are only included once. Many of them didn't have a SCUMM prefix
which could have lead to clashes with common header files.
svn-id: r25727
|
|
'len' is now one less than it used to in sysexHandler_Scumm(). Let's hope I
changed all the cases that needed changing, and nothing else...
svn-id: r25671
|
|
particular, we now always do so w/o framing the message (documented this with a Doxygen comment in the MidiDriver class)
svn-id: r25630
|
|
were explicitly markes as such. Doing that now (might break old savegames on some ports :/)
svn-id: r25629
|
|
Rapp is instantiating isn't synchronized"). I don't know if our timing is off,
or if it's just a case of overly optimistic scripting, but the pause / unpause
music instructions are issued in the wrong order.
svn-id: r24726
|
|
svn-id: r24682
|