[Scummvm-cvs-logs] SF.net SVN: scummvm:[33929] scummvm/branches/gsoc2008-tfmx

marwanhilmi at users.sourceforge.net marwanhilmi at users.sourceforge.net
Sat Aug 16 08:58:29 CEST 2008


Revision: 33929
          http://scummvm.svn.sourceforge.net/scummvm/?rev=33929&view=rev
Author:   marwanhilmi
Date:     2008-08-16 06:58:28 +0000 (Sat, 16 Aug 2008)

Log Message:
-----------
Fixed bug with key-up release.

Modified Paths:
--------------
    scummvm/branches/gsoc2008-tfmx/base/main.cpp
    scummvm/branches/gsoc2008-tfmx/sound/mods/tfmx.cpp

Modified: scummvm/branches/gsoc2008-tfmx/base/main.cpp
===================================================================
--- scummvm/branches/gsoc2008-tfmx/base/main.cpp	2008-08-16 06:39:58 UTC (rev 33928)
+++ scummvm/branches/gsoc2008-tfmx/base/main.cpp	2008-08-16 06:58:28 UTC (rev 33929)
@@ -300,15 +300,15 @@
 	
 	/*
 	if (_aTfmx.loadSong(0)) {
-		_aTfmx.testPattern(0x08);
+		_aTfmx.testPattern(0x04);
 	}
 	//*/
 		
 	/*
 	if (_aTfmx.loadSong(0)) {
-		_aTfmx.testMacro(0x17);
+		_aTfmx.testMacro(0x3);
 	}
-	*/
+	//*/
 
 	system.getMixer()->playInputStream( Audio::Mixer::kMusicSoundType, &_handle, &_aTfmx, -1, 255, 0, false);
 	system.delayMillis( 999999 );

Modified: scummvm/branches/gsoc2008-tfmx/sound/mods/tfmx.cpp
===================================================================
--- scummvm/branches/gsoc2008-tfmx/sound/mods/tfmx.cpp	2008-08-16 06:39:58 UTC (rev 33928)
+++ scummvm/branches/gsoc2008-tfmx/sound/mods/tfmx.cpp	2008-08-16 06:58:28 UTC (rev 33929)
@@ -357,7 +357,7 @@
 			}
 			break;
 		case 0xF5: //Key up
-			_channels[(byte3 & 0x0F)].keyUp = true;
+			_channels[(byte3 & 0x0F) & 0x03].keyUp = true;
 			break;
 		case 0xF6: //Vibrato
 			break;
@@ -544,10 +544,10 @@
 		_channels[currentChannel].updateOn = true;
 		break;
 	case 0x18: //sampleloop
-		//_channels[currentChannel].sampleOffset += ( *(_tracks[trackNumber].activeMacro.data) & 0x00FFFFFF );
-		//_channels[currentChannel].sampleLength -= ( *(_tracks[trackNumber].activeMacro.data) & 0x00FFFFFF );
-		_channels[currentChannel].sampleOffset += ( ( *(_tracks[trackNumber].activeMacro.data) & 0x0000FFFF ) & 0xFFFE );
-		_channels[currentChannel].sampleLength -= ( ( *(_tracks[trackNumber].activeMacro.data) & 0x0000FFFF ) >> 1);
+		//_channels[currentChannel].sampleOffset += ( *(_tracks[trackNumber].activeMacro.data) & 0x0000FFFF );
+		//_channels[currentChannel].sampleLength -= ( *(_tracks[trackNumber].activeMacro.data) & 0x0000FFFF );
+		_channels[currentChannel].sampleOffset += ( *(_tracks[trackNumber].activeMacro.data) & 0x0000FFFE );
+	    _channels[currentChannel].sampleLength -= ( ( *(_tracks[trackNumber].activeMacro.data) & 0x0000FFFF ) >> 1);
 		//_channels[currentChannel].updateOn = true;
 		break;
 	case 0x08: //add note
@@ -592,7 +592,7 @@
 		}
 		
 		if (_tracks[trackNumber].activeMacro.keyCount == 0) {
-			printf("KEY UP WAIT TIME:: %02x \n", _tracks[trackNumber].activeMacro.keyWait);
+			//printf("KEY UP WAIT TIME:: %02x \n", _tracks[trackNumber].activeMacro.keyWait);
 			_channels[currentChannel].updateOn = true;
 			_channels[currentChannel].keyUp = false;
 		}
@@ -602,7 +602,7 @@
 			_tracks[trackNumber].activeMacro.data--;
 			_tracks[trackNumber].activeMacro.macroCount--;
 			_tracks[trackNumber].activeMacro.macroWait = 1;
-			printf("KEY UP WAIT COUNT:: %02x \n", _tracks[trackNumber].activeMacro.keyCount);
+			//printf("KEY UP WAIT COUNT:: %02x \n", _tracks[trackNumber].activeMacro.keyCount);
 			_tracks[trackNumber].activeMacro.keyCount++;
 			if (_tracks[trackNumber].activeMacro.keyCount == 0x7F) {
 				_tracks[trackNumber].activeMacro.keyCount = 1;
@@ -663,7 +663,7 @@
 			}
 		}
 
-		for (int i = 1; i < 4; i++) {
+		for (int i = 0; i < 4; i++) {
 			doEffects(i);
 			setChannelPeriod(i,_channels[i].period);
 			setChannelVolume(i,_channels[i].volume);


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the Scummvm-git-logs mailing list