From: <sag...@us...> - 2013-04-28 15:53:24
|
Revision: 1994 http://sourceforge.net/p/modplug/code/1994 Author: saga-games Date: 2013-04-28 15:53:16 +0000 (Sun, 28 Apr 2013) Log Message: ----------- [Mod] FT2 Compatiblity: No longer apply global volume on tick 2, since this was only part of the truth (http://bugs.openmpt.org/view.php?id=388). [Fix] FT2 Compatiblity: Only instrument numbers should reset sample panning, not lone notes (PanMemory.xm, http://bugs.openmpt.org/view.php?id=385). Modified Paths: -------------- trunk/OpenMPT/soundlib/Snd_fx.cpp Modified: trunk/OpenMPT/soundlib/Snd_fx.cpp =================================================================== --- trunk/OpenMPT/soundlib/Snd_fx.cpp 2013-04-28 14:37:19 UTC (rev 1993) +++ trunk/OpenMPT/soundlib/Snd_fx.cpp 2013-04-28 15:53:16 UTC (rev 1994) @@ -735,9 +735,12 @@ } // Default sample panning - if(pSmp->uFlags[CHN_PANNING] || (GetType() & MOD_TYPE_XM)) + if(pSmp->uFlags[CHN_PANNING] && (bUpdVol || GetType() != MOD_TYPE_XM)) { + // FT2 compatibility: Only reset panning on instrument numbers, not notes (bUpdVol condition) + // Test case: PanMemory.xm pChn->nPan = pSmp->nPan; + // IT compatibility: Sample and instrument panning overrides channel surround status. // Test case: SmpInsPanSurround.it if(IsCompatibleMode(TRK_IMPULSETRACKER) && !m_SongFlags[SONG_SURROUNDPAN]) @@ -2321,13 +2324,14 @@ // break; // } - // FT2 compatibility: Global volume is applied *after* the first tick. - // This is not emulated quite correctly for speed 1 (because there is no second tick), but it should be close enough. + // FT2 compatibility: On channels that are "left" of the global volume command, the new global volume is not applied + // until the second tick of the row. Since we apply global volume on the mix buffer rather than note volumes, this + // cannot be fixed for now. // Test case: GlobalVolume.xm - if(IsCompatibleMode(TRK_FASTTRACKER2) && m_SongFlags[SONG_FIRSTTICK] && m_nMusicSpeed > 1) - { - break; - } +// if(IsCompatibleMode(TRK_FASTTRACKER2) && m_SongFlags[SONG_FIRSTTICK] && m_nMusicSpeed > 1) +// { +// break; +// } if (!(GetType() & (MOD_TYPE_IT | MOD_TYPE_MPT | MOD_TYPE_IMF | MOD_TYPE_J2B | MOD_TYPE_MID | MOD_TYPE_AMS | MOD_TYPE_AMS2 | MOD_TYPE_DBM))) param *= 2; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |