aboutsummaryrefslogtreecommitdiff
path: root/audio/miles_adlib.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'audio/miles_adlib.cpp')
-rw-r--r--audio/miles_adlib.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/audio/miles_adlib.cpp b/audio/miles_adlib.cpp
index 8d6b1d6177..6697122492 100644
--- a/audio/miles_adlib.cpp
+++ b/audio/miles_adlib.cpp
@@ -349,6 +349,13 @@ void MidiDriver_Miles_AdLib::resetData() {
// Miles Audio 2: hardcoded pitch range as a global (not channel specific), set to 12
// Miles Audio 3: pitch range per MIDI channel
_midiChannels[midiChannel].currentVolumeExpression = 127;
+
+ // TODO: Miles Audio had currentPanning initialized to 0 inside the driver
+ // Simon the sorcerer 2 as well as Return To Zork don't change this control at all
+ // inside their XMIDI files, so currentPanning set to 0 will create output output on
+ // one speaker only. Maybe there were some default MIDI commands sent to the driver before
+ // playing the music. Needs to get investigated further.
+ _midiChannels[midiChannel].currentPanning = 63; // center
}
}
@@ -892,6 +899,7 @@ void MidiDriver_Miles_AdLib::controlChange(byte midiChannel, byte controllerNumb
switch (controllerNumber) {
case MILES_CONTROLLER_SELECT_PATCH_BANK:
+ //warning("patch bank channel %d, bank %x", midiChannel, controllerValue);
_midiChannels[midiChannel].currentPatchBank = controllerValue;
break;
@@ -981,6 +989,8 @@ void MidiDriver_Miles_AdLib::programChange(byte midiChannel, byte patchId) {
const InstrumentEntry *instrumentPtr = NULL;
byte patchBank = _midiChannels[midiChannel].currentPatchBank;
+ //warning("patch channel %d, patch %x, bank %x", midiChannel, patchId, patchBank);
+
// we check, if we actually have data for the requested instrument...
instrumentPtr = searchInstrument(patchBank, patchId);
if (!instrumentPtr) {