Unic Tracker format Created by Anders E. Hansen (Laxity / Kefrens) 1991-1993 Analysed by Asle / ReDoX (asle@mygale.org) Source : - "Guardian Dragon" demo by Kefrens - "Guardian Dragon II" demo by Kefrens - "Desert Dream" demo by Kefrens (first music) NOTE: Very similar to Protracker format ... . "good luck rippers" :). Offset size (byte) Comment ------ ----------- ------- 0 20 (14h) Title *************************************** * the following is repeated 31 times * * with 30 bytes description for 1 smp * ****************************************************** * 20 20 Sample Name * (14h) * 40 2 finetune (signed word) ... * (28h) * 42 2 Sample Size / 2 * (2Ah) * 44 1 ? * (2Ch) * 45 1 Volume (0 - 40h) * (2Dh) * 46 2 Loop Start / 4 (or / 2) * (2Eh) * 48 2 Loop Size / 2 * (30h) * * ****************************************************** (about this loop start /4 or /2, I cannot tell for sure bcoz I've encountered BOTH cases : "Guardian dragon" (/2) & "Guardian dragon II" (/4). I guess Laxity did a new version of his tracker in between those two demos :). It's not that hard to check if it's /2 or /4 ... somehow, the hardiest was to know :). 950 1 Number of pattern to play (3B6h) 951 1 "noisetracker byte" set to $00 (3B7h) 952 128 pattern table (3B8h) (80h) 1080 4 "M.K." ID string. Gryzor says this ID is not (438h) always present. I've only two Unic files and both have this ID. Now, Marley states there can be the ID "UNIC" instead or even $00-00-00-00. I've just find out that the first music of the demo "desert dream" by Kefrens is a UNIC, has a title and no ID string !. Coool ... thx Laxity :(. 1080/1084 ? Pattern datas. each pattern takes 300h bytes row 00 | channel 1 | channel 2 | channel 3 | channel 4 | row 01 | channel 1 | channel 2 | channel 3 | channel 4 | ... row 63 | channel 1 | channel 2 | channel 3 | channel 4 | each channel is coded that way : 0000 0000 0000 0000 0000 0000 ||\ / \ / \ / \ / ||relative || effect effect || note || value ||number || || // | \ // | sample number | unused effect: Just note that pattern break effect command (D**) uses HEX value in UNIC format (while it is DEC values in PTK). Thus, it has to be converted !. relative note number (PTK): C-1 to B-1 : 856,808,762,720,678,640,604,570,538,508,480,453 C-2 to B-2 : 428,404,381,360,339,320,302,285,269,254,240,226 C-3 to B-3 : 214,202,190,180,170,160,151,143,135,127,120,113 becomes (UNIC): C-1 to B-1 : 01,02,03,04,05,06,07,08,09,0a,0b,0c C-2 to B-2 : 0d,0e,0f,10,11,12,13,14,15,16,17,18 C-3 to B-3 : 19,1a,1b,1c,1d,1e,1f,20,21,22,23,24 Follows Sample datas stored like ProTracker. Nothing is packed..