@tmustier/pi-nes 0.2.39 → 0.2.41

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/AGENTS.md CHANGED
@@ -72,7 +72,7 @@ NES Core → RGB framebuffer (256×240×3) → Renderer → Terminal
72
72
 
73
73
  - Image mode (`renderer: "image"`) runs at ~30fps to keep emulation stable
74
74
  - Text mode (`renderer: "text"`) runs at ~60fps in an overlay
75
- - Image mode uses a windowed overlay (90% width/height) to avoid Kitty full-screen artifacts
75
+ - Image mode runs in the main custom UI instead of an overlay to avoid Ghostty black-screen rendering issues while still using Kitty graphics
76
76
 
77
77
  ### Session Lifecycle
78
78
 
@@ -104,7 +104,7 @@ The addons compile to `index.node`. The JS wrapper (`index.js`) tries to load it
104
104
  ## Known Limitations
105
105
 
106
106
  - **Audio is opt-in** — Requires a native core built with `audio-cpal` and `enableAudio: true`.
107
- - **Overlay flicker** — Kitty overlay can show a 1-line flicker at overlay boundaries (see issue #9).
107
+ - **Overlay flicker** — Text-mode overlays can show a 1-line flicker at overlay boundaries (see issue #9).
108
108
  - **No save states** — Only battery-backed SRAM saves are persisted.
109
109
 
110
110
  ## Release and Publishing
package/README.md CHANGED
@@ -15,6 +15,22 @@ Or from git:
15
15
  pi install git:github.com/tmustier/pi-nes
16
16
  ```
17
17
 
18
+ ## Updating
19
+
20
+ If you installed from npm:
21
+
22
+ ```bash
23
+ pi update npm:@tmustier/pi-nes
24
+ ```
25
+
26
+ Then fully restart `pi`.
27
+
28
+ ### Updating from older versions
29
+
30
+ - No config migration is required.
31
+ - On Kitty-compatible terminals (Ghostty, Kitty, WezTerm), image mode now opens in pi's main custom UI instead of an overlay.
32
+ - Text mode still uses the classic overlay experience.
33
+
18
34
  ## Quick Start
19
35
 
20
36
  ```bash
@@ -105,10 +121,37 @@ Saves are flushed on quit and periodically during play.
105
121
 
106
122
  **Best experience:** a Kitty-protocol terminal like Ghostty, Kitty, or WezTerm (image protocol + key-up events).
107
123
 
108
- - **Kitty-protocol terminals** — Full graphics via image protocol (shared memory or file transport)
124
+ - **Kitty-protocol terminals** — Full graphics via image protocol (shared memory or file transport). Image mode opens in pi's main custom UI instead of an overlay to avoid Ghostty black-screen rendering issues.
109
125
  - **Other terminals** — Falls back to ANSI half-block characters (`▀▄`)
110
126
 
111
- Set `"renderer": "text"` if you prefer the ANSI renderer or have display issues.
127
+ Set `"renderer": "text"` if you prefer the ANSI renderer or want the classic overlay experience.
128
+
129
+ ## Audio after npm install or update
130
+
131
+ The published package works without audio by default. To enable audio, rebuild the native core with the `audio-cpal` feature.
132
+
133
+ First, find the installed `@tmustier/pi-nes` path:
134
+
135
+ ```bash
136
+ pi list
137
+ ```
138
+
139
+ Then `cd` into the printed install path plus `extensions/nes/native/nes-core`, and rebuild:
140
+
141
+ ```bash
142
+ npm install
143
+ npm run build:audio
144
+ ```
145
+
146
+ For a standard global npm install, that path is typically:
147
+
148
+ ```bash
149
+ cd "$(npm root -g)/@tmustier/pi-nes/extensions/nes/native/nes-core"
150
+ ```
151
+
152
+ Then enable audio in `/nes-config`.
153
+
154
+ If you update `@tmustier/pi-nes` later, run `build:audio` again because the native binary may be replaced during the update.
112
155
 
113
156
  ## Limitations
114
157
 
@@ -148,3 +191,22 @@ Run locally:
148
191
  ```bash
149
192
  pi --extension /path/to/pi-nes
150
193
  ```
194
+
195
+ ## Troubleshooting
196
+
197
+ ### `/nes` or `/nes-config` shows up twice
198
+
199
+ You likely have both an npm install and a local/path install enabled.
200
+
201
+ Check installed packages:
202
+
203
+ ```bash
204
+ pi list
205
+ ```
206
+
207
+ Then remove the extra one:
208
+
209
+ ```bash
210
+ pi remove <source> # for entries under "User packages"
211
+ pi remove -l <source> # for entries under "Project packages"
212
+ ```
@@ -397,15 +397,17 @@ async function attachSession(
397
397
  let shouldStop = false;
398
398
  try {
399
399
  const isImageRenderer = config.renderer === "image";
400
- const overlayOptions = {
401
- overlay: true,
402
- overlayOptions: {
403
- width: isImageRenderer ? "90%" : "85%",
404
- maxHeight: "90%",
405
- anchor: "center",
406
- margin: { top: 1 },
407
- },
408
- };
400
+ const overlayOptions = isImageRenderer
401
+ ? undefined
402
+ : {
403
+ overlay: true,
404
+ overlayOptions: {
405
+ width: "85%",
406
+ maxHeight: "90%",
407
+ anchor: "center",
408
+ margin: { top: 1 },
409
+ },
410
+ };
409
411
 
410
412
  const renderIntervalMs = config.renderer === "image"
411
413
  ? config.imageQuality === "high"
@@ -414,6 +416,10 @@ async function attachSession(
414
416
  : TEXT_RENDER_INTERVAL_MS;
415
417
  session.setRenderIntervalMs(renderIntervalMs);
416
418
 
419
+ // Image mode must run in the main custom UI instead of an overlay.
420
+ // Ghostty renders the same Kitty image sequence correctly on its own, but
421
+ // the pi overlay path can leave the image area black. Text mode still works
422
+ // well as an overlay, so keep that behavior there.
417
423
  await ctx.ui.custom(
418
424
  (tui, _theme, _keybindings, done) => {
419
425
  session.setRenderHook(() => tui.requestRender());
@@ -452,7 +458,7 @@ export default function (pi: ExtensionAPI) {
452
458
  });
453
459
 
454
460
  pi.registerCommand("nes", {
455
- description: "Play NES games in an overlay (Ctrl+Q to detach)",
461
+ description: "Play NES games in pi (Ctrl+Q to detach)",
456
462
  handler: async (args, ctx) => {
457
463
  if (!ctx.hasUI) {
458
464
  ctx.ui.notify("NES requires interactive mode", "error");
@@ -0,0 +1,1045 @@
1
+ # This file is automatically @generated by Cargo.
2
+ # It is not intended for manual editing.
3
+ version = 4
4
+
5
+ [[package]]
6
+ name = "aho-corasick"
7
+ version = "1.1.4"
8
+ source = "registry+https://github.com/rust-lang/crates.io-index"
9
+ checksum = "ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301"
10
+ dependencies = [
11
+ "memchr",
12
+ ]
13
+
14
+ [[package]]
15
+ name = "alsa"
16
+ version = "0.11.0"
17
+ source = "registry+https://github.com/rust-lang/crates.io-index"
18
+ checksum = "812947049edcd670a82cd5c73c3661d2e58468577ba8489de58e1a73c04cbd5d"
19
+ dependencies = [
20
+ "alsa-sys",
21
+ "bitflags",
22
+ "cfg-if",
23
+ "libc",
24
+ ]
25
+
26
+ [[package]]
27
+ name = "alsa-sys"
28
+ version = "0.4.0"
29
+ source = "registry+https://github.com/rust-lang/crates.io-index"
30
+ checksum = "ad7569085a265dd3f607ebecce7458eaab2132a84393534c95b18dcbc3f31e04"
31
+ dependencies = [
32
+ "libc",
33
+ "pkg-config",
34
+ ]
35
+
36
+ [[package]]
37
+ name = "autocfg"
38
+ version = "1.5.0"
39
+ source = "registry+https://github.com/rust-lang/crates.io-index"
40
+ checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8"
41
+
42
+ [[package]]
43
+ name = "bitflags"
44
+ version = "2.11.0"
45
+ source = "registry+https://github.com/rust-lang/crates.io-index"
46
+ checksum = "843867be96c8daad0d758b57df9392b6d8d271134fce549de6ce169ff98a92af"
47
+
48
+ [[package]]
49
+ name = "block2"
50
+ version = "0.6.2"
51
+ source = "registry+https://github.com/rust-lang/crates.io-index"
52
+ checksum = "cdeb9d870516001442e364c5220d3574d2da8dc765554b4a617230d33fa58ef5"
53
+ dependencies = [
54
+ "objc2",
55
+ ]
56
+
57
+ [[package]]
58
+ name = "bumpalo"
59
+ version = "3.20.2"
60
+ source = "registry+https://github.com/rust-lang/crates.io-index"
61
+ checksum = "5d20789868f4b01b2f2caec9f5c4e0213b41e3e5702a50157d699ae31ced2fcb"
62
+
63
+ [[package]]
64
+ name = "bytes"
65
+ version = "1.11.1"
66
+ source = "registry+https://github.com/rust-lang/crates.io-index"
67
+ checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33"
68
+
69
+ [[package]]
70
+ name = "cesu8"
71
+ version = "1.1.0"
72
+ source = "registry+https://github.com/rust-lang/crates.io-index"
73
+ checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c"
74
+
75
+ [[package]]
76
+ name = "cfg-if"
77
+ version = "1.0.4"
78
+ source = "registry+https://github.com/rust-lang/crates.io-index"
79
+ checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801"
80
+
81
+ [[package]]
82
+ name = "combine"
83
+ version = "4.6.7"
84
+ source = "registry+https://github.com/rust-lang/crates.io-index"
85
+ checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd"
86
+ dependencies = [
87
+ "bytes",
88
+ "memchr",
89
+ ]
90
+
91
+ [[package]]
92
+ name = "convert_case"
93
+ version = "0.6.0"
94
+ source = "registry+https://github.com/rust-lang/crates.io-index"
95
+ checksum = "ec182b0ca2f35d8fc196cf3404988fd8b8c739a4d270ff118a398feb0cbec1ca"
96
+ dependencies = [
97
+ "unicode-segmentation",
98
+ ]
99
+
100
+ [[package]]
101
+ name = "coreaudio-rs"
102
+ version = "0.14.1"
103
+ source = "registry+https://github.com/rust-lang/crates.io-index"
104
+ checksum = "16dd574a72a021b90c7656c474ea31d11a2f0366a8eff574186e761e0b9e3586"
105
+ dependencies = [
106
+ "bitflags",
107
+ "libc",
108
+ "objc2-audio-toolbox",
109
+ "objc2-core-audio",
110
+ "objc2-core-audio-types",
111
+ "objc2-core-foundation",
112
+ ]
113
+
114
+ [[package]]
115
+ name = "cpal"
116
+ version = "0.17.3"
117
+ source = "registry+https://github.com/rust-lang/crates.io-index"
118
+ checksum = "d8942da362c0f0d895d7cac616263f2f9424edc5687364dfd1d25ef7eba506d7"
119
+ dependencies = [
120
+ "alsa",
121
+ "coreaudio-rs",
122
+ "dasp_sample",
123
+ "jni",
124
+ "js-sys",
125
+ "libc",
126
+ "mach2",
127
+ "ndk",
128
+ "ndk-context",
129
+ "num-derive",
130
+ "num-traits",
131
+ "objc2",
132
+ "objc2-audio-toolbox",
133
+ "objc2-avf-audio",
134
+ "objc2-core-audio",
135
+ "objc2-core-audio-types",
136
+ "objc2-core-foundation",
137
+ "objc2-foundation",
138
+ "wasm-bindgen",
139
+ "wasm-bindgen-futures",
140
+ "web-sys",
141
+ "windows",
142
+ ]
143
+
144
+ [[package]]
145
+ name = "crossbeam-utils"
146
+ version = "0.8.21"
147
+ source = "registry+https://github.com/rust-lang/crates.io-index"
148
+ checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28"
149
+
150
+ [[package]]
151
+ name = "ctor"
152
+ version = "0.2.9"
153
+ source = "registry+https://github.com/rust-lang/crates.io-index"
154
+ checksum = "32a2785755761f3ddc1492979ce1e48d2c00d09311c39e4466429188f3dd6501"
155
+ dependencies = [
156
+ "quote",
157
+ "syn",
158
+ ]
159
+
160
+ [[package]]
161
+ name = "dasp_sample"
162
+ version = "0.11.0"
163
+ source = "registry+https://github.com/rust-lang/crates.io-index"
164
+ checksum = "0c87e182de0887fd5361989c677c4e8f5000cd9491d6d563161a8f3a5519fc7f"
165
+
166
+ [[package]]
167
+ name = "dispatch2"
168
+ version = "0.3.1"
169
+ source = "registry+https://github.com/rust-lang/crates.io-index"
170
+ checksum = "1e0e367e4e7da84520dedcac1901e4da967309406d1e51017ae1abfb97adbd38"
171
+ dependencies = [
172
+ "bitflags",
173
+ "objc2",
174
+ ]
175
+
176
+ [[package]]
177
+ name = "equivalent"
178
+ version = "1.0.2"
179
+ source = "registry+https://github.com/rust-lang/crates.io-index"
180
+ checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f"
181
+
182
+ [[package]]
183
+ name = "futures-core"
184
+ version = "0.3.32"
185
+ source = "registry+https://github.com/rust-lang/crates.io-index"
186
+ checksum = "7e3450815272ef58cec6d564423f6e755e25379b217b0bc688e295ba24df6b1d"
187
+
188
+ [[package]]
189
+ name = "futures-task"
190
+ version = "0.3.32"
191
+ source = "registry+https://github.com/rust-lang/crates.io-index"
192
+ checksum = "037711b3d59c33004d3856fbdc83b99d4ff37a24768fa1be9ce3538a1cde4393"
193
+
194
+ [[package]]
195
+ name = "futures-util"
196
+ version = "0.3.32"
197
+ source = "registry+https://github.com/rust-lang/crates.io-index"
198
+ checksum = "389ca41296e6190b48053de0321d02a77f32f8a5d2461dd38762c0593805c6d6"
199
+ dependencies = [
200
+ "futures-core",
201
+ "futures-task",
202
+ "pin-project-lite",
203
+ "slab",
204
+ ]
205
+
206
+ [[package]]
207
+ name = "hashbrown"
208
+ version = "0.16.1"
209
+ source = "registry+https://github.com/rust-lang/crates.io-index"
210
+ checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100"
211
+
212
+ [[package]]
213
+ name = "indexmap"
214
+ version = "2.13.1"
215
+ source = "registry+https://github.com/rust-lang/crates.io-index"
216
+ checksum = "45a8a2b9cb3e0b0c1803dbb0758ffac5de2f425b23c28f518faabd9d805342ff"
217
+ dependencies = [
218
+ "equivalent",
219
+ "hashbrown",
220
+ ]
221
+
222
+ [[package]]
223
+ name = "jni"
224
+ version = "0.21.1"
225
+ source = "registry+https://github.com/rust-lang/crates.io-index"
226
+ checksum = "1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97"
227
+ dependencies = [
228
+ "cesu8",
229
+ "cfg-if",
230
+ "combine",
231
+ "jni-sys 0.3.1",
232
+ "log",
233
+ "thiserror",
234
+ "walkdir",
235
+ "windows-sys 0.45.0",
236
+ ]
237
+
238
+ [[package]]
239
+ name = "jni-sys"
240
+ version = "0.3.1"
241
+ source = "registry+https://github.com/rust-lang/crates.io-index"
242
+ checksum = "41a652e1f9b6e0275df1f15b32661cf0d4b78d4d87ddec5e0c3c20f097433258"
243
+ dependencies = [
244
+ "jni-sys 0.4.1",
245
+ ]
246
+
247
+ [[package]]
248
+ name = "jni-sys"
249
+ version = "0.4.1"
250
+ source = "registry+https://github.com/rust-lang/crates.io-index"
251
+ checksum = "c6377a88cb3910bee9b0fa88d4f42e1d2da8e79915598f65fb0c7ee14c878af2"
252
+ dependencies = [
253
+ "jni-sys-macros",
254
+ ]
255
+
256
+ [[package]]
257
+ name = "jni-sys-macros"
258
+ version = "0.4.1"
259
+ source = "registry+https://github.com/rust-lang/crates.io-index"
260
+ checksum = "38c0b942f458fe50cdac086d2f946512305e5631e720728f2a61aabcd47a6264"
261
+ dependencies = [
262
+ "quote",
263
+ "syn",
264
+ ]
265
+
266
+ [[package]]
267
+ name = "js-sys"
268
+ version = "0.3.94"
269
+ source = "registry+https://github.com/rust-lang/crates.io-index"
270
+ checksum = "2e04e2ef80ce82e13552136fabeef8a5ed1f985a96805761cbb9a2c34e7664d9"
271
+ dependencies = [
272
+ "cfg-if",
273
+ "futures-util",
274
+ "once_cell",
275
+ "wasm-bindgen",
276
+ ]
277
+
278
+ [[package]]
279
+ name = "libc"
280
+ version = "0.2.184"
281
+ source = "registry+https://github.com/rust-lang/crates.io-index"
282
+ checksum = "48f5d2a454e16a5ea0f4ced81bd44e4cfc7bd3a507b61887c99fd3538b28e4af"
283
+
284
+ [[package]]
285
+ name = "libloading"
286
+ version = "0.8.9"
287
+ source = "registry+https://github.com/rust-lang/crates.io-index"
288
+ checksum = "d7c4b02199fee7c5d21a5ae7d8cfa79a6ef5bb2fc834d6e9058e89c825efdc55"
289
+ dependencies = [
290
+ "cfg-if",
291
+ "windows-link",
292
+ ]
293
+
294
+ [[package]]
295
+ name = "log"
296
+ version = "0.4.29"
297
+ source = "registry+https://github.com/rust-lang/crates.io-index"
298
+ checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897"
299
+
300
+ [[package]]
301
+ name = "mach2"
302
+ version = "0.5.0"
303
+ source = "registry+https://github.com/rust-lang/crates.io-index"
304
+ checksum = "6a1b95cd5421ec55b445b5ae102f5ea0e768de1f82bd3001e11f426c269c3aea"
305
+ dependencies = [
306
+ "libc",
307
+ ]
308
+
309
+ [[package]]
310
+ name = "memchr"
311
+ version = "2.8.0"
312
+ source = "registry+https://github.com/rust-lang/crates.io-index"
313
+ checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79"
314
+
315
+ [[package]]
316
+ name = "napi"
317
+ version = "2.16.17"
318
+ source = "registry+https://github.com/rust-lang/crates.io-index"
319
+ checksum = "55740c4ae1d8696773c78fdafd5d0e5fe9bc9f1b071c7ba493ba5c413a9184f3"
320
+ dependencies = [
321
+ "bitflags",
322
+ "ctor",
323
+ "napi-derive",
324
+ "napi-sys",
325
+ "once_cell",
326
+ ]
327
+
328
+ [[package]]
329
+ name = "napi-build"
330
+ version = "2.3.1"
331
+ source = "registry+https://github.com/rust-lang/crates.io-index"
332
+ checksum = "d376940fd5b723c6893cd1ee3f33abbfd86acb1cd1ec079f3ab04a2a3bc4d3b1"
333
+
334
+ [[package]]
335
+ name = "napi-derive"
336
+ version = "2.16.13"
337
+ source = "registry+https://github.com/rust-lang/crates.io-index"
338
+ checksum = "7cbe2585d8ac223f7d34f13701434b9d5f4eb9c332cccce8dee57ea18ab8ab0c"
339
+ dependencies = [
340
+ "cfg-if",
341
+ "convert_case",
342
+ "napi-derive-backend",
343
+ "proc-macro2",
344
+ "quote",
345
+ "syn",
346
+ ]
347
+
348
+ [[package]]
349
+ name = "napi-derive-backend"
350
+ version = "1.0.75"
351
+ source = "registry+https://github.com/rust-lang/crates.io-index"
352
+ checksum = "1639aaa9eeb76e91c6ae66da8ce3e89e921cd3885e99ec85f4abacae72fc91bf"
353
+ dependencies = [
354
+ "convert_case",
355
+ "once_cell",
356
+ "proc-macro2",
357
+ "quote",
358
+ "regex",
359
+ "semver",
360
+ "syn",
361
+ ]
362
+
363
+ [[package]]
364
+ name = "napi-sys"
365
+ version = "2.4.0"
366
+ source = "registry+https://github.com/rust-lang/crates.io-index"
367
+ checksum = "427802e8ec3a734331fec1035594a210ce1ff4dc5bc1950530920ab717964ea3"
368
+ dependencies = [
369
+ "libloading",
370
+ ]
371
+
372
+ [[package]]
373
+ name = "ndk"
374
+ version = "0.9.0"
375
+ source = "registry+https://github.com/rust-lang/crates.io-index"
376
+ checksum = "c3f42e7bbe13d351b6bead8286a43aac9534b82bd3cc43e47037f012ebfd62d4"
377
+ dependencies = [
378
+ "bitflags",
379
+ "jni-sys 0.3.1",
380
+ "log",
381
+ "ndk-sys",
382
+ "num_enum",
383
+ "thiserror",
384
+ ]
385
+
386
+ [[package]]
387
+ name = "ndk-context"
388
+ version = "0.1.1"
389
+ source = "registry+https://github.com/rust-lang/crates.io-index"
390
+ checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b"
391
+
392
+ [[package]]
393
+ name = "ndk-sys"
394
+ version = "0.6.0+11769913"
395
+ source = "registry+https://github.com/rust-lang/crates.io-index"
396
+ checksum = "ee6cda3051665f1fb8d9e08fc35c96d5a244fb1be711a03b71118828afc9a873"
397
+ dependencies = [
398
+ "jni-sys 0.3.1",
399
+ ]
400
+
401
+ [[package]]
402
+ name = "nes_rust"
403
+ version = "0.1.2"
404
+
405
+ [[package]]
406
+ name = "num-derive"
407
+ version = "0.4.2"
408
+ source = "registry+https://github.com/rust-lang/crates.io-index"
409
+ checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202"
410
+ dependencies = [
411
+ "proc-macro2",
412
+ "quote",
413
+ "syn",
414
+ ]
415
+
416
+ [[package]]
417
+ name = "num-traits"
418
+ version = "0.2.19"
419
+ source = "registry+https://github.com/rust-lang/crates.io-index"
420
+ checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841"
421
+ dependencies = [
422
+ "autocfg",
423
+ ]
424
+
425
+ [[package]]
426
+ name = "num_enum"
427
+ version = "0.7.6"
428
+ source = "registry+https://github.com/rust-lang/crates.io-index"
429
+ checksum = "5d0bca838442ec211fa11de3a8b0e0e8f3a4522575b5c4c06ed722e005036f26"
430
+ dependencies = [
431
+ "num_enum_derive",
432
+ "rustversion",
433
+ ]
434
+
435
+ [[package]]
436
+ name = "num_enum_derive"
437
+ version = "0.7.6"
438
+ source = "registry+https://github.com/rust-lang/crates.io-index"
439
+ checksum = "680998035259dcfcafe653688bf2aa6d3e2dc05e98be6ab46afb089dc84f1df8"
440
+ dependencies = [
441
+ "proc-macro-crate",
442
+ "proc-macro2",
443
+ "quote",
444
+ "syn",
445
+ ]
446
+
447
+ [[package]]
448
+ name = "objc2"
449
+ version = "0.6.4"
450
+ source = "registry+https://github.com/rust-lang/crates.io-index"
451
+ checksum = "3a12a8ed07aefc768292f076dc3ac8c48f3781c8f2d5851dd3d98950e8c5a89f"
452
+ dependencies = [
453
+ "objc2-encode",
454
+ ]
455
+
456
+ [[package]]
457
+ name = "objc2-audio-toolbox"
458
+ version = "0.3.2"
459
+ source = "registry+https://github.com/rust-lang/crates.io-index"
460
+ checksum = "6948501a91121d6399b79abaa33a8aa4ea7857fe019f341b8c23ad6e81b79b08"
461
+ dependencies = [
462
+ "bitflags",
463
+ "libc",
464
+ "objc2",
465
+ "objc2-core-audio",
466
+ "objc2-core-audio-types",
467
+ "objc2-core-foundation",
468
+ "objc2-foundation",
469
+ ]
470
+
471
+ [[package]]
472
+ name = "objc2-avf-audio"
473
+ version = "0.3.2"
474
+ source = "registry+https://github.com/rust-lang/crates.io-index"
475
+ checksum = "13a380031deed8e99db00065c45937da434ca987c034e13b87e4441f9e4090be"
476
+ dependencies = [
477
+ "objc2",
478
+ "objc2-foundation",
479
+ ]
480
+
481
+ [[package]]
482
+ name = "objc2-core-audio"
483
+ version = "0.3.2"
484
+ source = "registry+https://github.com/rust-lang/crates.io-index"
485
+ checksum = "e1eebcea8b0dbff5f7c8504f3107c68fc061a3eb44932051c8cf8a68d969c3b2"
486
+ dependencies = [
487
+ "dispatch2",
488
+ "objc2",
489
+ "objc2-core-audio-types",
490
+ "objc2-core-foundation",
491
+ "objc2-foundation",
492
+ ]
493
+
494
+ [[package]]
495
+ name = "objc2-core-audio-types"
496
+ version = "0.3.2"
497
+ source = "registry+https://github.com/rust-lang/crates.io-index"
498
+ checksum = "5a89f2ec274a0cf4a32642b2991e8b351a404d290da87bb6a9a9d8632490bd1c"
499
+ dependencies = [
500
+ "bitflags",
501
+ "objc2",
502
+ ]
503
+
504
+ [[package]]
505
+ name = "objc2-core-foundation"
506
+ version = "0.3.2"
507
+ source = "registry+https://github.com/rust-lang/crates.io-index"
508
+ checksum = "2a180dd8642fa45cdb7dd721cd4c11b1cadd4929ce112ebd8b9f5803cc79d536"
509
+ dependencies = [
510
+ "bitflags",
511
+ "block2",
512
+ "dispatch2",
513
+ "libc",
514
+ "objc2",
515
+ ]
516
+
517
+ [[package]]
518
+ name = "objc2-encode"
519
+ version = "4.1.0"
520
+ source = "registry+https://github.com/rust-lang/crates.io-index"
521
+ checksum = "ef25abbcd74fb2609453eb695bd2f860d389e457f67dc17cafc8b8cbc89d0c33"
522
+
523
+ [[package]]
524
+ name = "objc2-foundation"
525
+ version = "0.3.2"
526
+ source = "registry+https://github.com/rust-lang/crates.io-index"
527
+ checksum = "e3e0adef53c21f888deb4fa59fc59f7eb17404926ee8a6f59f5df0fd7f9f3272"
528
+ dependencies = [
529
+ "bitflags",
530
+ "block2",
531
+ "libc",
532
+ "objc2",
533
+ "objc2-core-foundation",
534
+ ]
535
+
536
+ [[package]]
537
+ name = "once_cell"
538
+ version = "1.21.4"
539
+ source = "registry+https://github.com/rust-lang/crates.io-index"
540
+ checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50"
541
+
542
+ [[package]]
543
+ name = "pi_nes_core"
544
+ version = "0.1.0"
545
+ dependencies = [
546
+ "cpal",
547
+ "libc",
548
+ "napi",
549
+ "napi-build",
550
+ "napi-derive",
551
+ "nes_rust",
552
+ "ringbuf",
553
+ ]
554
+
555
+ [[package]]
556
+ name = "pin-project-lite"
557
+ version = "0.2.17"
558
+ source = "registry+https://github.com/rust-lang/crates.io-index"
559
+ checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd"
560
+
561
+ [[package]]
562
+ name = "pkg-config"
563
+ version = "0.3.32"
564
+ source = "registry+https://github.com/rust-lang/crates.io-index"
565
+ checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c"
566
+
567
+ [[package]]
568
+ name = "portable-atomic"
569
+ version = "1.13.1"
570
+ source = "registry+https://github.com/rust-lang/crates.io-index"
571
+ checksum = "c33a9471896f1c69cecef8d20cbe2f7accd12527ce60845ff44c153bb2a21b49"
572
+
573
+ [[package]]
574
+ name = "portable-atomic-util"
575
+ version = "0.2.6"
576
+ source = "registry+https://github.com/rust-lang/crates.io-index"
577
+ checksum = "091397be61a01d4be58e7841595bd4bfedb15f1cd54977d79b8271e94ed799a3"
578
+ dependencies = [
579
+ "portable-atomic",
580
+ ]
581
+
582
+ [[package]]
583
+ name = "proc-macro-crate"
584
+ version = "3.5.0"
585
+ source = "registry+https://github.com/rust-lang/crates.io-index"
586
+ checksum = "e67ba7e9b2b56446f1d419b1d807906278ffa1a658a8a5d8a39dcb1f5a78614f"
587
+ dependencies = [
588
+ "toml_edit",
589
+ ]
590
+
591
+ [[package]]
592
+ name = "proc-macro2"
593
+ version = "1.0.106"
594
+ source = "registry+https://github.com/rust-lang/crates.io-index"
595
+ checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934"
596
+ dependencies = [
597
+ "unicode-ident",
598
+ ]
599
+
600
+ [[package]]
601
+ name = "quote"
602
+ version = "1.0.45"
603
+ source = "registry+https://github.com/rust-lang/crates.io-index"
604
+ checksum = "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924"
605
+ dependencies = [
606
+ "proc-macro2",
607
+ ]
608
+
609
+ [[package]]
610
+ name = "regex"
611
+ version = "1.12.3"
612
+ source = "registry+https://github.com/rust-lang/crates.io-index"
613
+ checksum = "e10754a14b9137dd7b1e3e5b0493cc9171fdd105e0ab477f51b72e7f3ac0e276"
614
+ dependencies = [
615
+ "aho-corasick",
616
+ "memchr",
617
+ "regex-automata",
618
+ "regex-syntax",
619
+ ]
620
+
621
+ [[package]]
622
+ name = "regex-automata"
623
+ version = "0.4.14"
624
+ source = "registry+https://github.com/rust-lang/crates.io-index"
625
+ checksum = "6e1dd4122fc1595e8162618945476892eefca7b88c52820e74af6262213cae8f"
626
+ dependencies = [
627
+ "aho-corasick",
628
+ "memchr",
629
+ "regex-syntax",
630
+ ]
631
+
632
+ [[package]]
633
+ name = "regex-syntax"
634
+ version = "0.8.10"
635
+ source = "registry+https://github.com/rust-lang/crates.io-index"
636
+ checksum = "dc897dd8d9e8bd1ed8cdad82b5966c3e0ecae09fb1907d58efaa013543185d0a"
637
+
638
+ [[package]]
639
+ name = "ringbuf"
640
+ version = "0.4.8"
641
+ source = "registry+https://github.com/rust-lang/crates.io-index"
642
+ checksum = "fe47b720588c8702e34b5979cb3271a8b1842c7cb6f57408efa70c779363488c"
643
+ dependencies = [
644
+ "crossbeam-utils",
645
+ "portable-atomic",
646
+ "portable-atomic-util",
647
+ ]
648
+
649
+ [[package]]
650
+ name = "rustversion"
651
+ version = "1.0.22"
652
+ source = "registry+https://github.com/rust-lang/crates.io-index"
653
+ checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d"
654
+
655
+ [[package]]
656
+ name = "same-file"
657
+ version = "1.0.6"
658
+ source = "registry+https://github.com/rust-lang/crates.io-index"
659
+ checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
660
+ dependencies = [
661
+ "winapi-util",
662
+ ]
663
+
664
+ [[package]]
665
+ name = "semver"
666
+ version = "1.0.28"
667
+ source = "registry+https://github.com/rust-lang/crates.io-index"
668
+ checksum = "8a7852d02fc848982e0c167ef163aaff9cd91dc640ba85e263cb1ce46fae51cd"
669
+
670
+ [[package]]
671
+ name = "serde_core"
672
+ version = "1.0.228"
673
+ source = "registry+https://github.com/rust-lang/crates.io-index"
674
+ checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad"
675
+ dependencies = [
676
+ "serde_derive",
677
+ ]
678
+
679
+ [[package]]
680
+ name = "serde_derive"
681
+ version = "1.0.228"
682
+ source = "registry+https://github.com/rust-lang/crates.io-index"
683
+ checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79"
684
+ dependencies = [
685
+ "proc-macro2",
686
+ "quote",
687
+ "syn",
688
+ ]
689
+
690
+ [[package]]
691
+ name = "slab"
692
+ version = "0.4.12"
693
+ source = "registry+https://github.com/rust-lang/crates.io-index"
694
+ checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5"
695
+
696
+ [[package]]
697
+ name = "syn"
698
+ version = "2.0.117"
699
+ source = "registry+https://github.com/rust-lang/crates.io-index"
700
+ checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99"
701
+ dependencies = [
702
+ "proc-macro2",
703
+ "quote",
704
+ "unicode-ident",
705
+ ]
706
+
707
+ [[package]]
708
+ name = "thiserror"
709
+ version = "1.0.69"
710
+ source = "registry+https://github.com/rust-lang/crates.io-index"
711
+ checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52"
712
+ dependencies = [
713
+ "thiserror-impl",
714
+ ]
715
+
716
+ [[package]]
717
+ name = "thiserror-impl"
718
+ version = "1.0.69"
719
+ source = "registry+https://github.com/rust-lang/crates.io-index"
720
+ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1"
721
+ dependencies = [
722
+ "proc-macro2",
723
+ "quote",
724
+ "syn",
725
+ ]
726
+
727
+ [[package]]
728
+ name = "toml_datetime"
729
+ version = "1.1.1+spec-1.1.0"
730
+ source = "registry+https://github.com/rust-lang/crates.io-index"
731
+ checksum = "3165f65f62e28e0115a00b2ebdd37eb6f3b641855f9d636d3cd4103767159ad7"
732
+ dependencies = [
733
+ "serde_core",
734
+ ]
735
+
736
+ [[package]]
737
+ name = "toml_edit"
738
+ version = "0.25.10+spec-1.1.0"
739
+ source = "registry+https://github.com/rust-lang/crates.io-index"
740
+ checksum = "a82418ca169e235e6c399a84e395ab6debeb3bc90edc959bf0f48647c6a32d1b"
741
+ dependencies = [
742
+ "indexmap",
743
+ "toml_datetime",
744
+ "toml_parser",
745
+ "winnow",
746
+ ]
747
+
748
+ [[package]]
749
+ name = "toml_parser"
750
+ version = "1.1.2+spec-1.1.0"
751
+ source = "registry+https://github.com/rust-lang/crates.io-index"
752
+ checksum = "a2abe9b86193656635d2411dc43050282ca48aa31c2451210f4202550afb7526"
753
+ dependencies = [
754
+ "winnow",
755
+ ]
756
+
757
+ [[package]]
758
+ name = "unicode-ident"
759
+ version = "1.0.24"
760
+ source = "registry+https://github.com/rust-lang/crates.io-index"
761
+ checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75"
762
+
763
+ [[package]]
764
+ name = "unicode-segmentation"
765
+ version = "1.13.2"
766
+ source = "registry+https://github.com/rust-lang/crates.io-index"
767
+ checksum = "9629274872b2bfaf8d66f5f15725007f635594914870f65218920345aa11aa8c"
768
+
769
+ [[package]]
770
+ name = "walkdir"
771
+ version = "2.5.0"
772
+ source = "registry+https://github.com/rust-lang/crates.io-index"
773
+ checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b"
774
+ dependencies = [
775
+ "same-file",
776
+ "winapi-util",
777
+ ]
778
+
779
+ [[package]]
780
+ name = "wasm-bindgen"
781
+ version = "0.2.117"
782
+ source = "registry+https://github.com/rust-lang/crates.io-index"
783
+ checksum = "0551fc1bb415591e3372d0bc4780db7e587d84e2a7e79da121051c5c4b89d0b0"
784
+ dependencies = [
785
+ "cfg-if",
786
+ "once_cell",
787
+ "rustversion",
788
+ "wasm-bindgen-macro",
789
+ "wasm-bindgen-shared",
790
+ ]
791
+
792
+ [[package]]
793
+ name = "wasm-bindgen-futures"
794
+ version = "0.4.67"
795
+ source = "registry+https://github.com/rust-lang/crates.io-index"
796
+ checksum = "03623de6905b7206edd0a75f69f747f134b7f0a2323392d664448bf2d3c5d87e"
797
+ dependencies = [
798
+ "js-sys",
799
+ "wasm-bindgen",
800
+ ]
801
+
802
+ [[package]]
803
+ name = "wasm-bindgen-macro"
804
+ version = "0.2.117"
805
+ source = "registry+https://github.com/rust-lang/crates.io-index"
806
+ checksum = "7fbdf9a35adf44786aecd5ff89b4563a90325f9da0923236f6104e603c7e86be"
807
+ dependencies = [
808
+ "quote",
809
+ "wasm-bindgen-macro-support",
810
+ ]
811
+
812
+ [[package]]
813
+ name = "wasm-bindgen-macro-support"
814
+ version = "0.2.117"
815
+ source = "registry+https://github.com/rust-lang/crates.io-index"
816
+ checksum = "dca9693ef2bab6d4e6707234500350d8dad079eb508dca05530c85dc3a529ff2"
817
+ dependencies = [
818
+ "bumpalo",
819
+ "proc-macro2",
820
+ "quote",
821
+ "syn",
822
+ "wasm-bindgen-shared",
823
+ ]
824
+
825
+ [[package]]
826
+ name = "wasm-bindgen-shared"
827
+ version = "0.2.117"
828
+ source = "registry+https://github.com/rust-lang/crates.io-index"
829
+ checksum = "39129a682a6d2d841b6c429d0c51e5cb0ed1a03829d8b3d1e69a011e62cb3d3b"
830
+ dependencies = [
831
+ "unicode-ident",
832
+ ]
833
+
834
+ [[package]]
835
+ name = "web-sys"
836
+ version = "0.3.94"
837
+ source = "registry+https://github.com/rust-lang/crates.io-index"
838
+ checksum = "cd70027e39b12f0849461e08ffc50b9cd7688d942c1c8e3c7b22273236b4dd0a"
839
+ dependencies = [
840
+ "js-sys",
841
+ "wasm-bindgen",
842
+ ]
843
+
844
+ [[package]]
845
+ name = "winapi-util"
846
+ version = "0.1.11"
847
+ source = "registry+https://github.com/rust-lang/crates.io-index"
848
+ checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22"
849
+ dependencies = [
850
+ "windows-sys 0.61.2",
851
+ ]
852
+
853
+ [[package]]
854
+ name = "windows"
855
+ version = "0.62.2"
856
+ source = "registry+https://github.com/rust-lang/crates.io-index"
857
+ checksum = "527fadee13e0c05939a6a05d5bd6eec6cd2e3dbd648b9f8e447c6518133d8580"
858
+ dependencies = [
859
+ "windows-collections",
860
+ "windows-core",
861
+ "windows-future",
862
+ "windows-numerics",
863
+ ]
864
+
865
+ [[package]]
866
+ name = "windows-collections"
867
+ version = "0.3.2"
868
+ source = "registry+https://github.com/rust-lang/crates.io-index"
869
+ checksum = "23b2d95af1a8a14a3c7367e1ed4fc9c20e0a26e79551b1454d72583c97cc6610"
870
+ dependencies = [
871
+ "windows-core",
872
+ ]
873
+
874
+ [[package]]
875
+ name = "windows-core"
876
+ version = "0.62.2"
877
+ source = "registry+https://github.com/rust-lang/crates.io-index"
878
+ checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb"
879
+ dependencies = [
880
+ "windows-implement",
881
+ "windows-interface",
882
+ "windows-link",
883
+ "windows-result",
884
+ "windows-strings",
885
+ ]
886
+
887
+ [[package]]
888
+ name = "windows-future"
889
+ version = "0.3.2"
890
+ source = "registry+https://github.com/rust-lang/crates.io-index"
891
+ checksum = "e1d6f90251fe18a279739e78025bd6ddc52a7e22f921070ccdc67dde84c605cb"
892
+ dependencies = [
893
+ "windows-core",
894
+ "windows-link",
895
+ "windows-threading",
896
+ ]
897
+
898
+ [[package]]
899
+ name = "windows-implement"
900
+ version = "0.60.2"
901
+ source = "registry+https://github.com/rust-lang/crates.io-index"
902
+ checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf"
903
+ dependencies = [
904
+ "proc-macro2",
905
+ "quote",
906
+ "syn",
907
+ ]
908
+
909
+ [[package]]
910
+ name = "windows-interface"
911
+ version = "0.59.3"
912
+ source = "registry+https://github.com/rust-lang/crates.io-index"
913
+ checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358"
914
+ dependencies = [
915
+ "proc-macro2",
916
+ "quote",
917
+ "syn",
918
+ ]
919
+
920
+ [[package]]
921
+ name = "windows-link"
922
+ version = "0.2.1"
923
+ source = "registry+https://github.com/rust-lang/crates.io-index"
924
+ checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5"
925
+
926
+ [[package]]
927
+ name = "windows-numerics"
928
+ version = "0.3.1"
929
+ source = "registry+https://github.com/rust-lang/crates.io-index"
930
+ checksum = "6e2e40844ac143cdb44aead537bbf727de9b044e107a0f1220392177d15b0f26"
931
+ dependencies = [
932
+ "windows-core",
933
+ "windows-link",
934
+ ]
935
+
936
+ [[package]]
937
+ name = "windows-result"
938
+ version = "0.4.1"
939
+ source = "registry+https://github.com/rust-lang/crates.io-index"
940
+ checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5"
941
+ dependencies = [
942
+ "windows-link",
943
+ ]
944
+
945
+ [[package]]
946
+ name = "windows-strings"
947
+ version = "0.5.1"
948
+ source = "registry+https://github.com/rust-lang/crates.io-index"
949
+ checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091"
950
+ dependencies = [
951
+ "windows-link",
952
+ ]
953
+
954
+ [[package]]
955
+ name = "windows-sys"
956
+ version = "0.45.0"
957
+ source = "registry+https://github.com/rust-lang/crates.io-index"
958
+ checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0"
959
+ dependencies = [
960
+ "windows-targets",
961
+ ]
962
+
963
+ [[package]]
964
+ name = "windows-sys"
965
+ version = "0.61.2"
966
+ source = "registry+https://github.com/rust-lang/crates.io-index"
967
+ checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc"
968
+ dependencies = [
969
+ "windows-link",
970
+ ]
971
+
972
+ [[package]]
973
+ name = "windows-targets"
974
+ version = "0.42.2"
975
+ source = "registry+https://github.com/rust-lang/crates.io-index"
976
+ checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071"
977
+ dependencies = [
978
+ "windows_aarch64_gnullvm",
979
+ "windows_aarch64_msvc",
980
+ "windows_i686_gnu",
981
+ "windows_i686_msvc",
982
+ "windows_x86_64_gnu",
983
+ "windows_x86_64_gnullvm",
984
+ "windows_x86_64_msvc",
985
+ ]
986
+
987
+ [[package]]
988
+ name = "windows-threading"
989
+ version = "0.2.1"
990
+ source = "registry+https://github.com/rust-lang/crates.io-index"
991
+ checksum = "3949bd5b99cafdf1c7ca86b43ca564028dfe27d66958f2470940f73d86d75b37"
992
+ dependencies = [
993
+ "windows-link",
994
+ ]
995
+
996
+ [[package]]
997
+ name = "windows_aarch64_gnullvm"
998
+ version = "0.42.2"
999
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1000
+ checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8"
1001
+
1002
+ [[package]]
1003
+ name = "windows_aarch64_msvc"
1004
+ version = "0.42.2"
1005
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1006
+ checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43"
1007
+
1008
+ [[package]]
1009
+ name = "windows_i686_gnu"
1010
+ version = "0.42.2"
1011
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1012
+ checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f"
1013
+
1014
+ [[package]]
1015
+ name = "windows_i686_msvc"
1016
+ version = "0.42.2"
1017
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1018
+ checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060"
1019
+
1020
+ [[package]]
1021
+ name = "windows_x86_64_gnu"
1022
+ version = "0.42.2"
1023
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1024
+ checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36"
1025
+
1026
+ [[package]]
1027
+ name = "windows_x86_64_gnullvm"
1028
+ version = "0.42.2"
1029
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1030
+ checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3"
1031
+
1032
+ [[package]]
1033
+ name = "windows_x86_64_msvc"
1034
+ version = "0.42.2"
1035
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1036
+ checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0"
1037
+
1038
+ [[package]]
1039
+ name = "winnow"
1040
+ version = "1.0.1"
1041
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1042
+ checksum = "09dac053f1cd375980747450bfc7250c264eaae0583872e845c0c7cd578872b5"
1043
+ dependencies = [
1044
+ "memchr",
1045
+ ]
@@ -0,0 +1,47 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+
4
+ /* auto-generated by NAPI-RS */
5
+
6
+ export interface CpuDebugState {
7
+ pc: number
8
+ a: number
9
+ x: number
10
+ y: number
11
+ sp: number
12
+ p: number
13
+ lastPc: number
14
+ lastOpcode: number
15
+ }
16
+ export interface MapperDebugState {
17
+ mapperNum: number
18
+ control: number
19
+ prg: number
20
+ chr0: number
21
+ chr1: number
22
+ prgMode: number
23
+ chrMode: number
24
+ outerPrg: number
25
+ }
26
+ export interface NesDebugState {
27
+ cpu: CpuDebugState
28
+ mapper: MapperDebugState
29
+ }
30
+ export declare class NativeNes {
31
+ constructor()
32
+ setRom(data: Uint8Array): void
33
+ bootup(): void
34
+ stepFrame(): void
35
+ refreshFramebuffer(): void
36
+ setVideoFilter(mode: number): void
37
+ setAudioEnabled(enabled: boolean): boolean
38
+ pressButton(button: number): void
39
+ releaseButton(button: number): void
40
+ hasBatteryBackedRam(): boolean
41
+ getSram(): Uint8Array
42
+ setSram(data: Uint8Array): void
43
+ isSramDirty(): boolean
44
+ markSramSaved(): void
45
+ getDebugState(): NesDebugState
46
+ getFramebuffer(): Uint8Array
47
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tmustier/pi-nes",
3
- "version": "0.2.39",
3
+ "version": "0.2.41",
4
4
  "description": "NES emulator extension for pi",
5
5
  "keywords": [
6
6
  "pi-package",
@@ -48,9 +48,9 @@ describe("config", () => {
48
48
  assert.strictEqual(config.videoFilter, "ntsc-composite");
49
49
  });
50
50
 
51
- test("defaults invalid videoFilter to off", () => {
51
+ test("defaults invalid videoFilter to the configured default", () => {
52
52
  const config = normalizeConfig({ videoFilter: "crt" });
53
- assert.strictEqual(config.videoFilter, "off");
53
+ assert.strictEqual(config.videoFilter, DEFAULT_CONFIG.videoFilter);
54
54
  });
55
55
 
56
56
  test("clamps pixelScale to valid range", () => {