From: <sv...@op...> - 2024-05-30 21:30:39
|
Author: sagamusix Date: Thu May 30 23:30:33 2024 New Revision: 20871 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20871 Log: [Imp] S3M: For S3Ms made with Impulse Tracker, use sample swapping behaviour that is closer to Impulse Tracker itself. Fixes alien.s3m by Davers. Modified: trunk/OpenMPT/soundlib/Load_s3m.cpp Modified: trunk/OpenMPT/soundlib/Load_s3m.cpp ============================================================================== --- trunk/OpenMPT/soundlib/Load_s3m.cpp Thu May 30 23:16:31 2024 (r20870) +++ trunk/OpenMPT/soundlib/Load_s3m.cpp Thu May 30 23:30:33 2024 (r20871) @@ -312,6 +312,9 @@ m_playBehaviour.set(kITRetrigger); m_playBehaviour.set(kITShortSampleRetrig); m_playBehaviour.set(kST3SampleSwap); // Not exactly like ST3, but close enough + // alien.s3m by Davers (pattern 13) needs these to play the Gxx with sample switch as intended + m_playBehaviour.set(kITPortaNoNote); + m_playBehaviour.set(kITPortamentoSwapResetsPos); m_nMinPeriod = 1; break; case S3MFileHeader::trkSchismTracker: @@ -371,7 +374,7 @@ { m_playBehaviour.reset(kST3NoMutedChannels); m_playBehaviour.reset(kST3EffectMemory); - m_playBehaviour.reset(kST3PortaSampleChange); + m_playBehaviour.set(kST3PortaSampleChange, (fileHeader.cwtv& S3MFileHeader::trackerMask) == S3MFileHeader::trkImpulseTracker); m_playBehaviour.reset(kST3VibratoMemory); m_playBehaviour.reset(KST3PortaAfterArpeggio); m_playBehaviour.reset(kST3OffsetWithoutInstrument); |