Update from FSS commits 39e6fa8 and 5204c55, guards ADSR against invalid values, these may not be 100% correct but they currently work as is.
Update from FSS commits 39e6fa8 and 5204c55, guards ADSR against invalid values, these may not be 100% correct but they currently work as is.

--- a/src/in_ncsf/SSEQPlayer/common.h
+++ b/src/in_ncsf/SSEQPlayer/common.h
@@ -1,7 +1,7 @@
 /*
  * SSEQ Player - Common functions
  * By Naram Qashat (CyberBotX) [cyberbotx@cyberbotx.com]
- * Last modification on 2013-04-23
+ * Last modification on 2013-05-01
  *
  * Some code from FeOS Sound System
  * By fincs
@@ -143,11 +143,15 @@
 		0x5C, 0x64, 0x6D, 0x74, 0x7B, 0x7F, 0x84, 0x89, 0x8F
 	};
 
+	if (attk & 0x80) // Supposedly invalid value...
+		attk = 0; // Use apparently correct default
 	return attk >= 0x6D ? lut[0x7F - attk] : 0xFF - attk;
 }
 
 inline int Cnv_Fall(int fall)
 {
+	if (fall & 0x80) // Supposedly invalid value...
+		fall = 0; // Use apparently correct default
 	if (fall == 0x7F)
 		return 0xFFFF;
 	else if (fall == 0x7E)
@@ -180,6 +184,8 @@
 		-10, -8, -7, -6, -4, -3, -1, 0
 	};
 
+	if (sust & 0x80) // Supposedly invalid value...
+		sust = 0; // Use apparently correct default
 	return lut[sust];
 }