Author: sagamusix
Date: Thu May 9 15:11:23 2024
New Revision: 20744
URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20744
Log:
[Mod] XM: All MPT versions up to v1.11 set both normal and pingpong loop flags for pingpong-looped samples, not just MPT 1.09. Apart from this, a file made with MPT 1.06 or newer will be bit-identical when re-saved in MPT 1.16. Make the version reporting more precise.
Modified:
trunk/OpenMPT/soundlib/Load_xm.cpp
Modified: trunk/OpenMPT/soundlib/Load_xm.cpp
==============================================================================
--- trunk/OpenMPT/soundlib/Load_xm.cpp Thu May 9 11:49:41 2024 (r20743)
+++ trunk/OpenMPT/soundlib/Load_xm.cpp Thu May 9 15:11:23 2024 (r20744)
@@ -358,19 +358,19 @@
enum TrackerVersions
{
- verUnknown = 0x00, // Probably not made with MPT
- verOldModPlug = 0x01, // Made with MPT Alpha / Beta
- verNewModPlug = 0x02, // Made with MPT (not Alpha / Beta)
- verModPlug1_09 = 0x04, // Made with MPT 1.09 or possibly other version
- verOpenMPT = 0x08, // Made with OpenMPT
- verConfirmed = 0x10, // We are very sure that we found the correct tracker version.
-
- verFT2Generic = 0x20, // "FastTracker v2.00", but FastTracker has NOT been ruled out
- verOther = 0x40, // Something we don't know, testing for DigiTrakker.
- verFT2Clone = 0x80, // NOT FT2: itype changed between instruments, or \0 found in song title
- verDigiTrakker = 0x100, // Probably DigiTrakker
- verUNMO3 = 0x200, // TODO: UNMO3-ed XMs are detected as MPT 1.16
- verEmptyOrders = 0x400, // Allow empty order list like in OpenMPT (FT2 just plays pattern 0 if the order list is empty according to the header)
+ verUnknown = 0x00, // Probably not made with MPT
+ verOldModPlug = 0x01, // Made with MPT Alpha / Beta
+ verNewModPlug = 0x02, // Made with MPT (not Alpha / Beta)
+ verModPlugBidiFlag = 0x04, // MPT up to v1.11 sets both normal loop and pingpong loop flags
+ verOpenMPT = 0x08, // Made with OpenMPT
+ verConfirmed = 0x10, // We are very sure that we found the correct tracker version.
+
+ verFT2Generic = 0x20, // "FastTracker v2.00", but FastTracker has NOT been ruled out
+ verOther = 0x40, // Something we don't know, testing for DigiTrakker.
+ verFT2Clone = 0x80, // NOT FT2: itype changed between instruments, or \0 found in song title
+ verDigiTrakker = 0x100, // Probably DigiTrakker
+ verUNMO3 = 0x200, // TODO: UNMO3-ed XMs are detected as MPT 1.16
+ verEmptyOrders = 0x400, // Allow empty order list like in OpenMPT (FT2 just plays pattern 0 if the order list is empty according to the header)
};
DECLARE_FLAGSET(TrackerVersions)
@@ -819,10 +819,7 @@
m_szNames[mptSample] = mpt::String::ReadBuf(mpt::String::spacePadded, sampleHeader.name);
if((sampleHeader.flags & 3) == 3 && madeWith[verNewModPlug])
- {
- // MPT 1.09 and maybe newer / older versions set both loop flags for bidi loops.
- madeWith.set(verModPlug1_09);
- }
+ madeWith.set(verModPlugBidiFlag);
}
if(sampleFlags.back().GetEncoding() == SampleIO::ADPCM)
anyADPCM = true;
@@ -931,14 +928,14 @@
if(madeWith[verConfirmed])
{
- if(madeWith[verModPlug1_09])
+ if(madeWith[verModPlugBidiFlag])
{
- m_dwLastSavedWithVersion = MPT_V("1.09");
- madeWithTracker = U_("ModPlug Tracker 1.09");
+ m_dwLastSavedWithVersion = MPT_V("1.11");
+ madeWithTracker = U_("ModPlug Tracker 1.0 - 1.11");
} else if(madeWith[verNewModPlug])
{
m_dwLastSavedWithVersion = MPT_V("1.16");
- madeWithTracker = U_("ModPlug Tracker 1.10 - 1.16");
+ madeWithTracker = U_("ModPlug Tracker 1.0 - 1.16");
}
}
|