From: <sv...@op...> - 2024-07-06 10:27:20
|
Author: sagamusix Date: Sat Jul 6 12:27:06 2024 New Revision: 21128 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=21128 Log: [Imp] S3M: Detect all Liquid Tracker versions (presumably). Modified: trunk/OpenMPT/soundlib/Load_s3m.cpp trunk/OpenMPT/soundlib/S3MTools.h Modified: trunk/OpenMPT/soundlib/Load_s3m.cpp ============================================================================== --- trunk/OpenMPT/soundlib/Load_s3m.cpp Thu Jul 4 23:03:12 2024 (r21127) +++ trunk/OpenMPT/soundlib/Load_s3m.cpp Sat Jul 6 12:27:06 2024 (r21128) @@ -335,9 +335,14 @@ nonCompatTracker = true; break; case S3MFileHeader::trkOpenMPT: - if(fileHeader.cwtv == S3MFileHeader::trkLiquidTracker && fileHeader.ultraClicks == 16) + // Liquid Tracker's ID clashes with OpenMPT's. + // OpenMPT started writing full version information with OpenMPT 1.29 and later changed the ultraClicks value from 8 to 16. + // Liquid Tracker writes an ultraClicks value of 16. + // So we assume that a file was saved with Liquid Tracker if the reserved fields are 0 and ultraClicks is 16. + if(fileHeader.reserved2 == 0 && fileHeader.ultraClicks == 16 && fileHeader.channels[1] != 1) { madeWithTracker = U_("Liquid Tracker"); + formatTrackerStr = true; } else if((fileHeader.cwtv & 0xFF00) == S3MFileHeader::trkNESMusa) { madeWithTracker = U_("NESMusa"); Modified: trunk/OpenMPT/soundlib/S3MTools.h ============================================================================== --- trunk/OpenMPT/soundlib/S3MTools.h Thu Jul 4 23:03:12 2024 (r21127) +++ trunk/OpenMPT/soundlib/S3MTools.h Sat Jul 6 12:27:06 2024 (r21128) @@ -52,7 +52,6 @@ trkIT2_14 = 0x3214, trkBeRoTrackerOld = 0x4100, // Used from 2004 to 2012 trkGraoumfTracker = 0x5447, - trkLiquidTracker = 0x5125, // Clashes with OpenMPT 1.25 trkNESMusa = 0x5700, trkCamoto = 0xCA00, trkPlayerPRO = 0x2013, // PlayerPRO on Intel doesn't byte-swap the tracker ID bytes |