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,
|