@modplayjs/fmt-prowizard 0.0.0-stage → 0.2.1

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.
Files changed (110) hide show
  1. package/README.md +42 -2
  2. package/dist/index.d.ts +3 -0
  3. package/dist/index.d.ts.map +1 -0
  4. package/dist/index.js +7 -0
  5. package/dist/index.js.map +1 -0
  6. package/dist/prowiz.d.ts +44 -0
  7. package/dist/prowiz.d.ts.map +1 -0
  8. package/dist/prowiz.js +157 -0
  9. package/dist/prowiz.js.map +1 -0
  10. package/dist/ptktable.d.ts +5 -0
  11. package/dist/ptktable.d.ts.map +1 -0
  12. package/dist/ptktable.js +49 -0
  13. package/dist/ptktable.js.map +1 -0
  14. package/dist/pw-ac1d.d.ts +4 -0
  15. package/dist/pw-ac1d.d.ts.map +1 -0
  16. package/dist/pw-ac1d.js +133 -0
  17. package/dist/pw-ac1d.js.map +1 -0
  18. package/dist/pw-di.d.ts +4 -0
  19. package/dist/pw-di.d.ts.map +1 -0
  20. package/dist/pw-di.js +177 -0
  21. package/dist/pw-di.js.map +1 -0
  22. package/dist/pw-eureka.d.ts +4 -0
  23. package/dist/pw-eureka.d.ts.map +1 -0
  24. package/dist/pw-eureka.js +171 -0
  25. package/dist/pw-eureka.js.map +1 -0
  26. package/dist/pw-fcm.d.ts +4 -0
  27. package/dist/pw-fcm.d.ts.map +1 -0
  28. package/dist/pw-fcm.js +102 -0
  29. package/dist/pw-fcm.js.map +1 -0
  30. package/dist/pw-fuchs.d.ts +4 -0
  31. package/dist/pw-fuchs.d.ts.map +1 -0
  32. package/dist/pw-fuchs.js +139 -0
  33. package/dist/pw-fuchs.js.map +1 -0
  34. package/dist/pw-heatseek.d.ts +4 -0
  35. package/dist/pw-heatseek.d.ts.map +1 -0
  36. package/dist/pw-heatseek.js +197 -0
  37. package/dist/pw-heatseek.js.map +1 -0
  38. package/dist/pw-hrt.d.ts +4 -0
  39. package/dist/pw-hrt.d.ts.map +1 -0
  40. package/dist/pw-hrt.js +104 -0
  41. package/dist/pw-hrt.js.map +1 -0
  42. package/dist/pw-ksm.d.ts +4 -0
  43. package/dist/pw-ksm.d.ts.map +1 -0
  44. package/dist/pw-ksm.js +212 -0
  45. package/dist/pw-ksm.js.map +1 -0
  46. package/dist/pw-mp.d.ts +6 -0
  47. package/dist/pw-mp.d.ts.map +1 -0
  48. package/dist/pw-mp.js +171 -0
  49. package/dist/pw-mp.js.map +1 -0
  50. package/dist/pw-np12.d.ts +6 -0
  51. package/dist/pw-np12.d.ts.map +1 -0
  52. package/dist/pw-np12.js +234 -0
  53. package/dist/pw-np12.js.map +1 -0
  54. package/dist/pw-np3.d.ts +4 -0
  55. package/dist/pw-np3.d.ts.map +1 -0
  56. package/dist/pw-np3.js +218 -0
  57. package/dist/pw-np3.js.map +1 -0
  58. package/dist/pw-p40.d.ts +4 -0
  59. package/dist/pw-p40.d.ts.map +1 -0
  60. package/dist/pw-p40.js +221 -0
  61. package/dist/pw-p40.js.map +1 -0
  62. package/dist/pw-plugin.d.ts +8 -0
  63. package/dist/pw-plugin.d.ts.map +1 -0
  64. package/dist/pw-plugin.js +27 -0
  65. package/dist/pw-plugin.js.map +1 -0
  66. package/dist/pw-pp.d.ts +8 -0
  67. package/dist/pw-pp.d.ts.map +1 -0
  68. package/dist/pw-pp.js +341 -0
  69. package/dist/pw-pp.js.map +1 -0
  70. package/dist/pw-skyt.d.ts +4 -0
  71. package/dist/pw-skyt.d.ts.map +1 -0
  72. package/dist/pw-skyt.js +116 -0
  73. package/dist/pw-skyt.js.map +1 -0
  74. package/dist/pw-starpack.d.ts +4 -0
  75. package/dist/pw-starpack.d.ts.map +1 -0
  76. package/dist/pw-starpack.js +253 -0
  77. package/dist/pw-starpack.js.map +1 -0
  78. package/dist/pw-theplayer.d.ts +6 -0
  79. package/dist/pw-theplayer.d.ts.map +1 -0
  80. package/dist/pw-theplayer.js +367 -0
  81. package/dist/pw-theplayer.js.map +1 -0
  82. package/dist/pw-tp1.d.ts +4 -0
  83. package/dist/pw-tp1.d.ts.map +1 -0
  84. package/dist/pw-tp1.js +162 -0
  85. package/dist/pw-tp1.js.map +1 -0
  86. package/dist/pw-tp3.d.ts +6 -0
  87. package/dist/pw-tp3.d.ts.map +1 -0
  88. package/dist/pw-tp3.js +217 -0
  89. package/dist/pw-tp3.js.map +1 -0
  90. package/dist/pw-unic.d.ts +8 -0
  91. package/dist/pw-unic.d.ts.map +1 -0
  92. package/dist/pw-unic.js +285 -0
  93. package/dist/pw-unic.js.map +1 -0
  94. package/dist/pw-unic2.d.ts +4 -0
  95. package/dist/pw-unic2.d.ts.map +1 -0
  96. package/dist/pw-unic2.js +173 -0
  97. package/dist/pw-unic2.js.map +1 -0
  98. package/dist/pw-wn.d.ts +4 -0
  99. package/dist/pw-wn.d.ts.map +1 -0
  100. package/dist/pw-wn.js +82 -0
  101. package/dist/pw-wn.js.map +1 -0
  102. package/dist/pw-xann.d.ts +4 -0
  103. package/dist/pw-xann.d.ts.map +1 -0
  104. package/dist/pw-xann.js +220 -0
  105. package/dist/pw-xann.js.map +1 -0
  106. package/dist/pw-zen.d.ts +4 -0
  107. package/dist/pw-zen.d.ts.map +1 -0
  108. package/dist/pw-zen.js +162 -0
  109. package/dist/pw-zen.js.map +1 -0
  110. 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.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
6
- }
3
+ "version": "0.2.1",
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.1",
23
+ "@modplayjs/fmt-mod": "^0.2.1"
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
+ }