could use some cleanup, and there are a couple of TODOs sprinkled throughout
the code, but it seems to work reasonably well. Until the Kyra 3 main menu is
implemented, it won't actually be used though.
It uses the appendable audio stream class, which I have moved out of the SCUMM
engine.
svn-id: r22526
- Renamed base/options.cpp to base/commandLine.cpp because of conflict
with gui/options.cpp which sit in same directory in MSVC builds
- Moved AudioCDManager singleton declaration outside of Audio namespace
- Fixed numerous MSVC warning of potentially uninitialized variables and
int <-> bool conversions.
svn-id: r22397
while still at the very beginning of the "attack" phase. This is the very
lowest point on the attack curve, yet it would continue from the beginning of
the release curve, i.e. its very highest point. This is what caused Kyra to
often play low-frequency notes at the very beginning of a new song. (That, and
a truly bizarre function for initialising the channels.)
The proper fix would be to locate the correct point on the release curve and
continue from there. For now, though, only handle the trivial case.
svn-id: r21302
(Unfortunately, this does not fix the Kyra bug I'm looking for.)
In the most extreme case:
* DR and RR will point to &DR_TABLE[60], and AR will point to &AR_TABLE[60]
* SLOT->KSR will be 0
* CH->kcode will be 15
In that case, it will attempt to access AR[15], RR[15] and DR[15], i.e.
AR_TABLE[75] and DR_TABLE[75]. So these arrays need to be 76 elements, not 75.
We used to initialise element 75, but this was changed to 74 to match the size
of the arrays. Buf if my reasoning is correct, it was the arrays that were too
small.
svn-id: r21301
options to specify it. FluidSynth's gain ranges from 0.0 through 10.0 and
is probably measured in decibel, but to keep things simple, ScummVM uses
settings from 0 through 1000 instead. (Though currently there's no guard
against invalid settings.)
This is a slightly revised version of the non-GUI part of patch #1336171.
svn-id: r20030
* Changed MidiDriver::createMidi so that if MD_ADLIB is passed, it
now *does* instantiate the adlib driver.
* Rewrote MidiDriver::detectMusicDriver (code should be clearer now,
and hopefully easier to adapt/maintain). Note that the behavior
changed slightly (this may require some tweaking).
* Added MidiDriver::findMusicDriver which works similar to the old
MidiDriver::parseMusicDriver but returns the full MidiDriverDescription
and ignores all characters in the passed driver name following a colon ":".
* Changed MidiDriver::parseMusicDriver to use MidiDriver::findMusicDriver.
* Changed game engines to match the changes made to MidiDriver.
* Modified SCUMM engine to not record the selected midi/music driver
(in _midiDriver), but rather the music *type* (in _musicType).
svn-id: r19859