[Scummvm-cvs-logs] SF.net SVN: scummvm:[41427] scummvm/branches/gsoc2009-mods
nolange at users.sourceforge.net
nolange at users.sourceforge.net
Wed Jun 10 15:45:24 CEST 2009
Revision: 41427
http://scummvm.svn.sourceforge.net/scummvm/?rev=41427&view=rev
Author: nolange
Date: 2009-06-10 13:45:23 +0000 (Wed, 10 Jun 2009)
Log Message:
-----------
Fix looping of Tracks
Modified Paths:
--------------
scummvm/branches/gsoc2009-mods/sound/mods/tfmx.cpp
scummvm/branches/gsoc2009-mods/tfmx/tfmxplayer.cpp
Modified: scummvm/branches/gsoc2009-mods/sound/mods/tfmx.cpp
===================================================================
--- scummvm/branches/gsoc2009-mods/sound/mods/tfmx.cpp 2009-06-10 12:47:29 UTC (rev 41426)
+++ scummvm/branches/gsoc2009-mods/sound/mods/tfmx.cpp 2009-06-10 13:45:23 UTC (rev 41427)
@@ -220,6 +220,11 @@
} else {
//TODO ?
}
+ channel.volume = 0;
+ Paula::setChannelVolume(channel.paulaChannel, channel.volume);
+
+ if (macroPtr[2] != 0 || macroPtr[3] != 0)
+ debug("DMA Off: Parameters not implemented %02X%02X%02X", macroPtr[1], macroPtr[2], macroPtr[3]);
return true;
case 0x01: // DMA On
@@ -337,7 +342,7 @@
Paula::setChannelSampleLen(channel.paulaChannel, channel.sampleLen);
return true;
- case 0x14: // Wait key up. Parameters: wait cycles(W)
+ case 0x14: // Wait key up. Parameters: wait cycles
if (!channel.keyUp || channel.macroLoopCount == 0) {
channel.macroLoopCount = 0xFF;
return true;
@@ -398,12 +403,12 @@
warnMacroUnimplemented(macroPtr, 0);
return true;
- case 0x1C: // Splitkey. Parameters: key/macrostep(W)
+ case 0x1C: // Branch on Note. Parameters: note/macrostep(W)
if (channel.note > macroPtr[1])
channel.macroStep = READ_BE_UINT16(¯oPtr[2]);
return true;
- case 0x1D: // Splitvolume. Parameters: volume/macrostep
+ case 0x1D: // Branch on Volume. Parameters: volume/macrostep(W)
if (channel.volume > macroPtr[1])
channel.macroStep = READ_BE_UINT16(¯oPtr[2]);
return true;
@@ -480,7 +485,7 @@
if (_playerCtx.pendingTrackstep) {
// we load the next Trackstep Command and then process all Channels again
// TODO Optionally disable looping
- if (_trackCtx.startInd == _trackCtx.stopInd)
+ if (_trackCtx.posInd == _trackCtx.stopInd)
_trackCtx.posInd = _trackCtx.startInd;
else
++_trackCtx.posInd;
@@ -672,7 +677,7 @@
channel.macroIndex = param1 % kMaxMacroOffsets;
channel.macroOffset = _macroOffset[param1 % kMaxMacroOffsets];
channel.relVol = (param2 >> 4) & 0xF;
- channel.fineTune = (int16)param3;
+ channel.fineTune = (int8)param3;
initMacroProgramm(channel);
channel.keyUp = true;
Modified: scummvm/branches/gsoc2009-mods/tfmx/tfmxplayer.cpp
===================================================================
--- scummvm/branches/gsoc2009-mods/tfmx/tfmxplayer.cpp 2009-06-10 12:47:29 UTC (rev 41426)
+++ scummvm/branches/gsoc2009-mods/tfmx/tfmxplayer.cpp 2009-06-10 13:45:23 UTC (rev 41427)
@@ -109,9 +109,9 @@
if (i < argc) {
param = atoi(argv[i]);
debug( "play Macro %02X", param);
- dumpMacro(*player, 0x11);
+ dumpMacro(*player, param);
playflag = 1;
- player->doMacro(param,0x1B);
+ player->doMacro(param,param);
++i;
}
break;
@@ -143,7 +143,7 @@
while( true)
player->readBuffer(buf, ARRAYSIZE(buf));
#endif
- int maxsecs = 60;
+ int maxsecs = 2 * 60;
if (playflag == 1) {
// get Mixer, assume this never fails
Audio::Mixer *mixer = g_system->getMixer();
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