Ticket #8423: gsfix2.patch

File gsfix2.patch, 1.7 KB (added by SF/tbcarey, 16 years ago)
  • scumm/scumm.cpp

    RCS file: /cvsroot/scummvm/scummvm/scumm/scumm.cpp,v
    retrieving revision 1.445
    diff -u -r1.445 scumm.cpp
     
    16921692void ScummEngine::setupMusic(int midi) {
    16931693        _midiDriver = MidiDriver::detectMusicDriver(midi);
    16941694        _native_mt32 = (ConfMan.getBool("native_mt32") || (_midiDriver == MD_MT32));
    1695         // FIXME: MD_TOWNS should not be _midi_native in the first place!! iMuse code needs to be restructured.
    1696         if ((_gameId == GID_TENTACLE) || (_gameId == GID_SAMNMAX) || (_midiDriver == MD_TOWNS))
     1695        // DOTT + SAM are GM natively, so they shouldn't use GS settings
     1696        if ((_gameId == GID_TENTACLE) || (_gameId == GID_SAMNMAX))
    16971697                _enable_gs = false;
    16981698        else
    16991699                _enable_gs = ConfMan.getBool("enable_gs");
     
    17441744                if (_imuse) {
    17451745                        if (ConfMan.hasKey("tempo"))
    17461746                                _imuse->property(IMuse::PROP_TEMPO_BASE, ConfMan.getInt("tempo"));
    1747                         _imuse->property(IMuse::PROP_NATIVE_MT32, _native_mt32);
    1748                         _imuse->property(IMuse::PROP_GS, _enable_gs);
     1747                        // YM2162 driver can't handle midi->getPercussionChannel(), NULL shouldn't init MT-32/GM/GS
     1748                        if ((midi != MDT_TOWNS) && (midi != MDT_NONE)) {
     1749                                _imuse->property(IMuse::PROP_NATIVE_MT32, _native_mt32);
     1750                                if (_midiDriver != MD_MT32) // MT-32 Emulation shouldn't be GM/GS initialized
     1751                                        _imuse->property(IMuse::PROP_GS, _enable_gs);
     1752                        }
    17491753                        if (_heversion == 60 || midi == MDT_TOWNS) {
    17501754                                _imuse->property(IMuse::PROP_LIMIT_PLAYERS, 1);
    17511755                                _imuse->property(IMuse::PROP_RECYCLE_PLAYERS, 1);