aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/sound/drivers/midi.cpp
AgeCommit message (Collapse)Author
2019-04-02SCI: - update MT32/GM driver initTrack methodathrxx
This adds specific support for SCI0_EARLY targets. Based on and tested with Christmas Cards 1988. I've not added the volume reset (neither for SCI0_EARLY nor SCI0_LATE), since the ScummVM driver seems to handle volume differently on purpose (probably based on SCI1?).
2019-04-02SCI: implement SCI0 midi driver track initializationathrxx
I put this in an separate commit to make it easier to review/revert. I've tried to make this as minimum invasive as possible. That's why I put this in place of the former call to onNewSound(). SCI_0_LATE sound drivers (probably also SCI_0_EARLY, but I don't know that) do some midi track initialization, mostly resetting certain values and assigning voices (hardware channels) to midi parts. The information for this comes from the track header. The SCI0 version of the PC-98 sound driver relies on this code. The driver checks the channel flags with two different masks and assigns different sound channel types accordingly. This can't be done with the 0x4B event. Using the 0x4B event is sort of counter intuitive anyway, since only some of the SCI0 drivers even support that event. It seems that the only driver making use of onNewSound() was MT-32. I've adapted the driver to my changes, although I am quite sure that the sound will be unaffected. The only thing that the MT-32 driver does with the header information is checking whether a midi part should play or not and assign exactly one timbre (with exactly the same number) to that part if required.
2018-03-28SCI: Added overried specifiersEugene Sandulenko
2017-10-04SCI: Set default MT-32 reverb before each soundRuud Klaver
Set the default reverb configuration present in either the MT-32 patch data or MT32.DRV of SCI0 games before playing each sound, as a previously played sound may have changed it. Also, do not perform a general reverb init, since the start of a sound will do that now. Closes gh-1023.
2017-09-12SCI: Omit SysEx delays when sending to MT-32 emulatorColin Snover
Real MIDI devices, and MT-32 in particular, need delays between SysEx messages to ensure sufficient time to receive and process the incoming data buffer. Sending too much data too quickly to these devices can cause them to crash with a buffer overflow. The MT-32 emulator, on the other hand, has no problem receiving SysEx data instantly, so skipping the delays means that games that send lots of data to the MT-32 will start up much faster.
2017-07-07SCI32: Fix missing music in MGDXColin Snover
GM patch data is the same across all SCI32 games.
2017-03-30SCI: Update formatting strings to match updated Span APIColin Snover
2017-03-27SCI: Implement bounds-checked reads of game resourcesColin Snover
2017-02-26SCI: Clean up unnecessary castsWillem Jan Palenstijn
2016-12-03SCI: Fix non-responsive application warning during sysex transfersColin Snover
This also fixes the display of the startup LCD message, which had been delayed until after the sysex transfer was finished.
2016-04-14JANITORIAL: Reduce audio header dependenciesOri Avtalion
2015-12-29SCI32: split up SCI2.1 into EARLY/MIDDLE/LATEMartin Kiewitz
- Detection works via signatures (couldn't find a better way) - new kString subcalls were introduced SCI2.1 LATE - kString now has signatures and is split via subcall table - kString fix, so that KQ7 doesn't crash, when starting a chapter - Sci2StringFunctionType removed, because no longer needed
2014-10-13SCI: Fix bug #6725 - "SCI: LSL5 Mac doesn't launch with MT-32 music"Filippos Karapetis
Thanks to waltervn for his help
2014-10-13SCI: Add comments for the MT-32/GM patch contentsFilippos Karapetis
2014-08-22MISC: Fix typo s/Adlib/AdLib/ (only where visible to the user)Ben Castricum
2014-07-24SCI: Small formatting fix.Johannes Schickel
2014-02-18SCI: Make GPL headers consistent in themselves.Johannes Schickel
2013-04-17SCI: Fix confusing use of strncpyWillem Jan Palenstijn
2013-03-27SCI: Remove some useless checks in the MIDI driverFilippos Karapetis
2012-04-05SCI: Do not cast away const qualifier.Johannes Schickel
2011-05-13SCI: Don't include several debug tables when REDUCE_MEMORY_USAGE is definedmd5
2011-05-12GIT: Clean up: Suppress SVN tags, now uselessstrangerke
2011-04-27SCI: Removed unused variablesmd5
Thanks to LordHoto and the trusty -Wunused-but-set-variable option :)
2011-04-13SCI: Added handling for another version of mt32.drv (bug #3285556)md5
This is used in another version of KQ4 early (0.000.274)
2011-04-02SCI: Replace not required emumidi headerdhewg
2011-03-27SCI: Fix default pan value in MIDI driver.Walter van Niftrik
2011-03-23AUDIO: Change several fake MidiDrivers to MidiDriver_BASE subclassesMax Horn
Many engines follow the advice in audio/midiparser.h and create a "pseudo-MidiDriver" subclass. But MidiParser really only needs a tiny subset of the MidiDriver capabilities, namely those found in MidiDriver_BASE. So we try to subclass from that whenever possible; this allows us to remove many stub methods, and enables further future simplifications.
2011-03-03SCI: Don't ignore SysEx messages at the driver level but warn insteadmd5
SysEx messages in the driver are usually the result of a bug which should be investigated and not silently ignored
2011-03-03SCI: Slight cleanup of some sound driversmd5
2011-02-27SCI: Renamed SCI_VERSION_1_EGA to SCI_VERSION_1_EGA_ONLYmd5
This renaming allows us to better distinguish that this version is for games that only had an EGA version, and avoid confusion with newer SCI1 game releases with EGA graphics (e.g. KQ5 EGA). The only game with this SCI version is QFG2, a SCI1 EGA game with a parser. Also, added some games for each SCI version.
2011-02-26SCI: Some slight fixes for the code that reads the LSL2 early MT32.DLL ↵md5
driver, thanks to waltervn
2011-02-26SCI: Added support for reading data off the MT32.DRV driver found in LSL2 ↵md5
early (bug #3192627)
2011-02-10SCI: Added comments to the FB-01 and MIDI drivers. The original driver files ↵Filippos Karapetis
are only needed in SCI0 early games, which didn't include separate sound patch resources. Thanks to waltervn for the information he supplied svn-id: r55875
2011-02-09AUDIO: Rename sound/ dir to audio/Max Horn
svn-id: r55850
2011-02-07ALL: Fix whitespaces / indentionMax Horn
svn-id: r55818
2010-11-26SCI: Only filter channels for early SCI0, as GM currently uses all channels.Walter van Niftrik
svn-id: r54498
2010-11-26SCI: Send the SCI0 reverb init after reading the reverb dataFilippos Karapetis
svn-id: r54492
2010-11-25SCI: Some reverb-related changes in the MIDI driver, based on a patch by ↵Filippos Karapetis
waltervn svn-id: r54484
2010-11-25SCI: Initialize reverb in the music driver correctly. Based on a patch by ↵Filippos Karapetis
waltervn svn-id: r54483
2010-11-25SCI: Added support for the alternate Windows MIDI soundtracks of the CD ↵Filippos Karapetis
versions of EcoQuest, Jones, KQ5 and SQ4 svn-id: r54476
2010-11-25SCI: Fix bug in MT-32 checksum computation. Thanks Sven for finding this.Walter van Niftrik
svn-id: r54471
2010-11-25SCI: Set _useMT32Track correctly for KQ5 Windows, thus simplifying the codeFilippos Karapetis
svn-id: r54465
2010-11-25SCI: Added support for the alternative GM tracks of the Windows version of ↵Filippos Karapetis
KQ5CD (bug #3041239) Note that the empty GM track for the Sierra logo makes the game hang, so the MT-32 track is used, which sounds awful svn-id: r54464
2010-11-24SCI: Moved handling of special reverb value 127 outside of the MIDI driverFilippos Karapetis
svn-id: r54459
2010-11-24SCI: some changes to the way reverb is handledFilippos Karapetis
- "Invalid" SCI reverb values (127) are properly handled now - SCI kDoSound(reverb) sets the global reverb (renamed it accordingly) - kDoSound(reverb) can also return the current reverb if no parameter is sent svn-id: r54457
2010-11-24SCI: Added a TODO for the default reverb valueFilippos Karapetis
svn-id: r54454
2010-11-24SCI: Read MT-32 reverb data correctly (patch #3117434)Filippos Karapetis
svn-id: r54453
2010-11-23SCI: Ignore polyphonic/channel aftertouch (0xa0 / 0xd0) in the MIDI driver, ↵Filippos Karapetis
like in the Adlib driver. SSCI doesn't handle these, so we shouldn't handle them either svn-id: r54428
2010-11-19COMMON: Split common/stream.h into several headersMax Horn
svn-id: r54385
2010-11-10SCI3: Some changesFilippos Karapetis
- Placed the SCI3 version detection in the proper place - Some new types of SCI3 MT-32 patches (e.g. in the Lighthouse SCI3 demo) are ignored, for now svn-id: r54188