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