MI1/INDY3: MidiDriver chan. setup broken
|Reported by:||SF/mnepomuk||Owned by:||SF/jamieson630|
|Cc:||Game:||Monkey Island 1|
Since the move of MidiDriver_ADLIB to backends the music in monkeyvga and indy3 (-> all GF_SMALL_HEADER games) is broken. (Yes, it's anyway not right finished yet (looping), but it sounds 2 weeks ago a lot better !)
Problem is in adlib.cpp: MidiDriver::adlib_setup_channel(): In case of the older games it must be always: adlib_write(port + 0x40, instr->oplvl_1); The yet (always) active adlib_write(port + 0x40, (instr->oplvl_1 | 0x3F) - vol_1 ); is just wrong. And as you see, it has nothing to do with vol_1 or with instr->oplvl_1, it's the ORing with 0x3F. So it's nothing, I can work around with a better instruments setup at resource loading time ;-)
Solution may be: - extra MidiDriver for GF_SMALL_HEADER - games features-flag in MidiDriver
Any suggestions ?
Ticket imported from: #646222. Ticket imported from: bugs/606.