ref: 242c96c172f5203f595a4ba24f9649c2c975846f
parent: 83a79f2c29b2601d78087aaa8e8363157e0b4ecb
author: Chris Moeller <[email protected]>
date: Mon Jan 11 04:01:04 EST 2010
{5/1/2008 3:06:24 PM~5/1/2008 3:07:24 PM} git-tfs-id: [http://localhost:8080/tfs/DefaultCollection/]$/foobar2000/files/plugins.root;C196
--- a/dumb/src/it/itrender.c
+++ b/dumb/src/it/itrender.c
@@ -4047,6 +4047,19 @@
if (vol > 64 << 5)
vol = 64 << 5;
+ if ( sigrenderer->sigdata->flags & IT_WAS_A_PTM )
+ {
+ int v = aiPTMVolScaled[ vol >> 5 ];
+ if ( vol < 64 << 5 )
+ {
+ int f = vol & ( ( 1 << 5 ) - 1 );
+ int f2 = ( 1 << 5 ) - f;
+ int v2 = aiPTMVolScaled[ ( vol >> 5 ) + 1 ];
+ v = ( v * f2 + v2 * f ) >> 5;
+ }
+ vol = v << 1;
+ }
+
volume *= vol; /* 64 << 5 */
volume *= playing->sample->global_volume; /* 64 */
volume *= playing->channel_volume; /* 64 */
--- a/dumb/src/it/readdsmf.c
+++ b/dumb/src/it/readdsmf.c
@@ -282,7 +282,7 @@
ptr = ( unsigned char * ) c->data;
memcpy( sigdata->name, c->data, 28 );
sigdata->name[ 28 ] = 0;
- sigdata->flags = IT_WAS_AN_XM | IT_WAS_A_MOD | IT_STEREO | IT_OLD_EFFECTS | IT_COMPATIBLE_GXX;
+ sigdata->flags = IT_STEREO | IT_OLD_EFFECTS | IT_COMPATIBLE_GXX;
sigdata->n_orders = ptr[ 36 ] | ( ptr[ 37 ] << 8 );
//sigdata->n_samples = ptr[ 38 ] | ( ptr[ 39 ] << 8 ); // whatever
//sigdata->n_patterns = ptr[ 40 ] | ( ptr[ 41 ] << 8 );