Author: sagamusix
Date: Sun Apr 21 20:15:42 2024
New Revision: 20639
URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20639
Log:
[Imp] IT: Disable a few more compatibility flags for older SchismTracker builds (https://bugs.openmpt.org/view.php?id=1764). Only a few flags from the proposed patch have been carried over as the implementation for some of those effects was too different between Schism Tracker and OpenMPT, potentially causing OpenMPT's old bugs to be applied to SchismTracker where they were not necessarily "correct".
Modified:
trunk/OpenMPT/soundlib/Load_it.cpp
Modified: trunk/OpenMPT/soundlib/Load_it.cpp
==============================================================================
--- trunk/OpenMPT/soundlib/Load_it.cpp Sun Apr 21 16:10:13 2024 (r20638)
+++ trunk/OpenMPT/soundlib/Load_it.cpp Sun Apr 21 20:15:42 2024 (r20639)
@@ -1212,7 +1212,7 @@
m_nSamplePreAmp /= 2;
} else if(fileHeader.cwtv == 0x0214 && fileHeader.cmwt == 0x0214 && fileHeader.special <= 1 && fileHeader.pwd == 0 && fileHeader.reserved == 0
&& (fileHeader.flags & (ITFileHeader::vol0Optimisations | ITFileHeader::instrumentMode | ITFileHeader::useMIDIPitchController | ITFileHeader::reqEmbeddedMIDIConfig | ITFileHeader::extendedFilterRange)) == ITFileHeader::instrumentMode
- && m_nSamples > 0 && (Samples[1].filename == "XXXXXXXX.YYY"))
+ && m_nSamples > 1 && (Samples[1].filename == "XXXXXXXX.YYY"))
{
madeWithTracker = U_("CheeseTracker");
} else if(fileHeader.cwtv == 0 && madeWithTracker.empty())
@@ -1277,11 +1277,13 @@
// Initial note memory for channel is C-0: Added 2023-03-09, https://github.com/schismtracker/schismtracker/commit/73e9d60676c2b48c8e94e582373e29517105b2b1
if(schismDateVersion < SchismVersionFromDate<2023, 03, 9>::date)
m_playBehaviour.reset(kITInitialNoteMemory);
- // 2023-10-16: kITEnvelopePositionHandling https://github.com/schismtracker/schismtracker/commit/bc81f605d927ca931a886417641da29fc89283b8
+ // DCT note comparison: Added 2023-10-17, https://github.com/schismtracker/schismtracker/commit/31d36dc00013fc5ab0efa20c782af18e8b006e07
+ if(schismDateVersion < SchismVersionFromDate<2023, 10, 17>::date)
+ m_playBehaviour.reset(kITDCTBehaviour);
if(schismDateVersion < SchismVersionFromDate<2023, 10, 19>::date)
{
// Panbrello sample & hold random waveform: Added 2023-10-19, https://github.com/schismtracker/schismtracker/commit/411ec16b190ba1a486d8b0907ad8d74f8fdc2840
- m_playBehaviour.reset(kITPanbrelloHold);
+ m_playBehaviour.reset(kITSampleAndHoldPanbrello);
// Don't apply any portamento if no previous note is playing: Added 2023-10-19, https://github.com/schismtracker/schismtracker/commit/8ff0a86a715efb50c89770fb9095d4c4089ff187
m_playBehaviour.reset(kITPortaNoNote);
}
@@ -1289,9 +1291,12 @@
{
// Note delay delays first-tick behaviour for slides: Added 2023-10-22, https://github.com/schismtracker/schismtracker/commit/b9609e4f827e1b6ce9ebe6573b85e69388ca0ea0
m_playBehaviour.reset(kITFirstTickHandling);
- // Added 2023-10-22, https://github.com/schismtracker/schismtracker/commit/a9e5df533ab52c35190fcc1cbfed4f0347b660bb
+ // https://github.com/schismtracker/schismtracker/commit/a9e5df533ab52c35190fcc1cbfed4f0347b660bb
m_playBehaviour.reset(kITMultiSampleInstrumentNumber);
}
+ // Panbrello hold: Added 2024-03-09, https://github.com/schismtracker/schismtracker/commit/ebdebaa8c8a735a7bf49df55debded1b7aac3605
+ if(schismDateVersion < SchismVersionFromDate<2024, 03, 9>::date)
+ m_playBehaviour.reset(kITPanbrelloHold);
break;
case 4:
madeWithTracker = MPT_UFORMAT("pyIT {}.{}")((fileHeader.cwtv & 0x0F00) >> 8, mpt::ufmt::hex0<2>(fileHeader.cwtv & 0xFF));
|