| |
Format name
: PhaPacker (also called ProPacker V1.0 by NoiseConverter & Exotic Ripper)
(also called HanniPacker and/or StrangePlayer)
Created by : Azatoth / Phenomena
Sources :
* "In The Kitchen" demo by Anarchy
* "Deja Vu" demo by Anarchy
The following is repeated
31 times
with 14 bytes description for one sample
|
OFFSET
|
SIZE (bytes)
|
COMMENT
|
|
0
2
3
4
6
8
Ch
Dh
|
2
1
1
2
2
4
1
1
|
- Sample Size / 2
- ?!?
- Volume (0 - 40h)
- Loop Start / 2
- Loop Size / 2
- Address of this sample
- finetune - $B (?seems ok?)
- ?!?
|
|
1B2h
-
-
-
-
-
1C0h
|
Eh
-
-
-
-
-
200h
|
- ?!?!?!? Couldn't understand nothing
out of these bytes. Though, it's fairly safe to say that there might
be the number of pattern in pattern list ... . It's possible to
convert without this info, but it's VERY hard !
- pattern list (128 dword) |
it's a table of pointers which points at the adresses of the pattern
data in the "PhaPacked" file. So, the pattern 0 will be the one starting
right after the smp data. Beware of the unused patterns when converting
!
stored the same way as Protracker
Stored like protracker .. meaning:
row 01: voice 1 | voice 2 | voice 3 | voice 4
row 02: voice 1 | voice 2 | voice 3 | voice 4
...
each voice is 4 bytes (ot two bytes .. see below)
Note Packing :
* case 1:
0000-0000 0000-0000
\ / \ /
$ff value
|
If the first byte is $ff, then the following byte is the number of
times the previous value in THIS row will be re-used. Well, in fact,
it's ($ff-value) number of times !
exemple :
01-02-0A-0A 00-00-0F-06 02-00-00-37 FF-F5
1st four bytes : Sample #1, Note #1, Fx Vol Slide, FxArg $0A.
2nd four bytes : no sample, no note, Fx Set Speed, FxArg $06.
3rd four bytes : sample #2, no note, no Fx or arpeggio,
FxArg $37.
4th block : $ff meaning previous block (02-00-00-37) will
be repeated FF-F5=0A times IN THE VOICE #3 !!!
|
* case 2:
0000-0000 0000-0000 0000-0000 0000-0000
||\ / \ / | | \ / \ /
||sample relative \/ Fx Fx Arg
||number note unused
|| number
||
description bits, both set to 0 in this case
|
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 : (PHA)
C-1 to B-1 : 02,04,06,08,0a,0c,0e,10,13,15,17,19
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
|
|
|