Promizer v1.0c format Created by MC68000 / TECH (Frank Hlsmann) Analysed by Asle / ReDoX (asle@mygale.org) (NOTE: almost the very same as PM18a save that ALL the offsets are 4 bytes) (shorter here ...) Source : - "Flower Power" demo by Anarchy Offset size (byte) Comment ------ ----------- ------- 0 4452 (1164h) 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 very important. 4452 4 Number of bytes to add to get the sample data (1164h) starting address (so, it's 4456+ "this value"). (SDAV - Sample Data Address Value) RMQ: This info could be of great value when ripping, however, I couldn't find any interrest for converting ... . 4456 4 Size of the pattern data, which starts at address (1168h) 1466h. (WPS - Whole Patterns Size) *************************************** * the following is repeated 31 times * * with 8 bytes description for 1 smp * ****************************************************** * 4460 (116Ch) 2 Sample Size / 2 * 4462 (116Eh) 1 Finetune (0 -> F) * 4463 (116Fh) 1 Volume (0 - 40h) * 4464 (1170h) 2 Loop Start / 2 * 4466 (1172h) 2 Loop Size / 2 * * ****************************************************** 4708 2 word. (NOP) Number of pattern *4 (1264h) 4710 512 pattern table. It's the starting address of each (1266h) pattern from $1466. Pattern $00 address, in this list, will be $00000000. 5222 WPS pattern data. Each pattern is 512 bytes long. Though, (1466h) 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. 5222+ ? the "reference table" which contains the standard WPS 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). * Here's a quick description of these four bytes (like ptk ...) _____byte 1_____ byte2_ _____byte 3_____ byte4_ / / / / 0000 0000-00000000 0000 0000-00000000 Upper four 12 bits for Lower four Effect command. bits of sam- note period. bits of sam- ple number. ple number. Note period table 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 * NOTE: This period table is only valid for samples with a finetune set to 0 !. Promizer 1.8a saves HERE the fintuned values !. So, here follows the lists of the period tables for each tuning, well, not HERE :), but at the end of this file ... . 5222+WPS 4 Four empty bytes ... . Surely they have a very good reason for beeing here, but, for now, it's beyond my understanding :(. (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 !. ) 4456+SDAV ? Sample datas. (The address "4456" is not an error ..) (1168h) I explain this a bit upward. Follow Sample datas stored like ProTracker. Nothing is packed.. --------------------- * Period tables for each tuning (extracted from PT-play.s written by Peter "CRAYON" Hanning / Mushroom Studio !). It's the official Protracker V2.1A Playroutine .. . tuning 0: (already written above, so check there for this one) Tuning 1: 850,802,757,715,674,637,601,567,535,505,477,450 425,401,379,357,337,318,300,284,268,253,239,225 213,201,189,179,169,159,150,142,134,126,119,113 Tuning 2: 844,796,752,709,670,632,597,563,532,502,474,447 422,398,376,355,335,316,298,282,266,251,237,224 211,199,188,177,167,158,149,141,133,125,118,112 Tuning 3: 838,791,746,704,665,628,592,559,528,498,470,444 419,395,373,352,332,314,296,280,264,249,235,222 209,198,187,176,166,157,148,140,132,125,118,111 Tuning 4: 832,785,741,699,660,623,588,555,524,495,467,441 416,392,370,350,330,312,294,278,262,247,233,220 208,196,185,175,165,156,147,139,131,124,117,110 Tuning 5: 826,779,736,694,655,619,584,551,520,491,463,437 413,390,368,347,328,309,292,276,260,245,232,219 206,195,184,174,164,155,146,138,130,123,116,109 Tuning 6: 820,774,730,689,651,614,580,547,516,487,460,434 410,387,365,345,325,307,290,274,258,244,230,217 205,193,183,172,163,154,145,137,129,122,115,109 Tuning 7: 814,768,725,684,646,610,575,543,513,484,457,431 407,384,363,342,323,305,288,272,256,242,228,216 204,192,181,171,161,152,144,136,128,121,114,108 Tuning -8: 907,856,808,762,720,678,640,604,570,538,508,480 453,428,404,381,360,339,320,302,285,269,254,240 226,214,202,190,180,170,160,151,143,135,127,120 Tuning -7: 900,850,802,757,715,675,636,601,567,535,505,477 450,425,401,379,357,337,318,300,284,268,253,238 225,212,200,189,179,169,159,150,142,134,126,119 Tuning -6: 894,844,796,752,709,670,632,597,563,532,502,474 447,422,398,376,355,335,316,298,282,266,251,237 223,211,199,188,177,167,158,149,141,133,125,118 Tuning -5: 887,838,791,746,704,665,628,592,559,528,498,470 444,419,395,373,352,332,314,296,280,264,249,235 222,209,198,187,176,166,157,148,140,132,125,118 Tuning -4: 881,832,785,741,699,660,623,588,555,524,494,467 441,416,392,370,350,330,312,294,278,262,247,233 220,208,196,185,175,165,156,147,139,131,123,117 Tuning -3: 875,826,779,736,694,655,619,584,551,520,491,463 437,413,390,368,347,328,309,292,276,260,245,232 219,206,195,184,174,164,155,146,138,130,123,116 Tuning -2: 868,820,774,730,689,651,614,580,547,516,487,460 434,410,387,365,345,325,307,290,274,258,244,230 217,205,193,183,172,163,154,145,137,129,122,115 Tuning -1: 862,814,768,725,684,646,610,575,543,513,484,457 431,407,384,363,342,323,305,288,272,256,242,228 216,203,192,181,171,161,152,144,136,128,121,114