@modplayjs/fmt-prowizard 0.0.0-stage → 0.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +42 -2
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -0
- package/dist/prowiz.d.ts +44 -0
- package/dist/prowiz.d.ts.map +1 -0
- package/dist/prowiz.js +157 -0
- package/dist/prowiz.js.map +1 -0
- package/dist/ptktable.d.ts +5 -0
- package/dist/ptktable.d.ts.map +1 -0
- package/dist/ptktable.js +49 -0
- package/dist/ptktable.js.map +1 -0
- package/dist/pw-ac1d.d.ts +4 -0
- package/dist/pw-ac1d.d.ts.map +1 -0
- package/dist/pw-ac1d.js +133 -0
- package/dist/pw-ac1d.js.map +1 -0
- package/dist/pw-di.d.ts +4 -0
- package/dist/pw-di.d.ts.map +1 -0
- package/dist/pw-di.js +177 -0
- package/dist/pw-di.js.map +1 -0
- package/dist/pw-eureka.d.ts +4 -0
- package/dist/pw-eureka.d.ts.map +1 -0
- package/dist/pw-eureka.js +171 -0
- package/dist/pw-eureka.js.map +1 -0
- package/dist/pw-fcm.d.ts +4 -0
- package/dist/pw-fcm.d.ts.map +1 -0
- package/dist/pw-fcm.js +102 -0
- package/dist/pw-fcm.js.map +1 -0
- package/dist/pw-fuchs.d.ts +4 -0
- package/dist/pw-fuchs.d.ts.map +1 -0
- package/dist/pw-fuchs.js +139 -0
- package/dist/pw-fuchs.js.map +1 -0
- package/dist/pw-heatseek.d.ts +4 -0
- package/dist/pw-heatseek.d.ts.map +1 -0
- package/dist/pw-heatseek.js +197 -0
- package/dist/pw-heatseek.js.map +1 -0
- package/dist/pw-hrt.d.ts +4 -0
- package/dist/pw-hrt.d.ts.map +1 -0
- package/dist/pw-hrt.js +104 -0
- package/dist/pw-hrt.js.map +1 -0
- package/dist/pw-ksm.d.ts +4 -0
- package/dist/pw-ksm.d.ts.map +1 -0
- package/dist/pw-ksm.js +212 -0
- package/dist/pw-ksm.js.map +1 -0
- package/dist/pw-mp.d.ts +6 -0
- package/dist/pw-mp.d.ts.map +1 -0
- package/dist/pw-mp.js +171 -0
- package/dist/pw-mp.js.map +1 -0
- package/dist/pw-np12.d.ts +6 -0
- package/dist/pw-np12.d.ts.map +1 -0
- package/dist/pw-np12.js +234 -0
- package/dist/pw-np12.js.map +1 -0
- package/dist/pw-np3.d.ts +4 -0
- package/dist/pw-np3.d.ts.map +1 -0
- package/dist/pw-np3.js +218 -0
- package/dist/pw-np3.js.map +1 -0
- package/dist/pw-p40.d.ts +4 -0
- package/dist/pw-p40.d.ts.map +1 -0
- package/dist/pw-p40.js +221 -0
- package/dist/pw-p40.js.map +1 -0
- package/dist/pw-plugin.d.ts +8 -0
- package/dist/pw-plugin.d.ts.map +1 -0
- package/dist/pw-plugin.js +27 -0
- package/dist/pw-plugin.js.map +1 -0
- package/dist/pw-pp.d.ts +8 -0
- package/dist/pw-pp.d.ts.map +1 -0
- package/dist/pw-pp.js +341 -0
- package/dist/pw-pp.js.map +1 -0
- package/dist/pw-skyt.d.ts +4 -0
- package/dist/pw-skyt.d.ts.map +1 -0
- package/dist/pw-skyt.js +116 -0
- package/dist/pw-skyt.js.map +1 -0
- package/dist/pw-starpack.d.ts +4 -0
- package/dist/pw-starpack.d.ts.map +1 -0
- package/dist/pw-starpack.js +253 -0
- package/dist/pw-starpack.js.map +1 -0
- package/dist/pw-theplayer.d.ts +6 -0
- package/dist/pw-theplayer.d.ts.map +1 -0
- package/dist/pw-theplayer.js +367 -0
- package/dist/pw-theplayer.js.map +1 -0
- package/dist/pw-tp1.d.ts +4 -0
- package/dist/pw-tp1.d.ts.map +1 -0
- package/dist/pw-tp1.js +162 -0
- package/dist/pw-tp1.js.map +1 -0
- package/dist/pw-tp3.d.ts +6 -0
- package/dist/pw-tp3.d.ts.map +1 -0
- package/dist/pw-tp3.js +217 -0
- package/dist/pw-tp3.js.map +1 -0
- package/dist/pw-unic.d.ts +8 -0
- package/dist/pw-unic.d.ts.map +1 -0
- package/dist/pw-unic.js +285 -0
- package/dist/pw-unic.js.map +1 -0
- package/dist/pw-unic2.d.ts +4 -0
- package/dist/pw-unic2.d.ts.map +1 -0
- package/dist/pw-unic2.js +173 -0
- package/dist/pw-unic2.js.map +1 -0
- package/dist/pw-wn.d.ts +4 -0
- package/dist/pw-wn.d.ts.map +1 -0
- package/dist/pw-wn.js +82 -0
- package/dist/pw-wn.js.map +1 -0
- package/dist/pw-xann.d.ts +4 -0
- package/dist/pw-xann.d.ts.map +1 -0
- package/dist/pw-xann.js +220 -0
- package/dist/pw-xann.js.map +1 -0
- package/dist/pw-zen.d.ts +4 -0
- package/dist/pw-zen.d.ts.map +1 -0
- package/dist/pw-zen.js +162 -0
- package/dist/pw-zen.js.map +1 -0
- package/package.json +49 -4
package/dist/pw-zen.js
ADDED
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
// SPDX-License-Identifier: BSD-3-Clause
|
|
2
|
+
// Copyright (c) 2026 Bitti09 — modplayjs contributors
|
|
3
|
+
// Ported from: libxmp src/loaders/prowizard/zen.c (Zen Packer) —
|
|
4
|
+
// depack_zen :32-158, test_zen :160-226.
|
|
5
|
+
import { ptkTable, ptkIsValidNote } from './ptktable.js';
|
|
6
|
+
import { readmem16b, readmem32b, moveData, writeZero, pwReadTitle } from './prowiz.js';
|
|
7
|
+
const PW_MOD_MAGIC = 0x4d2e4b2e; // 'M.K.'
|
|
8
|
+
function put8(out, b) { out.push(b & 0xff); }
|
|
9
|
+
function put16b(out, v) { out.push((v >> 8) & 0xff, v & 0xff); }
|
|
10
|
+
function put32b(out, v) {
|
|
11
|
+
out.push((v >>> 24) & 0xff, (v >> 16) & 0xff, (v >> 8) & 0xff, v & 0xff);
|
|
12
|
+
}
|
|
13
|
+
/** depack_zen (zen.c:32-158). */
|
|
14
|
+
function depackZen(data, start) {
|
|
15
|
+
let pos = start;
|
|
16
|
+
const out = [];
|
|
17
|
+
const u8 = () => data[pos++] ?? 0;
|
|
18
|
+
const u16 = () => { const v = readmem16b(data, pos); pos += 2; return v; };
|
|
19
|
+
const u32 = () => { const v = readmem32b(data, pos); pos += 4; return v; };
|
|
20
|
+
const ptableAddr = u32(); // pattern table address
|
|
21
|
+
const patMax = u8(); // patmax
|
|
22
|
+
const patPos = u8(); // size of pattern table
|
|
23
|
+
if (patPos >= 128 || patMax >= 128)
|
|
24
|
+
throw new Error('zen: counts too large');
|
|
25
|
+
writeZero(out, 20); // title
|
|
26
|
+
// Sample headers (zen.c:52-77)
|
|
27
|
+
let ssize = 0;
|
|
28
|
+
let sdataAddr = 999999;
|
|
29
|
+
for (let i = 0; i < 31; i++) {
|
|
30
|
+
writeZero(out, 22); // sample name
|
|
31
|
+
const finetune = Math.trunc(u16() / 0x48); // finetune (zen.c:56)
|
|
32
|
+
u8();
|
|
33
|
+
const vol = u8();
|
|
34
|
+
const size = u16(); // sample size
|
|
35
|
+
ssize += size * 2;
|
|
36
|
+
put16b(out, size);
|
|
37
|
+
put8(out, finetune);
|
|
38
|
+
put8(out, vol);
|
|
39
|
+
const loopSize = u16(); // loop size
|
|
40
|
+
const k = u32(); // sample start addr
|
|
41
|
+
if (k < sdataAddr)
|
|
42
|
+
sdataAddr = k;
|
|
43
|
+
// loop start address → (loopAddr - startAddr) / 2 (zen.c:70-72)
|
|
44
|
+
const j = Math.trunc((u32() - k) / 2);
|
|
45
|
+
put16b(out, j);
|
|
46
|
+
put16b(out, loopSize);
|
|
47
|
+
}
|
|
48
|
+
put8(out, patPos);
|
|
49
|
+
put8(out, 0x7f); // ntk byte
|
|
50
|
+
// Pattern table (zen.c:82-85)
|
|
51
|
+
pos = start + ptableAddr;
|
|
52
|
+
const paddr = [];
|
|
53
|
+
for (let i = 0; i < patPos; i++)
|
|
54
|
+
paddr.push(u32());
|
|
55
|
+
// Dedup pattern list (zen.c:88-105)
|
|
56
|
+
const ptable = new Array(128).fill(0);
|
|
57
|
+
const paddr2 = new Array(128).fill(0); // C zero-fills paddr2[128]
|
|
58
|
+
let c4 = 0;
|
|
59
|
+
for (let i = 0; i < patPos; i++) {
|
|
60
|
+
if (i === 0) {
|
|
61
|
+
ptable[0] = 0;
|
|
62
|
+
paddr2[0] = paddr[0];
|
|
63
|
+
c4++;
|
|
64
|
+
continue;
|
|
65
|
+
}
|
|
66
|
+
let j = 0;
|
|
67
|
+
for (; j < i; j++) {
|
|
68
|
+
if (paddr[i] === paddr[j]) {
|
|
69
|
+
ptable[i] = ptable[j];
|
|
70
|
+
break;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
if (j === i) {
|
|
74
|
+
paddr2[c4] = paddr[i];
|
|
75
|
+
ptable[i] = c4;
|
|
76
|
+
c4++;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
for (let i = 0; i < 128; i++)
|
|
80
|
+
put8(out, ptable[i]);
|
|
81
|
+
put32b(out, PW_MOD_MAGIC);
|
|
82
|
+
// Pattern data (zen.c:110-145): each group is 4 bytes; c1 is the row
|
|
83
|
+
// index the cell belongs to. C quirk (zen.c:143): 'j = c1' CLOBBERS the
|
|
84
|
+
// loop counter, so the file pointer advances by (c1 + 1) cells per
|
|
85
|
+
// iteration — skip semantics, not a plain sequential read.
|
|
86
|
+
for (let i = 0; i <= patMax; i++) {
|
|
87
|
+
const pat = new Uint8Array(1024);
|
|
88
|
+
pos = start + paddr2[i];
|
|
89
|
+
let j = 0;
|
|
90
|
+
while (j < 256) {
|
|
91
|
+
const c1 = u8();
|
|
92
|
+
const c2 = u8();
|
|
93
|
+
const c3 = u8();
|
|
94
|
+
const c4v = u8();
|
|
95
|
+
const note = Math.trunc((c2 & 0x7f) / 2);
|
|
96
|
+
if (!ptkIsValidNote(note))
|
|
97
|
+
throw new Error('zen: invalid note');
|
|
98
|
+
const fxp = c4v;
|
|
99
|
+
const ins = ((c2 << 4) & 0x10) | ((c3 >> 4) & 0x0f);
|
|
100
|
+
const fxt = c3 & 0x0f;
|
|
101
|
+
const p = c1 * 4;
|
|
102
|
+
pat[p] = (ins & 0xf0) | ptkTable[note][0];
|
|
103
|
+
pat[p + 1] = ptkTable[note][1];
|
|
104
|
+
pat[p + 2] = fxt | ((ins << 4) & 0xf0);
|
|
105
|
+
pat[p + 3] = fxp;
|
|
106
|
+
j = c1; // zen.c:143 — loop counter clobbered by the row index
|
|
107
|
+
j++; // for-loop increment applies to the clobbered value
|
|
108
|
+
}
|
|
109
|
+
for (let k = 0; k < 1024; k++)
|
|
110
|
+
out.push(pat[k]);
|
|
111
|
+
}
|
|
112
|
+
// Sample data (zen.c:150-153)
|
|
113
|
+
moveData(data, start + sdataAddr, out, ssize);
|
|
114
|
+
return Uint8Array.from(out);
|
|
115
|
+
}
|
|
116
|
+
/** test_zen (zen.c:160-226). */
|
|
117
|
+
function testZen(data, start) {
|
|
118
|
+
const s = data.length - start;
|
|
119
|
+
if (s < 9 + 16 * 31)
|
|
120
|
+
return 9 + 16 * 31 - s;
|
|
121
|
+
// test #2 (zen.c:166-170)
|
|
122
|
+
const patOfs = readmem32b(data, start);
|
|
123
|
+
if (patOfs < 502 || patOfs > 2163190)
|
|
124
|
+
return -1;
|
|
125
|
+
for (let i = 0; i < 31; i++) {
|
|
126
|
+
const d = start + 16 * i;
|
|
127
|
+
if (data[d + 9] > 0x40)
|
|
128
|
+
return -1;
|
|
129
|
+
// finetune: word at d+6 must be a multiple of 0x48 (zen.c:173-176)
|
|
130
|
+
if (readmem16b(data, d + 6) % 72 !== 0)
|
|
131
|
+
return -1;
|
|
132
|
+
}
|
|
133
|
+
// smp sizes (zen.c:180-196)
|
|
134
|
+
for (let i = 0; i < 31; i++) {
|
|
135
|
+
const size = readmem16b(data, start + 10 + i * 16) << 1;
|
|
136
|
+
const lsize = readmem16b(data, start + 12 + i * 16) << 1;
|
|
137
|
+
const sdata = readmem32b(data, start + 14 + i * 16);
|
|
138
|
+
if (size > 0xffff || lsize > 0xffff)
|
|
139
|
+
return -1;
|
|
140
|
+
if (sdata < patOfs)
|
|
141
|
+
return -1;
|
|
142
|
+
}
|
|
143
|
+
// Pattern list size (zen.c:199-202)
|
|
144
|
+
const len = data[start + 5];
|
|
145
|
+
if (len === 0 || len > 0x7f)
|
|
146
|
+
return -1;
|
|
147
|
+
// PW_REQUEST_DATA(s, pat_ofs + len * 4 + 4)
|
|
148
|
+
if (s < patOfs + len * 4 + 4)
|
|
149
|
+
return patOfs + len * 4 + 4 - s;
|
|
150
|
+
// End of pattern list must be $FFFFFFFF (zen.c:205-208)
|
|
151
|
+
if (readmem32b(data, start + patOfs + len * 4) !== 0xffffffff)
|
|
152
|
+
return -1;
|
|
153
|
+
pwReadTitle(null, 0);
|
|
154
|
+
return 0;
|
|
155
|
+
}
|
|
156
|
+
/** pw_zen: "Zen Packer". */
|
|
157
|
+
export const pwZen = {
|
|
158
|
+
name: 'Zen Packer',
|
|
159
|
+
test: testZen,
|
|
160
|
+
depack: depackZen,
|
|
161
|
+
};
|
|
162
|
+
//# sourceMappingURL=pw-zen.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pw-zen.js","sourceRoot":"","sources":["../src/pw-zen.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,51 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@modplayjs/fmt-prowizard",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"
|
|
5
|
-
"
|
|
6
|
-
|
|
3
|
+
"version": "0.2.2",
|
|
4
|
+
"description": "ProWizard packed-MOD depackers for modplayjs (libxmp loaders/prowizard port).",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "dist/index.js",
|
|
7
|
+
"types": "dist/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"types": "./dist/index.d.ts",
|
|
11
|
+
"import": "./dist/index.js"
|
|
12
|
+
}
|
|
13
|
+
},
|
|
14
|
+
"files": [
|
|
15
|
+
"dist"
|
|
16
|
+
],
|
|
17
|
+
"scripts": {
|
|
18
|
+
"build": "tsc -p tsconfig.build.json",
|
|
19
|
+
"typecheck": "tsc -p tsconfig.json --noEmit"
|
|
20
|
+
},
|
|
21
|
+
"dependencies": {
|
|
22
|
+
"@modplayjs/core": "^0.2.2",
|
|
23
|
+
"@modplayjs/fmt-mod": "^0.2.2"
|
|
24
|
+
},
|
|
25
|
+
"keywords": [
|
|
26
|
+
"tracker",
|
|
27
|
+
"prowizard",
|
|
28
|
+
"propacker",
|
|
29
|
+
"theplayer",
|
|
30
|
+
"packed mod",
|
|
31
|
+
"libxmp",
|
|
32
|
+
"chiptune",
|
|
33
|
+
"audio",
|
|
34
|
+
"music"
|
|
35
|
+
],
|
|
36
|
+
"sideEffects": false,
|
|
37
|
+
"engines": {
|
|
38
|
+
"node": ">=18"
|
|
39
|
+
},
|
|
40
|
+
"repository": {
|
|
41
|
+
"type": "git",
|
|
42
|
+
"url": "git+https://github.com/modplayjs/modplayjs.git",
|
|
43
|
+
"directory": "packages/fmt-prowizard"
|
|
44
|
+
},
|
|
45
|
+
"bugs": "https://github.com/modplayjs/modplayjs/issues",
|
|
46
|
+
"homepage": "https://github.com/modplayjs/modplayjs#readme",
|
|
47
|
+
"license": "BSD-3-Clause",
|
|
48
|
+
"publishConfig": {
|
|
49
|
+
"registry": "https://npm.pkg.github.com"
|
|
50
|
+
}
|
|
51
|
+
}
|