XANN Packer format
Created by XANN / The Silents 1992
Analysed by Asle / ReDoX (asle@mygale.org)

 Heh, XANN, pourrais-tu me re-envoyer ton E-Mail svp ...
je vais m'attaquer au "vrai" XANN packer :).

Source :
 - 3 musics from "Lethal Exit" demo by Digital
 - 1 file sent by Gryzor (thx !)


Offset    size (byte)    Comment
------    -----------    -------
  0h         200h        Pattern address table. 128 patterns addresses
                         which are dword.

200h           6h        ? filled with $00

      ***************************************
      * the following is repeated 31 times  *
      * with 16 bytes description for 1 smp *
******************************************************
                                                     *
206h           1h        ?finetune?                  *
207h           1h        Volume (0 - 40h)            *
208h           4h        Loop start address          *
20Ch           2h        Loop Size / 2               *
20Eh           4h        Sample Address              *
212h           2h        Sample Size / 2             *
214h           2h        ?                           *
                                                     *
******************************************************

3F6h          46h        ? filled with $00

43Ch           ?         pattern data


 each pattern is 400h bytes with 4 bytes for a note description.

row  1: voice1|voice2|voice3|voice4
row  2: voive1|voice2|voice3|voice4
...
row 64: voive1|voice2|voice3|voice4

 0000 0000  0000 0000  0000 0000  0000 0000
 \    /\ /  \       /  \       /  \       /
 sample |   relative     effect     effect
 number |     note                  value
        |    number
       unused

effect: all the effects number have changed and here is the list
$04: $0  (arpeggio)
$08: $1  (portamento up)
$0C: $2  (portamento down)
$10: $3  (tone portamento with FxVal set to 0x00)
$14: $3  (tone portamento)
$18: $4  (vibrato with no FxVal)
$1C: $4  (vibrato)
$20:   !! never seen ... probably $5 with no FxVal
$24: $5  (tone portamento + volume slide)
$28: $6  (vibrato + volume slide UP)
$2C: $6  (vibrato + volume slide DOWN)
$30:   !! never seen ... probably $7 with no FxVal
$34:   !! never seen ... probably $7
$38: $9  (sample offset)
$3C: $A  (volume slide UP !!!  so effect value is <<4 when converting)
$40: $A  (volume slide DOWN !!!)
$44: $B  (position jump)
$48: $C  (set volume)
$4C: $D  (pattern break)
$50: $F  (set speed)
$54:   !! never seen ... probably $F (set BPM)
$58: $E with effect value $01  (set filter)
$5C: $E with effect value |= $10  (fine slide up)
$60: $E with effect value |= $20  (fine slide down)
$64:   !! never seen ... probably $E3?
$68:   !! never seen ... probably $E3*
$6C:   !! never seen ... probably $E4*
$70:   !! never seen ... probably $E5*
$74:   !! never seen ... probably $E60
$78:   !! never seen ... probably $E6*
$7C:   !! never seen ... probably $E7*
$80:   !! never seen ... probably $E90
$84: $E with effect value |= $90  (retriger)
$88: $E with effect value |= $A0  (fine volume slide up)
$8C: $E with effect value |= $B0  (fine volume slide down)
$94: $E with effect value |= $D0  (note delay)
$98: $E with effect value |= $E0  (pattern delay)
$9C:   !! never seen ... probably $EF*


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

relative note number (XANN):

C-1 to B-1 : 02,04,06,08,0a,0c,0e,10,12,14,16,18
C-2 to B-2 : 1a,1c,1e,20,22,24,26,28,2a,2c,2e,30
C-3 to B-3 : 32,34,36,38,3a,3c,3e,40,42,44,46,48


 Follows Sample datas stored like Protracker.
Nothing is packed..