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