From: <sv...@op...> - 2024-05-09 17:41:34
|
Author: sagamusix Date: Thu May 9 19:41:22 2024 New Revision: 20746 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20746 Log: [Imp] S3M: Tell Velvet Studio apart from MPT more reliably. [Imp] S3M: Detect PlayerPRO when running on big-endian platforms (assumption based on source - I have not searched for any such S3M files yet.) Modified: trunk/OpenMPT/soundlib/Load_s3m.cpp Modified: trunk/OpenMPT/soundlib/Load_s3m.cpp ============================================================================== --- trunk/OpenMPT/soundlib/Load_s3m.cpp Thu May 9 18:45:14 2024 (r20745) +++ trunk/OpenMPT/soundlib/Load_s3m.cpp Thu May 9 19:41:22 2024 (r20746) @@ -248,7 +248,7 @@ madeWithTracker = U_("Akord"); break; case S3MFileHeader::trkScreamTracker: - if(fileHeader.cwtv == S3MFileHeader::trkST3_20 && fileHeader.special == 0 && (fileHeader.ordNum & 0x0F) == 0 && fileHeader.ultraClicks == 0 && (fileHeader.flags & ~0x50) == 0) + if(fileHeader.cwtv == S3MFileHeader::trkST3_20 && fileHeader.special == 0 && (fileHeader.ordNum & 0x0F) == 0 && fileHeader.ultraClicks == 0 && (fileHeader.flags & ~0x50) == 0 && fileHeader.usePanningTable == S3MFileHeader::idPanning) { // MPT and OpenMPT before 1.17.03.02 - Simply keep default (filter) MIDI macros if((fileHeader.masterVolume & 0x80) != 0) @@ -266,7 +266,10 @@ m_playBehaviour.set(kST3LimitPeriod); } else if(fileHeader.cwtv == S3MFileHeader::trkST3_20 && fileHeader.special == 0 && fileHeader.ultraClicks == 0 && fileHeader.flags == 0 && fileHeader.usePanningTable == 0) { - madeWithTracker = U_("Velvet Studio"); + if(fileHeader.globalVol == 64 && fileHeader.masterVolume == 48) + madeWithTracker = U_("PlayerPRO"); + else // Always stereo + madeWithTracker = U_("Velvet Studio"); } else { // ST3.20 should only ever write ultra-click values 16, 24 and 32 (corresponding to 8, 12 and 16 in the GUI), ST3.01/3.03 should only write 0, |