| |
Format name
: Promizer 4.0 packer format
Created by : Franck Hulsmann (MC68000/Masque)
(1994)
Note : Very similar to the version 2.0
of the same named packer. I noticed five main modifications ... . First,
there's no more this replay code routine at the beginning :). Second,
the finetune is no more *2. Third, the sample number is no more *4 in
the packed notes. fourth, the releative note number is no more *2 (in
the packed notes too). and last, the note 00-00h (empty note) is no more
saved in the reference table. There's also these 4 empty bytes before
the sample data which have been removed ...
Sources :
* Two PM40 sent by Gryzor (Thx !)
|
OFFSET
|
SIZE (bytes)
|
COMMENT
|
|
0
4
7
8
-
-
-
-
-
|
4
3
1
100h
-
-
-
-
-
|
- "PM40" Id
- ?!? ($00-00-00)
- size of the pattern list
- 128 words pattern table. It 'seems' to be * 200h .. but then,
what are all those $98 in PM40.Numb_Movement ?!?!?. I guess
it's not very important if you handle this list like Gryzor
did ... generate an entirely new pattern list starting at 0
|
The following is repeated 31 times
with 8 bytes description for one sample
|
108h
10Ah
10Bh
10Ch
10Eh
|
2
1
1
2
2
|
- Sample Size / 2
- Finetune (0 -> Fh)
- Volume (0->40h)
- Loop Size / 2
- Loop Start / 2
|
|
200h
-
204h
-
208h
-
-
-
-
-
-
-
-
-
-
-
-
-
-
ADD#2
-
-
-
-
-
|
4
-
4
-
?!?
-
-
-
-
-
-
-
-
-
-
-
-
-
-
?!?
-
-
-
-
-
|
- Address of sample data + 4
(I call it ADD#1)
- Address of the "reference table" + 8
(I call it ADD#2)
- pattern data. Each pattern is 512 bytes long. Though, that's the
theory because some patterns may NOT be that long. In fact, you'll
have to check if the note isn't a PATTERN BREAK command or a PATTERN
JUMP. If so, the pattern ends and another begins ... therefore,
its size is less than the 512 'standard bytes'. Now, whatever the
pattern size is, its meaning does not vary :). In fact, those data
are some values which refer to a "reference table" (description
is right below).
RMQ: first value is 00h. it is an empty note which is NOT saved
in the reference table !
- the "reference table" which contains the standard PTK pattern
data. Its size is easy to calculate since it consists of blocks
of 4 bytes, knowing that there are 'n' blocks ('n' is the highest
value in the pattern data) |
Note Packing :
0000-0000 0000-0000 0000-0000 0000-0000
|||| | | | |||| | | | |
||| \ / \ / |||| \/ \ /
|||sample relative ||/ effect effect
||| note nbr |/ value
\\\ /
---- unused --------
|
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
|
becomes : (PM40)
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
|
|
ADD#1
|
?!?
|
- Sample datas. Stored like PTK |
|
|