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
|