@4bitlabs/sci0 2.2.0 → 2.3.0

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 CHANGED
@@ -1,6 +1,27 @@
1
- # `@4bitlabs/sci0`
2
-
3
- Library for parsing and rendering assets from [Sierra On-line's][sierra] [SCI-engine][sci0].
1
+ # @4bitlabs/sci0 [![License][license]][npm] [![NPM Version][version]][npm] ![Size][size] [![NPM Downloads][dl]][npm]
2
+
3
+ [npm]: https://www.npmjs.com/package/@4bitlabs/sci0
4
+ [version]: https://img.shields.io/npm/v/%404bitlabs%2Fsci0
5
+ [license]: https://img.shields.io/npm/l/%404bitlabs%2Fsci0
6
+ [dl]: https://img.shields.io/npm/dy/%404bitlabs%2Fsci0
7
+ [size]: https://img.shields.io/bundlephobia/min/%404bitlabs/sci0
8
+
9
+ Library for parsing and rendering assets from [Sierra On-line's][sierra] [<abbr title="Sierra Creative Interpreter">SCI</abbr>-engine][sci0].
10
+
11
+ ## Supported SCI0 resource types
12
+
13
+ | Type | Extract | Parse/Render | Write |
14
+ | ------ | :-----: | :----------: | :---: |
15
+ | View | ✅ | ✅ | ❌ |
16
+ | Pic | ✅ | ✅ | ❌ |
17
+ | Script | ✅ | ❌ | ❌ |
18
+ | Text | ✅ | ✅ | ❌ |
19
+ | Sound | ✅ | ❌ | ❌ |
20
+ | Memory | ✅ | ❌ | ❌ |
21
+ | Vocab | ✅ | ❌ | ❌ |
22
+ | Font | ✅ | ✅ | ❌ |
23
+ | Cursor | ✅ | ✅ | ❌ |
24
+ | Patch | ✅ | ❌ | ❌ |
4
25
 
5
26
  ## Parse `RESOURCE.MAP` file
6
27
 
@@ -70,20 +91,5 @@ const image = renderPixelData(visible, {
70
91
  });
71
92
  ```
72
93
 
73
- ## Supported Resource Types
74
-
75
- | ID | Type | Read | Write |
76
- | :-: | ------ | :--: | :---: |
77
- | `0` | View | ✅ | |
78
- | `1` | Pic | ✅ | |
79
- | `2` | Script | ❌ | |
80
- | `3` | Text | ✅ | |
81
- | `4` | Sound | ❌ | |
82
- | `5` | Memory | ❌ | |
83
- | `6` | Vocab | ❌ | |
84
- | `7` | Font | ✅ | |
85
- | `8` | Cursor | ✅ | |
86
- | `9` | Patch | ❌ | |
87
-
88
94
  [sierra]: https://en.wikipedia.org/wiki/Sierra_Entertainment
89
95
  [sci0]: http://sciwiki.sierrahelp.com/index.php/Sierra_Creative_Interpreter
@@ -59,7 +59,7 @@ const renderPic = (commands, options = {}) => {
59
59
  const color = data[x + y * cel.width];
60
60
  if (color === cel.keyColor)
61
61
  continue;
62
- screen.setPixel(x, y, color | (color << 4));
62
+ screen.setPixel(x, y, color);
63
63
  }
64
64
  break;
65
65
  }
@@ -1 +1 @@
1
- {"version":3,"file":"render-pic.js","sourceRoot":"","sources":["../../src/screen/render-pic.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"render-pic.js","sourceRoot":"","sources":["../../src/screen/render-pic.ts"],"names":[],"mappings":"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"}
@@ -3,5 +3,6 @@ export interface RenderResult {
3
3
  visible: IndexedPixelData;
4
4
  priority: IndexedPixelData;
5
5
  control: IndexedPixelData;
6
+ alpha: IndexedPixelData;
6
7
  }
7
8
  //# sourceMappingURL=render-result.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"render-result.d.ts","sourceRoot":"","sources":["../../src/screen/render-result.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAExD,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,gBAAgB,CAAC;IAC1B,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,OAAO,EAAE,gBAAgB,CAAC;CAC3B"}
1
+ {"version":3,"file":"render-result.d.ts","sourceRoot":"","sources":["../../src/screen/render-result.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAExD,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,gBAAgB,CAAC;IAC1B,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,OAAO,EAAE,gBAAgB,CAAC;IAC1B,KAAK,EAAE,gBAAgB,CAAC;CACzB"}
@@ -10,12 +10,13 @@ const createScreenBuffer = (forcePal, palettes) => {
10
10
  const visible = (0, image_1.createIndexedPixelData)(bufferWidth, bufferHeight);
11
11
  const priority = (0, image_1.createIndexedPixelData)(bufferWidth, bufferHeight);
12
12
  const control = (0, image_1.createIndexedPixelData)(bufferWidth, bufferHeight);
13
+ const alpha = (0, image_1.createIndexedPixelData)(bufferWidth, bufferHeight);
13
14
  visible.pixels.fill(0xff);
14
15
  priority.pixels.fill(0x00);
15
16
  control.pixels.fill(0x00);
16
17
  const setPixel = (x, y, color) => {
17
18
  const idx = bufferWidth * y + x;
18
- visible.pixels[idx] = color;
19
+ visible.pixels[idx] = (color & 0b1111) | (color << 4);
19
20
  };
20
21
  const plot = (x, y, drawMode, drawCodes) => {
21
22
  const idx = bufferWidth * y + x;
@@ -24,6 +25,7 @@ const createScreenBuffer = (forcePal, palettes) => {
24
25
  const palette = palettes[pal];
25
26
  const palIndex = drawCodes[0] % 40 >>> 0;
26
27
  visible.pixels[idx] = palette[palIndex];
28
+ alpha.pixels[idx] = 255;
27
29
  }
28
30
  if ((drawMode & draw_command_1.DrawMode.Priority) === draw_command_1.DrawMode.Priority) {
29
31
  priority.pixels[idx] = drawCodes[1];
@@ -34,13 +36,11 @@ const createScreenBuffer = (forcePal, palettes) => {
34
36
  };
35
37
  const isFillable = (x, y, drawMode) => {
36
38
  const idx = x + y * bufferWidth;
37
- /* TODO this also might not be 100% accurate.
38
- * When the visual layer is enabled, it might explicitly be looking for any white (0xf) pixel, rather than
39
- * an explicit [0xf,0xf] tuple.
40
- */
41
39
  const isVisible = (drawMode & draw_command_1.DrawMode.Visual) === draw_command_1.DrawMode.Visual;
42
40
  if (isVisible) {
43
- return visible.pixels[idx] === 0xff;
41
+ const dither = (x & 1) ^ (y & 1);
42
+ const val = visible.pixels[idx];
43
+ return 0xf === (dither ? val & 0xf : val >>> 4);
44
44
  }
45
45
  /* TODO not sure if this is correct… but it looks *okay*-ish.
46
46
  * SCI Companion seems to be able to recognize the difference between "never-touched" pixels and
@@ -53,7 +53,7 @@ const createScreenBuffer = (forcePal, palettes) => {
53
53
  (isControl && control.pixels[idx] === 0x00));
54
54
  };
55
55
  return [
56
- { visible, priority, control },
56
+ { visible, priority, control, alpha },
57
57
  {
58
58
  setPixel,
59
59
  brush: (0, sci0_screen_impl_1.createBrush)(plot, [bufferWidth, bufferHeight]),
@@ -1 +1 @@
1
- {"version":3,"file":"screen-buffer.js","sourceRoot":"","sources":["../../src/screen/screen-buffer.ts"],"names":[],"mappings":";;;AAAA,2CAAyD;AACzD,yDAA8E;AAE9E,yDAAkD;AAGlD,MAAM,WAAW,GAAG,GAAG,CAAC;AACxB,MAAM,YAAY,GAAG,GAAG,CAAC;AAElB,MAAM,kBAAkB,GAAG,CAChC,QAAmC,EACnC,QAA0D,EAClC,EAAE;IAC1B,MAAM,OAAO,GAAG,IAAA,8BAAsB,EAAC,WAAW,EAAE,YAAY,CAAC,CAAC;IAClE,MAAM,QAAQ,GAAG,IAAA,8BAAsB,EAAC,WAAW,EAAE,YAAY,CAAC,CAAC;IACnE,MAAM,OAAO,GAAG,IAAA,8BAAsB,EAAC,WAAW,EAAE,YAAY,CAAC,CAAC;IAElE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3B,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAE1B,MAAM,QAAQ,GAAe,CAAC,CAAS,EAAE,CAAS,EAAE,KAAa,EAAE,EAAE;QACnE,MAAM,GAAG,GAAG,WAAW,GAAG,CAAC,GAAG,CAAC,CAAC;QAChC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IAC9B,CAAC,CAAC;IAEF,MAAM,IAAI,GAAY,CAAC,CAAS,EAAE,CAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE;QAClE,MAAM,GAAG,GAAG,WAAW,GAAG,CAAC,GAAG,CAAC,CAAC;QAEhC,IAAI,CAAC,QAAQ,GAAG,uBAAQ,CAAC,MAAM,CAAC,KAAK,uBAAQ,CAAC,MAAM,EAAE,CAAC;YACrD,MAAM,GAAG,GAAG,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;YAClD,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;YAC9B,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YACzC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC1C,CAAC;QAED,IAAI,CAAC,QAAQ,GAAG,uBAAQ,CAAC,QAAQ,CAAC,KAAK,uBAAQ,CAAC,QAAQ,EAAE,CAAC;YACzD,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;QACtC,CAAC;QAED,IAAI,CAAC,QAAQ,GAAG,uBAAQ,CAAC,OAAO,CAAC,KAAK,uBAAQ,CAAC,OAAO,EAAE,CAAC;YACvD,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;QACrC,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,UAAU,GAAe,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE;QAChD,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC;QAEhC;;;WAGG;QACH,MAAM,SAAS,GAAG,CAAC,QAAQ,GAAG,uBAAQ,CAAC,MAAM,CAAC,KAAK,uBAAQ,CAAC,MAAM,CAAC;QACnE,IAAI,SAAS,EAAE,CAAC;YACd,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC;QACtC,CAAC;QAED;;;;WAIG;QACH,MAAM,UAAU,GAAG,CAAC,QAAQ,GAAG,uBAAQ,CAAC,QAAQ,CAAC,KAAK,uBAAQ,CAAC,QAAQ,CAAC;QACxE,MAAM,SAAS,GAAG,CAAC,QAAQ,GAAG,uBAAQ,CAAC,OAAO,CAAC,KAAK,uBAAQ,CAAC,OAAO,CAAC;QACrE,OAAO,CACL,CAAC,UAAU,IAAI,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC;YAC7C,CAAC,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,CAC5C,CAAC;IACJ,CAAC,CAAC;IAEF,OAAO;QACL,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE;QAC9B;YACE,QAAQ;YACR,KAAK,EAAE,IAAA,8BAAW,EAAC,IAAI,EAAE,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;YACrD,IAAI,EAAE,IAAA,kCAAe,EAAC,IAAI,EAAE,UAAU,EAAE,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;YACpE,IAAI,EAAE,IAAA,6BAAU,EAAC,IAAI,CAAC;SACvB;KACF,CAAC;AACJ,CAAC,CAAC;AAtEW,QAAA,kBAAkB,sBAsE7B"}
1
+ {"version":3,"file":"screen-buffer.js","sourceRoot":"","sources":["../../src/screen/screen-buffer.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@4bitlabs/sci0",
3
- "version": "2.2.0",
3
+ "version": "2.3.0",
4
4
  "description": "Library for parsing and rendering assets from Sierra On-line's SCI-engine.",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -25,7 +25,7 @@
25
25
  "license": "ISC",
26
26
  "dependencies": {
27
27
  "@4bitlabs/codecs": "^1.0.4",
28
- "@4bitlabs/image": "^3.2.0",
28
+ "@4bitlabs/image": "^3.3.0",
29
29
  "@4bitlabs/numeric-deque": "^1.1.3",
30
30
  "@4bitlabs/readers": "^2.0.4"
31
31
  }