|
From: <sag...@us...> - 2009-07-31 13:09:34
|
Revision: 311
http://modplug.svn.sourceforge.net/modplug/?rev=311&view=rev
Author: saga-games
Date: 2009-07-31 12:56:26 +0000 (Fri, 31 Jul 2009)
Log Message:
-----------
[Fix] Retrig: A compatiblity change theoretically broke non-compatible Retrigger
[Imp] IT Compatibility: Improved IT compatible retrigger (didn't work if the retrigger didn't start together with a new note)
[Imp] IT Loader: Can now load IT files with very small patterns (< 4 rows)
[Imp] Mod Specifications: Decreased minimum pattern size for XM and IT format to 1 row. Experimental, but should not break anything (needs more testing).
Modified Paths:
--------------
trunk/OpenMPT/soundlib/Load_it.cpp
trunk/OpenMPT/soundlib/Snd_fx.cpp
trunk/OpenMPT/soundlib/mod_specifications.h
Modified: trunk/OpenMPT/soundlib/Load_it.cpp
===================================================================
--- trunk/OpenMPT/soundlib/Load_it.cpp 2009-07-29 22:18:17 UTC (rev 310)
+++ trunk/OpenMPT/soundlib/Load_it.cpp 2009-07-31 12:56:26 UTC (rev 311)
@@ -928,7 +928,7 @@
bool interpretModplugmade = false;
bool hasModplugExtensions = false;
- if ((!lpStream) || (dwMemLength < 0x100)) return FALSE;
+ if ((!lpStream) || (dwMemLength < 0xC0)) return FALSE;
if ((pifh->id != 0x4D504D49 && pifh->id != 0x2e6D7074) || (pifh->insnum > 0xFF)
|| (!pifh->smpnum) || (pifh->smpnum >= MAX_SAMPLES) || (!pifh->ordnum)) return FALSE;
if (dwMemPos + pifh->ordnum + pifh->insnum*4
Modified: trunk/OpenMPT/soundlib/Snd_fx.cpp
===================================================================
--- trunk/OpenMPT/soundlib/Snd_fx.cpp 2009-07-29 22:18:17 UTC (rev 310)
+++ trunk/OpenMPT/soundlib/Snd_fx.cpp 2009-07-31 12:56:26 UTC (rev 311)
@@ -746,7 +746,7 @@
pChn->nLeftVU = pChn->nRightVU = 0xFF;
pChn->dwFlags &= ~CHN_FILTER;
pChn->dwFlags |= CHN_FASTVOLRAMP;
- if(!GetModFlag(MSF_COMPATIBLE_PLAY) && (m_nType & (MOD_TYPE_IT|MOD_TYPE_MPT)))
+ if(!GetModFlag(MSF_COMPATIBLE_PLAY) || !(m_nType & (MOD_TYPE_IT|MOD_TYPE_MPT)))
{
//IT compatibility 15. Retrigger will not be reset (Tremor doesn't store anything here, so we just don't reset this as well)
pChn->nRetrigCount = 0;
@@ -3018,7 +3018,7 @@
{
pChn->nRetrigCount = param & 0xf;
}
- else if (!--pChn->nRetrigCount)
+ else if (!pChn->nRetrigCount || !--pChn->nRetrigCount)
{
pChn->nRetrigCount = param & 0xf;
bDoRetrig = TRUE;
Modified: trunk/OpenMPT/soundlib/mod_specifications.h
===================================================================
--- trunk/OpenMPT/soundlib/mod_specifications.h 2009-07-29 22:18:17 UTC (rev 310)
+++ trunk/OpenMPT/soundlib/mod_specifications.h 2009-07-31 12:56:26 UTC (rev 311)
@@ -57,7 +57,7 @@
127, //Channel max
32, //Min tempo
512, //Max tempo
- 4, //Min pattern rows
+ 1, //Min pattern rows
1024, //Max pattern rows
25, //Max mod name length
4000, //SamplesMax
@@ -136,7 +136,7 @@
32, //Channel max
32, //Min tempo
255, //Max tempo
- 4, //Min pattern rows
+ 1, //Min pattern rows
256, //Max pattern rows
20, //Max mod name length
31, //SamplesMax
@@ -162,7 +162,7 @@
127, //Channel max
32, //Min tempo
512, //Max tempo
- 4, //Min pattern rows
+ 1, //Min pattern rows
1024, //Max pattern rows
20, //Max mod name length
4000, //SamplesMax
@@ -238,7 +238,7 @@
64, //Channel max
32, //Min tempo
255, //Max tempo
- 4, //Min pattern rows
+ 1, //Min pattern rows
256, //Max pattern rows
25, //Max mod name length
256, //SamplesMax
@@ -263,7 +263,7 @@
127, //Channel max
32, //Min tempo
512, //Max tempo
- 4, //Min pattern rows
+ 1, //Min pattern rows
1024, //Max pattern rows
25, //Max mod name length
4000, //SamplesMax
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|