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..