Ticket #9285: 0001-SCI-prefer-MT32-in-some-older-SCI-games.patch

File 0001-SCI-prefer-MT32-in-some-older-SCI-games.patch, 3.9 KB (added by tsoliman, 15 years ago)

patch against 560eb302f16f2eb

  • engines/sci/console.cpp

    From 91aca8fa08a86615b8253e4459fab968db35be05 Mon Sep 17 00:00:00 2001
    From: Tarek Soliman <tarek@bashasoliman.com>
    Date: Mon, 28 Feb 2011 22:39:43 -0600
    Subject: [PATCH] SCI: prefer MT32 in some older SCI games
    
    ---
     engines/sci/console.cpp                |    2 +-
     engines/sci/sound/drivers/midi.cpp     |   10 +++++-----
     engines/sci/sound/drivers/mididriver.h |    2 +-
     engines/sci/sound/music.cpp            |    5 ++++-
     4 files changed, 11 insertions(+), 8 deletions(-)
    
    diff --git a/engines/sci/console.cpp b/engines/sci/console.cpp
    index f3c3657..ef2acb3 100644
    a b bool Console::cmdShowInstruments(int argc, const char **argv) {  
    898898                songNumber = atoi(argv[1]);
    899899
    900900        SciVersion doSoundVersion = _engine->_features->detectDoSoundType();
    901         MidiPlayer *player = MidiPlayer_Midi_create(doSoundVersion);
     901        MidiPlayer *player = MidiPlayer_Midi_create(doSoundVersion, 0);
    902902        MidiParser_SCI *parser = new MidiParser_SCI(doSoundVersion, 0);
    903903        parser->setMidiDriver(player);
    904904       
  • engines/sci/sound/drivers/midi.cpp

    diff --git a/engines/sci/sound/drivers/midi.cpp b/engines/sci/sound/drivers/midi.cpp
    index 65ccaec..bf87fd8 100644
    a b public:  
    5050                kMaxSysExSize = 264
    5151        };
    5252
    53         MidiPlayer_Midi(SciVersion version);
     53        MidiPlayer_Midi(SciVersion version, int flags);
    5454        virtual ~MidiPlayer_Midi();
    5555
    5656        int open(ResourceManager *resMan);
    private:  
    130130        byte _sysExBuf[kMaxSysExSize];
    131131};
    132132
    133 MidiPlayer_Midi::MidiPlayer_Midi(SciVersion version) : MidiPlayer(version), _playSwitch(true), _masterVolume(15), _isMt32(false), _hasReverb(false), _useMT32Track(true) {
    134         MidiDriver::DeviceHandle dev = MidiDriver::detectDevice(MDT_MIDI);
     133MidiPlayer_Midi::MidiPlayer_Midi(SciVersion version, int flags) : MidiPlayer(version), _playSwitch(true), _masterVolume(15), _isMt32(false), _hasReverb(false), _useMT32Track(true) {
     134        MidiDriver::DeviceHandle dev = MidiDriver::detectDevice(MDT_MIDI | flags);
    135135        _driver = createMidi(dev);
    136136
    137137        if (MidiDriver::getMusicType(dev) == MT_MT32 || ConfMan.getBool("native_mt32"))
    byte MidiPlayer_Midi::getPlayId() const {  
    10421042        }
    10431043}
    10441044
    1045 MidiPlayer *MidiPlayer_Midi_create(SciVersion version) {
    1046         return new MidiPlayer_Midi(version);
     1045MidiPlayer *MidiPlayer_Midi_create(SciVersion version, int flags) {
     1046        return new MidiPlayer_Midi(version, flags);
    10471047}
    10481048
    10491049} // End of namespace Sci
  • engines/sci/sound/drivers/mididriver.h

    diff --git a/engines/sci/sound/drivers/mididriver.h b/engines/sci/sound/drivers/mididriver.h
    index f745d62..8a5f927 100644
    a b extern MidiPlayer *MidiPlayer_AmigaMac_create(SciVersion version);  
    133133extern MidiPlayer *MidiPlayer_PCJr_create(SciVersion version);
    134134extern MidiPlayer *MidiPlayer_PCSpeaker_create(SciVersion version);
    135135extern MidiPlayer *MidiPlayer_CMS_create(SciVersion version);
    136 extern MidiPlayer *MidiPlayer_Midi_create(SciVersion version);
     136extern MidiPlayer *MidiPlayer_Midi_create(SciVersion version, int flags);
    137137extern MidiPlayer *MidiPlayer_Fb01_create(SciVersion version);
    138138
    139139} // End of namespace Sci
  • engines/sci/sound/music.cpp

    diff --git a/engines/sci/sound/music.cpp b/engines/sci/sound/music.cpp
    index 2331f2f..b291880 100644
    a b void SciMusic::init() {  
    7373
    7474        if (getSciVersion() >= SCI_VERSION_2_1)
    7575                deviceFlags |= MDT_PREFER_GM;
     76        else
     77                deviceFlags |= MDT_PREFER_MT32;
     78
    7679
    7780        // Currently our CMS implementation only supports SCI1(.1)
    7881        if (getSciVersion() >= SCI_VERSION_1_EGA_ONLY && getSciVersion() <= SCI_VERSION_1_1)
    void SciMusic::init() {  
    102105                if (ConfMan.getBool("native_fb01"))
    103106                        _pMidiDrv = MidiPlayer_Fb01_create(_soundVersion);
    104107                else
    105                         _pMidiDrv = MidiPlayer_Midi_create(_soundVersion);
     108                        _pMidiDrv = MidiPlayer_Midi_create(_soundVersion, deviceFlags);
    106109        }
    107110
    108111        if (_pMidiDrv && !_pMidiDrv->open()) {