From: <sv...@op...> - 2024-10-20 12:33:35
|
Author: sagamusix Date: Sun Oct 20 14:33:28 2024 New Revision: 21874 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=21874 Log: Merged revision(s) 21810, 21813, 21817 from trunk/OpenMPT: [Imp] STM: Map known tracker IDs to "made with" tracker string (patch by cs127, https://github.com/OpenMPT/openmpt/pull/23/files) ........ [Imp] S3M: Make it obvious that tracker ID 0x1320 may also refer to Scream Tracker 3.21. Patch by cs127 (https://github.com/OpenMPT/openmpt/pull/24). ........ [Mod] STM: Fix typo in version number range (patch by cs127, https://github.com/OpenMPT/openmpt/pull/25). ........ Modified: branches/OpenMPT-1.31/ (props changed) branches/OpenMPT-1.31/soundlib/Load_s3m.cpp branches/OpenMPT-1.31/soundlib/Load_stm.cpp Modified: branches/OpenMPT-1.31/soundlib/Load_s3m.cpp ============================================================================== --- branches/OpenMPT-1.31/soundlib/Load_s3m.cpp Sun Oct 20 14:31:15 2024 (r21873) +++ branches/OpenMPT-1.31/soundlib/Load_s3m.cpp Sun Oct 20 14:33:28 2024 (r21874) @@ -283,9 +283,16 @@ // though several ST3.01/3.03 files with ultra-click values of 16 have been found as well. // However, we won't fingerprint these values here as it's unlikely that there is any other tracker out there disguising as ST3 and using a strange ultra-click value. // Also, re-saving a file with a strange ultra-click value in ST3 doesn't fix this value unless the user manually changes it, or if it's below 16. - madeWithTracker = UL_("Scream Tracker"); - formatTrackerStr = true; isST3 = true; + if(fileHeader.cwtv == S3MFileHeader::trkST3_20) + { + // 3.21 writes the version number as 3.20. There is no known way to differentiate between the two. + madeWithTracker = UL_("Scream Tracker 3.20 - 3.21"); + } else + { + madeWithTracker = UL_("Scream Tracker"); + formatTrackerStr = true; + } } break; case S3MFileHeader::trkImagoOrpheus: Modified: branches/OpenMPT-1.31/soundlib/Load_stm.cpp ============================================================================== --- branches/OpenMPT-1.31/soundlib/Load_stm.cpp Sun Oct 20 14:31:15 2024 (r21873) +++ branches/OpenMPT-1.31/soundlib/Load_stm.cpp Sun Oct 20 14:33:28 2024 (r21874) @@ -236,9 +236,24 @@ m_modFormat.formatName = U_("Scream Tracker 2"); m_modFormat.type = U_("stm"); - m_modFormat.madeWithTracker = MPT_UFORMAT("Scream Tracker {}.{}")(fileHeader.verMajor, mpt::ufmt::dec0<2>(fileHeader.verMinor)); m_modFormat.charset = mpt::Charset::CP437; + if(!std::memcmp(fileHeader.trackerName, "!Scream!", 8)) + { + if(fileHeader.verMinor >= 21) + m_modFormat.madeWithTracker = UL_("Scream Tracker 2.2 - 2.3 or compatible"); + else + m_modFormat.madeWithTracker = MPT_UFORMAT("Scream Tracker {}.{} or compatible")(fileHeader.verMajor, mpt::ufmt::dec0<2>(fileHeader.verMinor)); + } + else if(!std::memcmp(fileHeader.trackerName, "BMOD2STM", 8)) + m_modFormat.madeWithTracker = UL_("BMOD2STM"); + else if(!std::memcmp(fileHeader.trackerName, "WUZAMOD!", 8)) + m_modFormat.madeWithTracker = UL_("Wuzamod"); + else if(!std::memcmp(fileHeader.trackerName, "SWavePro", 8)) + m_modFormat.madeWithTracker = UL_("SoundWave Pro"); + else + m_modFormat.madeWithTracker = UL_("Unknown"); + m_playBehaviour.set(kST3SampleSwap); m_nSamples = 31; |