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




  Format name : Promizer 2.0 packer format
Created by : Franck Hulsmann (MC68000/Masque)

Note : It's more or less the same structure as PM18a. The 'only' great difference is the repacking of the Notes (no more like ptk). thus, all the crap (!) about the finetuned value in PM18a are no more in this version. Periods are replaced by relative note numbers. Far easier to handle when converting :)

Sources :
*
Two ripped PM20 from various cracktro ..
* "PM20.Drd" sent by Gryzor (Thx !). Bubble Bobble rules :)



OFFSET
SIZE (bytes)
COMMENT
0
-
-
-
-
13E6h
-
-
-
-
144Eh
1450h
-
1452h
13E6h
-
-
-
-
48h
-
-
-
-
2
2
-
80h
- Replay routine and, certainly, near the end of this block, some unidentified bytes. Since I could manage without these to convert, I guess they are not that much important
- all the 36 note pitch (similar to ptk's). Each is saved as a word. It's not much use to know this, but there are so many unclear bytes in this format, that I welcome every small "victory" like this :)
- Number of pattern (REAL !)
- "used" size of the pattern table. Divide by 2 to get pattern list size ...
- 64 word pattern table

The following is repeated 31 times
with 8 bytes description for one sample
1552h
1554h
1555h
1556h
1558h
2
1
1
2
2
- Sample Size / 2
- Finetune (0 -> 1Eh) (*2 !)
- Volume (0->40h)
- Loop Size / 2
- Loop Start / 2


164Ah
-
164Eh
-
4
-
4
-
- Address of sample data + $144E
($144E is the number of pattern address)
- Address of the "reference table" + $144E
Note : These two dword give us the size of the "reference table" when substracting. ($164A - $164E)

1652h
-
-
-
-
-
-
-
-
-
-
-
-
$144Eh+$164Eh
-
-
-
-
-
-
?
-
-
-
-
-
-
-
-
-
-
-
-
???
-
-
-
-
-
-
- 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.
- 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). The other way to get the size is described upward

Note Packing :

       0000-0000  0000-0000  0000-0000  0000-0000
       ||    |||  |       |  |  | |  |  |       |
       | \  / ||   \     /   |  |  \/    \     /
       |sample||   relative   \/ effect  effect
       |      ||   note nbr unused       value
    unused   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 : (PM20)
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


?!?
-
4
-
- Four empty bytes as in PM18a. Still not figured out their meaning !

  • Next come the sample datas. We got two ways to find the starting address. We could follow step by step, as described here, but with a lot of calculating ... . Now, there is this long byte in the description that I find very useful for the job. I use this way below. So, first there is less calculating, but also, I think it's FAR safer that way !


  • $144Eh+$164Ah
    ?
    - Sample datas
    Note : It seems Gryzor's ProWizard adds four empty bytes here when ripping ... . The original packer, promizer 2.0, doesn't.

     

    Click "back" to go back :)