#606 closed defect (fixed)
MI1/INDY3: MidiDriver chan. setup broken
Reported by: | SF/mnepomuk | Owned by: | SF/jamieson630 |
---|---|---|---|
Priority: | normal | Component: | Engine: SCUMM |
Version: | Keywords: | ||
Cc: | Game: | Monkey Island 1 |
Description
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.
Change History (4)
comment:1 by , 22 years ago
Owner: | set to |
---|
comment:2 by , 22 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
Fixed. Closed. Tested to the extent we could before lockdown of the CVS tree. Mikesch, if the instrumentation does not appear to have reverted back to "correct" sound, you'll need to open another bug report on or after 2002-12-02. Thanks.