aboutsummaryrefslogtreecommitdiff
path: root/scumm
diff options
context:
space:
mode:
authorTorbjörn Andersson2004-12-03 13:17:57 +0000
committerTorbjörn Andersson2004-12-03 13:17:57 +0000
commit75645cbd40fd65377caf473b9f1e5eab81d8b462 (patch)
treeaf91ce54a277316e5742d09955766cb54c9d150c /scumm
parentf03ae8addbfd9ad1236be3210c869c416d32fca4 (diff)
downloadscummvm-rg350-75645cbd40fd65377caf473b9f1e5eab81d8b462.tar.gz
scummvm-rg350-75645cbd40fd65377caf473b9f1e5eab81d8b462.tar.bz2
scummvm-rg350-75645cbd40fd65377caf473b9f1e5eab81d8b462.zip
Fixed an Adlib regression with older games (e.g. EGA Loom, Indy 3 and
Monkey VGA) that was introduced by a recent "multi MIDI" change. The "old Adlib" property was set too late in the iMUSE player, so the Adlib driver would always think the game was new. I've removed this property from the iMUSE player, since it's only function appeared to be to pass it on to the Adlib player, and now set it in the Adlib player directly instead. Also removed some remaining "multi MIDI" traces from the iMUSE player that I believe were obsoleted by the aforementioned "multi MIDI" change. svn-id: r15974
Diffstat (limited to 'scumm')
-rw-r--r--scumm/imuse.cpp8
-rw-r--r--scumm/imuse.h1
-rw-r--r--scumm/imuse_internal.h2
-rw-r--r--scumm/scumm.cpp6
4 files changed, 3 insertions, 14 deletions
diff --git a/scumm/imuse.cpp b/scumm/imuse.cpp
index bdbb8c40d2..9f32eb67b9 100644
--- a/scumm/imuse.cpp
+++ b/scumm/imuse.cpp
@@ -44,8 +44,6 @@ namespace Scumm {
////////////////////////////////////////
IMuseInternal::IMuseInternal() :
-_old_adlib_instruments(false),
-_enable_multi_midi(false),
_native_mt32(false),
_midi_adlib(0),
_midi_native(0),
@@ -1077,10 +1075,6 @@ uint32 IMuseInternal::property(int prop, uint32 value) {
initMT32(_midi_native);
break;
- case IMuse::PROP_OLD_ADLIB_INSTRUMENTS:
- _old_adlib_instruments = (value > 0);
- break;
-
case IMuse::PROP_LIMIT_PLAYERS:
if (value > 0 && value <= ARRAYSIZE(_players))
_player_limit = (int) value;
@@ -1135,8 +1129,6 @@ int IMuseInternal::initialize(OSystem *syst, MidiDriver *native_midi, MidiDriver
void IMuseInternal::initMidiDriver(MidiDriver *midi) {
// Open MIDI driver
- midi->property(MidiDriver::PROP_OLD_ADLIB, _old_adlib_instruments ? 1 : 0);
-
int result = midi->open();
if (result)
error("IMuse initialization - %s", MidiDriver::getErrorName(result));
diff --git a/scumm/imuse.h b/scumm/imuse.h
index e66aa472f7..d9e872bc68 100644
--- a/scumm/imuse.h
+++ b/scumm/imuse.h
@@ -52,7 +52,6 @@ public:
enum {
PROP_TEMPO_BASE,
PROP_NATIVE_MT32,
- PROP_OLD_ADLIB_INSTRUMENTS,
PROP_LIMIT_PLAYERS,
PROP_RECYCLE_PLAYERS,
PROP_DIRECT_PASSTHROUGH
diff --git a/scumm/imuse_internal.h b/scumm/imuse_internal.h
index 7729d64766..ff34fe98f4 100644
--- a/scumm/imuse_internal.h
+++ b/scumm/imuse_internal.h
@@ -346,8 +346,6 @@ class IMuseInternal {
friend class Player;
protected:
- bool _old_adlib_instruments;
- bool _enable_multi_midi;
bool _native_mt32;
MidiDriver *_midi_adlib;
MidiDriver *_midi_native;
diff --git a/scumm/scumm.cpp b/scumm/scumm.cpp
index 6fa95441c7..365e3d4e56 100644
--- a/scumm/scumm.cpp
+++ b/scumm/scumm.cpp
@@ -1343,16 +1343,16 @@ void ScummEngine::setupMusic(int midi) {
nativeMidiDriver->property (MidiDriver::PROP_CHANNEL_MASK, 0x03FE);
bool multi_midi = ConfMan.getBool("multi_midi") && _midiDriver != MD_NULL && (midi & MDT_ADLIB);
MidiDriver *adlibMidiDriver;
- if (nativeMidiDriver == NULL || multi_midi)
+ if (nativeMidiDriver == NULL || multi_midi) {
adlibMidiDriver = MidiDriver_ADLIB_create(_mixer);
- else
+ adlibMidiDriver->property(MidiDriver::PROP_OLD_ADLIB, (_features & GF_SMALL_HEADER) ? 1 : 0);
+ } else
adlibMidiDriver = NULL;
_musicEngine = _imuse = IMuse::create(_system, nativeMidiDriver, adlibMidiDriver);
if (_imuse) {
if (ConfMan.hasKey("tempo"))
_imuse->property(IMuse::PROP_TEMPO_BASE, ConfMan.getInt("tempo"));
- _imuse->property(IMuse::PROP_OLD_ADLIB_INSTRUMENTS, (_features & GF_SMALL_HEADER) ? 1 : 0);
_imuse->property(IMuse::PROP_NATIVE_MT32, _native_mt32);
if (_features & GF_HUMONGOUS || midi == MDT_TOWNS) {
_imuse->property(IMuse::PROP_LIMIT_PLAYERS, 1);