changeset 299:26ead9094940

Implement correct handling of 'M' and '3xx' effects together (aka volume column tone portamento and effect column tone portamento on same channel.)
author Matti Hamalainen <ccr@tnsp.org>
date Thu, 11 Oct 2012 17:50:06 +0300
parents 6f36a34626cb
children 4972ca91d062
files jssplr.c
diffstat 1 files changed, 5 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/jssplr.c	Thu Oct 11 17:24:47 2012 +0300
+++ b/jssplr.c	Thu Oct 11 17:50:06 2012 +0300
@@ -901,7 +901,7 @@
 static void jmpProcessNewRow(JSSPlayer * mp, int channel)
 {
     JSSNote *currNote;
-    BOOL newNote = FALSE, newExtInstrument = FALSE;
+    BOOL newNote = FALSE, newExtInstrument = FALSE, volumePortaSet = FALSE;
     char effect;
     int param, paramX, paramY;
     JSSPlayerChannel *chn = &(mp->channels[channel]);
@@ -984,6 +984,7 @@
                 chn->pitch = chn->oldPitch;
                 chn->note = chn->oldNote;
                 JMPUNSETNDFLAGS(cdfNewPitch | cdfPlay);
+                volumePortaSet = TRUE;
             }
             break;
     }
@@ -1014,6 +1015,9 @@
             break;
 
         case '3':        // 3xy = Porta To Note
+            if (volumePortaSet)
+                break;
+
             if (param)
                 chn->iLastPortaToNoteParam = param;