|
From: <sag...@us...> - 2013-04-28 22:55:15
|
Revision: 1999
http://sourceforge.net/p/modplug/code/1999
Author: saga-games
Date: 2013-04-28 22:55:08 +0000 (Sun, 28 Apr 2013)
Log Message:
-----------
[Fix] Version major/minor was swapped in DBM format.
[Imp] Added version detection for SoundTracker MODs and Mod's Grave.
Modified Paths:
--------------
trunk/OpenMPT/soundlib/LOAD_DBM.CPP
trunk/OpenMPT/soundlib/Load_mod.cpp
Modified: trunk/OpenMPT/soundlib/LOAD_DBM.CPP
===================================================================
--- trunk/OpenMPT/soundlib/LOAD_DBM.CPP 2013-04-28 22:43:36 UTC (rev 1998)
+++ trunk/OpenMPT/soundlib/LOAD_DBM.CPP 2013-04-28 22:55:08 UTC (rev 1999)
@@ -31,7 +31,8 @@
struct PACKED DBMFileHeader
{
uint32 dbm_id; // "DBM0" = 0x304d4244
- uint16 trkver; // Tracker version: 02.15
+ uint8 trkVerHi; // Tracker version: 02.15
+ uint8 trkVerLo;
uint16 reserved;
uint32 name_id; // "NAME" = 0x454d414e
uint32 name_len; // name length: always 44
@@ -222,7 +223,7 @@
nPatterns = BigEndianW(pfh->patterns);
m_nType = MOD_TYPE_DBM;
m_nChannels = CLAMP(BigEndianW(pfh->channels), 1, MAX_BASECHANNELS); // note: MAX_BASECHANNELS is currently 127, but DBM supports up to 128 channels.
- madeWithTracker.Format("Digi Booster %x.%x", pfh->trkver >> 8, pfh->trkver & 0xFF);
+ madeWithTracker.Format("Digi Booster %x.%x", pfh->trkVerHi, pfh->trkVerLo);
if(pfh->songname[0])
{
Modified: trunk/OpenMPT/soundlib/Load_mod.cpp
===================================================================
--- trunk/OpenMPT/soundlib/Load_mod.cpp 2013-04-28 22:43:36 UTC (rev 1998)
+++ trunk/OpenMPT/soundlib/Load_mod.cpp 2013-04-28 22:55:08 UTC (rev 1999)
@@ -577,6 +577,11 @@
// Get number of patterns (including some order list sanity checks)
PATTERNINDEX numPatterns = GetNumPatterns(file, Order, realOrders, totalSampleLen, m_nChannels, isMdKd);
+ if(isMdKd && GetNumChannels() == 8)
+ {
+ // M.K. with 8 channels = Grave Composer
+ madeWithTracker = "Mod's Grave";
+ }
if(isFLT8)
{
@@ -1036,6 +1041,32 @@
}
}
+ switch(minVersion)
+ {
+ case UST1_00:
+ madeWithTracker = "Ultimate Soundtracker 1.0-1.21";
+ break;
+ case UST1_80:
+ madeWithTracker = "Ultimate Soundtracker 1.8-2.0";
+ break;
+ case ST2_00_Exterminator:
+ madeWithTracker = "SoundTracker 2.0 / D.O.C. Sountracker II";
+ break;
+ case ST_III:
+ madeWithTracker = "Defjam Soundtracker III / Alpha Flight SoundTracker IV / D.O.C. SoundTracker IV / VI";
+ break;
+ case ST_IX:
+ madeWithTracker = "D.O.C. SoundTracker IX";
+ break;
+ case MST1_00:
+ madeWithTracker = "Master Soundtracker 1.0";
+ break;
+ case ST2_00:
+ case ST2_00_with_Bxx:
+ madeWithTracker = "SoundTracker 2.0 / 2.1 / 2.2";
+ break;
+ }
+
// Reading samples
if(loadFlags & loadSampleData)
{
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|