Amiga MOD Packers Described - STIM Slamtilt Described
Anim ripped from Digital Illusion's MotorHead
Yeah :) at least in HTML format !.
Anim ripped from Digital Illusion's MotorHead




  Format name : STIM Slamtilt
Created by : ?!?

Sources :
*
Slamtilt (flipper game) GREAT musics by Christian Bjorklund !


OFFSET
SIZE (bytes)
COMMENT
0
4
8
Ch
10h
12h
14h
16h
96h
-
-
196h
4
4
4
4
2
2
2
80h
40h*4
-
-
?!?
- "STIM" ID string
- Address of the sample descriptions
- ??? (0000000Ch)
- ??? (00000000h)
- ??? (001Fh) number of samples ?
- Size of the pattern list
- Number of pattern saved
- Pattern list
- pattern addresses. all the addresses of the saved patterns (up to 64).
!add $C to each value !
- Pattern datas

Pattern's datas are stored like that :

pattern 0 :
  • addresses of tracks (4 words)
    first address is always 08h (right after this 8 bytes table)
  • all the 64 row of voice 0

  • all the 64 row of voice 1

  • all the 64 row of voice 2

  • all the 64 row of voice 3

  • pattern 1 : ...

  • So, each pattern begins with 4 words. Each is the number of bytes to add to find the tracks 0, 1, 2 and 3
  • The size of each pattern is variable. It can be up to 300h bytes


  • Note Packing :

    * case 1 : (empty lines)
        val
       /    \
      |      |
     1000 0000
     |
     if this bit is set, follows 'val' empty lines in the track.
     (ex: 81h -> THIS line plus one more are empty)
     (ex: 80h -> THIS line is empty)

    * case 2 : ('standard' note packing)
        __ Fx __
       /        \
      ||        ||
     0000 0000  0000 0000  0000 0000
     |  |    |    |     |  |       |
     |   \  /      \   /    \     /
     |    smp      note      Fx Val
     |                   
     Description bit set to 0

  • 'note':check below for the correspondance table

  • 'smp':the sample (from 0 to 1Fh)
    smp = (byte1&0x1F)

  • 'Fx':effect (standard ptk effects)
    Fx = ((byte2>>4)&0xC0)|((byte1>>5)&0x03)



  • relative note number: (Protracker)
    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

    become : (STIM)
    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


    ?!?
    4*31
    - Sample datas addresses (4 dwords)

  • each sample data starts with a 8 bytes long header which is as follow :
    (Values in the left column are virtuals ...)


  • 0
    2
    3
    4
    6
    2
    1
    1
    2
    2
    - Sample Size / 2
    - Finetune (0 -> F)
    - Volume (0 - 40h)
    - Loop Start / 2
    - Loop Size / 2

     

    Click "back" to go back :)