@tmustier/pi-nes 0.2.38 → 0.2.40

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
@@ -1,6 +1,6 @@
1
1
  # pi-nes
2
2
 
3
- Play NES games in your terminal. A [pi](https://github.com/mariozechner/pi) extension that runs a full NES emulator with Kitty graphics support.
3
+ Play NES games in your terminal. A [Pi](https://pi.dev/) extension that runs a full NES emulator with Kitty graphics support.
4
4
 
5
5
  ![pi-nes demo](assets/demo.gif)
6
6
 
@@ -105,10 +105,10 @@ Saves are flushed on quit and periodically during play.
105
105
 
106
106
  **Best experience:** a Kitty-protocol terminal like Ghostty, Kitty, or WezTerm (image protocol + key-up events).
107
107
 
108
- - **Kitty-protocol terminals** — Full graphics via image protocol (shared memory or file transport)
108
+ - **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
109
  - **Other terminals** — Falls back to ANSI half-block characters (`▀▄`)
110
110
 
111
- Set `"renderer": "text"` if you prefer the ANSI renderer or have display issues.
111
+ Set `"renderer": "text"` if you prefer the ANSI renderer or want the classic overlay experience.
112
112
 
113
113
  ## Limitations
114
114
 
@@ -19,7 +19,7 @@ export interface NesConfig {
19
19
  keybindings: InputMapping;
20
20
  }
21
21
 
22
- const DEFAULT_ROM_DIR = path.join(path.sep, "roms", "nes");
22
+ const DEFAULT_ROM_DIR = path.join(os.homedir(), "roms", "nes");
23
23
 
24
24
  export function getDefaultSaveDir(romDir: string): string {
25
25
  return path.join(romDir, "saves");
@@ -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");
@@ -13,21 +13,21 @@ dependencies = [
13
13
 
14
14
  [[package]]
15
15
  name = "alsa"
16
- version = "0.10.0"
16
+ version = "0.11.0"
17
17
  source = "registry+https://github.com/rust-lang/crates.io-index"
18
- checksum = "7c88dbbce13b232b26250e1e2e6ac18b6a891a646b8148285036ebce260ac5c3"
18
+ checksum = "812947049edcd670a82cd5c73c3661d2e58468577ba8489de58e1a73c04cbd5d"
19
19
  dependencies = [
20
20
  "alsa-sys",
21
- "bitflags 2.10.0",
21
+ "bitflags",
22
22
  "cfg-if",
23
23
  "libc",
24
24
  ]
25
25
 
26
26
  [[package]]
27
27
  name = "alsa-sys"
28
- version = "0.3.1"
28
+ version = "0.4.0"
29
29
  source = "registry+https://github.com/rust-lang/crates.io-index"
30
- checksum = "db8fee663d06c4e303404ef5f40488a53e062f89ba8bfed81f42325aafad1527"
30
+ checksum = "ad7569085a265dd3f607ebecce7458eaab2132a84393534c95b18dcbc3f31e04"
31
31
  dependencies = [
32
32
  "libc",
33
33
  "pkg-config",
@@ -41,15 +41,9 @@ checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8"
41
41
 
42
42
  [[package]]
43
43
  name = "bitflags"
44
- version = "1.3.2"
45
- source = "registry+https://github.com/rust-lang/crates.io-index"
46
- checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
47
-
48
- [[package]]
49
- name = "bitflags"
50
- version = "2.10.0"
44
+ version = "2.11.0"
51
45
  source = "registry+https://github.com/rust-lang/crates.io-index"
52
- checksum = "812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3"
46
+ checksum = "843867be96c8daad0d758b57df9392b6d8d271134fce549de6ce169ff98a92af"
53
47
 
54
48
  [[package]]
55
49
  name = "block2"
@@ -62,15 +56,15 @@ dependencies = [
62
56
 
63
57
  [[package]]
64
58
  name = "bumpalo"
65
- version = "3.19.1"
59
+ version = "3.20.2"
66
60
  source = "registry+https://github.com/rust-lang/crates.io-index"
67
- checksum = "5dd9dc738b7a8311c7ade152424974d8115f2cdad61e8dab8dac9f2362298510"
61
+ checksum = "5d20789868f4b01b2f2caec9f5c4e0213b41e3e5702a50157d699ae31ced2fcb"
68
62
 
69
63
  [[package]]
70
64
  name = "bytes"
71
- version = "1.11.0"
65
+ version = "1.11.1"
72
66
  source = "registry+https://github.com/rust-lang/crates.io-index"
73
- checksum = "b35204fbdc0b3f4446b89fc1ac2cf84a8a68971995d0bf2e925ec7cd960f9cb3"
67
+ checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33"
74
68
 
75
69
  [[package]]
76
70
  name = "cesu8"
@@ -105,11 +99,11 @@ dependencies = [
105
99
 
106
100
  [[package]]
107
101
  name = "coreaudio-rs"
108
- version = "0.13.0"
102
+ version = "0.14.1"
109
103
  source = "registry+https://github.com/rust-lang/crates.io-index"
110
- checksum = "1aae284fbaf7d27aa0e292f7677dfbe26503b0d555026f702940805a630eac17"
104
+ checksum = "16dd574a72a021b90c7656c474ea31d11a2f0366a8eff574186e761e0b9e3586"
111
105
  dependencies = [
112
- "bitflags 1.3.2",
106
+ "bitflags",
113
107
  "libc",
114
108
  "objc2-audio-toolbox",
115
109
  "objc2-core-audio",
@@ -119,9 +113,9 @@ dependencies = [
119
113
 
120
114
  [[package]]
121
115
  name = "cpal"
122
- version = "0.17.1"
116
+ version = "0.17.3"
123
117
  source = "registry+https://github.com/rust-lang/crates.io-index"
124
- checksum = "5b1f9c7312f19fc2fa12fd7acaf38de54e8320ba10d1a02dcbe21038def51ccb"
118
+ checksum = "d8942da362c0f0d895d7cac616263f2f9424edc5687364dfd1d25ef7eba506d7"
125
119
  dependencies = [
126
120
  "alsa",
127
121
  "coreaudio-rs",
@@ -171,11 +165,11 @@ checksum = "0c87e182de0887fd5361989c677c4e8f5000cd9491d6d563161a8f3a5519fc7f"
171
165
 
172
166
  [[package]]
173
167
  name = "dispatch2"
174
- version = "0.3.0"
168
+ version = "0.3.1"
175
169
  source = "registry+https://github.com/rust-lang/crates.io-index"
176
- checksum = "89a09f22a6c6069a18470eb92d2298acf25463f14256d24778e1230d789a2aec"
170
+ checksum = "1e0e367e4e7da84520dedcac1901e4da967309406d1e51017ae1abfb97adbd38"
177
171
  dependencies = [
178
- "bitflags 2.10.0",
172
+ "bitflags",
179
173
  "objc2",
180
174
  ]
181
175
 
@@ -187,26 +181,25 @@ checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f"
187
181
 
188
182
  [[package]]
189
183
  name = "futures-core"
190
- version = "0.3.31"
184
+ version = "0.3.32"
191
185
  source = "registry+https://github.com/rust-lang/crates.io-index"
192
- checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e"
186
+ checksum = "7e3450815272ef58cec6d564423f6e755e25379b217b0bc688e295ba24df6b1d"
193
187
 
194
188
  [[package]]
195
189
  name = "futures-task"
196
- version = "0.3.31"
190
+ version = "0.3.32"
197
191
  source = "registry+https://github.com/rust-lang/crates.io-index"
198
- checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988"
192
+ checksum = "037711b3d59c33004d3856fbdc83b99d4ff37a24768fa1be9ce3538a1cde4393"
199
193
 
200
194
  [[package]]
201
195
  name = "futures-util"
202
- version = "0.3.31"
196
+ version = "0.3.32"
203
197
  source = "registry+https://github.com/rust-lang/crates.io-index"
204
- checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81"
198
+ checksum = "389ca41296e6190b48053de0321d02a77f32f8a5d2461dd38762c0593805c6d6"
205
199
  dependencies = [
206
200
  "futures-core",
207
201
  "futures-task",
208
202
  "pin-project-lite",
209
- "pin-utils",
210
203
  "slab",
211
204
  ]
212
205
 
@@ -218,9 +211,9 @@ checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100"
218
211
 
219
212
  [[package]]
220
213
  name = "indexmap"
221
- version = "2.13.0"
214
+ version = "2.13.1"
222
215
  source = "registry+https://github.com/rust-lang/crates.io-index"
223
- checksum = "7714e70437a7dc3ac8eb7e6f8df75fd8eb422675fc7678aff7364301092b1017"
216
+ checksum = "45a8a2b9cb3e0b0c1803dbb0758ffac5de2f425b23c28f518faabd9d805342ff"
224
217
  dependencies = [
225
218
  "equivalent",
226
219
  "hashbrown",
@@ -235,7 +228,7 @@ dependencies = [
235
228
  "cesu8",
236
229
  "cfg-if",
237
230
  "combine",
238
- "jni-sys",
231
+ "jni-sys 0.3.1",
239
232
  "log",
240
233
  "thiserror",
241
234
  "walkdir",
@@ -244,25 +237,49 @@ dependencies = [
244
237
 
245
238
  [[package]]
246
239
  name = "jni-sys"
247
- version = "0.3.0"
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"
248
250
  source = "registry+https://github.com/rust-lang/crates.io-index"
249
- checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130"
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
+ ]
250
265
 
251
266
  [[package]]
252
267
  name = "js-sys"
253
- version = "0.3.85"
268
+ version = "0.3.94"
254
269
  source = "registry+https://github.com/rust-lang/crates.io-index"
255
- checksum = "8c942ebf8e95485ca0d52d97da7c5a2c387d0e7f0ba4c35e93bfcaee045955b3"
270
+ checksum = "2e04e2ef80ce82e13552136fabeef8a5ed1f985a96805761cbb9a2c34e7664d9"
256
271
  dependencies = [
272
+ "cfg-if",
273
+ "futures-util",
257
274
  "once_cell",
258
275
  "wasm-bindgen",
259
276
  ]
260
277
 
261
278
  [[package]]
262
279
  name = "libc"
263
- version = "0.2.180"
280
+ version = "0.2.184"
264
281
  source = "registry+https://github.com/rust-lang/crates.io-index"
265
- checksum = "bcc35a38544a891a5f7c865aca548a982ccb3b8650a5b06d0fd33a10283c56fc"
282
+ checksum = "48f5d2a454e16a5ea0f4ced81bd44e4cfc7bd3a507b61887c99fd3538b28e4af"
266
283
 
267
284
  [[package]]
268
285
  name = "libloading"
@@ -291,9 +308,9 @@ dependencies = [
291
308
 
292
309
  [[package]]
293
310
  name = "memchr"
294
- version = "2.7.6"
311
+ version = "2.8.0"
295
312
  source = "registry+https://github.com/rust-lang/crates.io-index"
296
- checksum = "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273"
313
+ checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79"
297
314
 
298
315
  [[package]]
299
316
  name = "napi"
@@ -301,7 +318,7 @@ version = "2.16.17"
301
318
  source = "registry+https://github.com/rust-lang/crates.io-index"
302
319
  checksum = "55740c4ae1d8696773c78fdafd5d0e5fe9bc9f1b071c7ba493ba5c413a9184f3"
303
320
  dependencies = [
304
- "bitflags 2.10.0",
321
+ "bitflags",
305
322
  "ctor",
306
323
  "napi-derive",
307
324
  "napi-sys",
@@ -358,8 +375,8 @@ version = "0.9.0"
358
375
  source = "registry+https://github.com/rust-lang/crates.io-index"
359
376
  checksum = "c3f42e7bbe13d351b6bead8286a43aac9534b82bd3cc43e47037f012ebfd62d4"
360
377
  dependencies = [
361
- "bitflags 2.10.0",
362
- "jni-sys",
378
+ "bitflags",
379
+ "jni-sys 0.3.1",
363
380
  "log",
364
381
  "ndk-sys",
365
382
  "num_enum",
@@ -378,7 +395,7 @@ version = "0.6.0+11769913"
378
395
  source = "registry+https://github.com/rust-lang/crates.io-index"
379
396
  checksum = "ee6cda3051665f1fb8d9e08fc35c96d5a244fb1be711a03b71118828afc9a873"
380
397
  dependencies = [
381
- "jni-sys",
398
+ "jni-sys 0.3.1",
382
399
  ]
383
400
 
384
401
  [[package]]
@@ -407,9 +424,9 @@ dependencies = [
407
424
 
408
425
  [[package]]
409
426
  name = "num_enum"
410
- version = "0.7.5"
427
+ version = "0.7.6"
411
428
  source = "registry+https://github.com/rust-lang/crates.io-index"
412
- checksum = "b1207a7e20ad57b847bbddc6776b968420d38292bbfe2089accff5e19e82454c"
429
+ checksum = "5d0bca838442ec211fa11de3a8b0e0e8f3a4522575b5c4c06ed722e005036f26"
413
430
  dependencies = [
414
431
  "num_enum_derive",
415
432
  "rustversion",
@@ -417,9 +434,9 @@ dependencies = [
417
434
 
418
435
  [[package]]
419
436
  name = "num_enum_derive"
420
- version = "0.7.5"
437
+ version = "0.7.6"
421
438
  source = "registry+https://github.com/rust-lang/crates.io-index"
422
- checksum = "ff32365de1b6743cb203b710788263c44a03de03802daf96092f2da4fe6ba4d7"
439
+ checksum = "680998035259dcfcafe653688bf2aa6d3e2dc05e98be6ab46afb089dc84f1df8"
423
440
  dependencies = [
424
441
  "proc-macro-crate",
425
442
  "proc-macro2",
@@ -429,9 +446,9 @@ dependencies = [
429
446
 
430
447
  [[package]]
431
448
  name = "objc2"
432
- version = "0.6.3"
449
+ version = "0.6.4"
433
450
  source = "registry+https://github.com/rust-lang/crates.io-index"
434
- checksum = "b7c2599ce0ec54857b29ce62166b0ed9b4f6f1a70ccc9a71165b6154caca8c05"
451
+ checksum = "3a12a8ed07aefc768292f076dc3ac8c48f3781c8f2d5851dd3d98950e8c5a89f"
435
452
  dependencies = [
436
453
  "objc2-encode",
437
454
  ]
@@ -442,7 +459,7 @@ version = "0.3.2"
442
459
  source = "registry+https://github.com/rust-lang/crates.io-index"
443
460
  checksum = "6948501a91121d6399b79abaa33a8aa4ea7857fe019f341b8c23ad6e81b79b08"
444
461
  dependencies = [
445
- "bitflags 2.10.0",
462
+ "bitflags",
446
463
  "libc",
447
464
  "objc2",
448
465
  "objc2-core-audio",
@@ -480,7 +497,7 @@ version = "0.3.2"
480
497
  source = "registry+https://github.com/rust-lang/crates.io-index"
481
498
  checksum = "5a89f2ec274a0cf4a32642b2991e8b351a404d290da87bb6a9a9d8632490bd1c"
482
499
  dependencies = [
483
- "bitflags 2.10.0",
500
+ "bitflags",
484
501
  "objc2",
485
502
  ]
486
503
 
@@ -490,7 +507,7 @@ version = "0.3.2"
490
507
  source = "registry+https://github.com/rust-lang/crates.io-index"
491
508
  checksum = "2a180dd8642fa45cdb7dd721cd4c11b1cadd4929ce112ebd8b9f5803cc79d536"
492
509
  dependencies = [
493
- "bitflags 2.10.0",
510
+ "bitflags",
494
511
  "block2",
495
512
  "dispatch2",
496
513
  "libc",
@@ -509,7 +526,7 @@ version = "0.3.2"
509
526
  source = "registry+https://github.com/rust-lang/crates.io-index"
510
527
  checksum = "e3e0adef53c21f888deb4fa59fc59f7eb17404926ee8a6f59f5df0fd7f9f3272"
511
528
  dependencies = [
512
- "bitflags 2.10.0",
529
+ "bitflags",
513
530
  "block2",
514
531
  "libc",
515
532
  "objc2",
@@ -518,9 +535,9 @@ dependencies = [
518
535
 
519
536
  [[package]]
520
537
  name = "once_cell"
521
- version = "1.21.3"
538
+ version = "1.21.4"
522
539
  source = "registry+https://github.com/rust-lang/crates.io-index"
523
- checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d"
540
+ checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50"
524
541
 
525
542
  [[package]]
526
543
  name = "pi_nes_core"
@@ -537,15 +554,9 @@ dependencies = [
537
554
 
538
555
  [[package]]
539
556
  name = "pin-project-lite"
540
- version = "0.2.16"
557
+ version = "0.2.17"
541
558
  source = "registry+https://github.com/rust-lang/crates.io-index"
542
- checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b"
543
-
544
- [[package]]
545
- name = "pin-utils"
546
- version = "0.1.0"
547
- source = "registry+https://github.com/rust-lang/crates.io-index"
548
- checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
559
+ checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd"
549
560
 
550
561
  [[package]]
551
562
  name = "pkg-config"
@@ -561,18 +572,18 @@ checksum = "c33a9471896f1c69cecef8d20cbe2f7accd12527ce60845ff44c153bb2a21b49"
561
572
 
562
573
  [[package]]
563
574
  name = "portable-atomic-util"
564
- version = "0.2.5"
575
+ version = "0.2.6"
565
576
  source = "registry+https://github.com/rust-lang/crates.io-index"
566
- checksum = "7a9db96d7fa8782dd8c15ce32ffe8680bbd1e978a43bf51a34d39483540495f5"
577
+ checksum = "091397be61a01d4be58e7841595bd4bfedb15f1cd54977d79b8271e94ed799a3"
567
578
  dependencies = [
568
579
  "portable-atomic",
569
580
  ]
570
581
 
571
582
  [[package]]
572
583
  name = "proc-macro-crate"
573
- version = "3.4.0"
584
+ version = "3.5.0"
574
585
  source = "registry+https://github.com/rust-lang/crates.io-index"
575
- checksum = "219cb19e96be00ab2e37d6e299658a0cfa83e52429179969b0f0121b4ac46983"
586
+ checksum = "e67ba7e9b2b56446f1d419b1d807906278ffa1a658a8a5d8a39dcb1f5a78614f"
576
587
  dependencies = [
577
588
  "toml_edit",
578
589
  ]
@@ -588,18 +599,18 @@ dependencies = [
588
599
 
589
600
  [[package]]
590
601
  name = "quote"
591
- version = "1.0.44"
602
+ version = "1.0.45"
592
603
  source = "registry+https://github.com/rust-lang/crates.io-index"
593
- checksum = "21b2ebcf727b7760c461f091f9f0f539b77b8e87f2fd88131e7f1b433b3cece4"
604
+ checksum = "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924"
594
605
  dependencies = [
595
606
  "proc-macro2",
596
607
  ]
597
608
 
598
609
  [[package]]
599
610
  name = "regex"
600
- version = "1.12.2"
611
+ version = "1.12.3"
601
612
  source = "registry+https://github.com/rust-lang/crates.io-index"
602
- checksum = "843bc0191f75f3e22651ae5f1e72939ab2f72a4bc30fa80a066bd66edefc24d4"
613
+ checksum = "e10754a14b9137dd7b1e3e5b0493cc9171fdd105e0ab477f51b72e7f3ac0e276"
603
614
  dependencies = [
604
615
  "aho-corasick",
605
616
  "memchr",
@@ -609,9 +620,9 @@ dependencies = [
609
620
 
610
621
  [[package]]
611
622
  name = "regex-automata"
612
- version = "0.4.13"
623
+ version = "0.4.14"
613
624
  source = "registry+https://github.com/rust-lang/crates.io-index"
614
- checksum = "5276caf25ac86c8d810222b3dbb938e512c55c6831a10f3e6ed1c93b84041f1c"
625
+ checksum = "6e1dd4122fc1595e8162618945476892eefca7b88c52820e74af6262213cae8f"
615
626
  dependencies = [
616
627
  "aho-corasick",
617
628
  "memchr",
@@ -620,9 +631,9 @@ dependencies = [
620
631
 
621
632
  [[package]]
622
633
  name = "regex-syntax"
623
- version = "0.8.8"
634
+ version = "0.8.10"
624
635
  source = "registry+https://github.com/rust-lang/crates.io-index"
625
- checksum = "7a2d987857b319362043e95f5353c0535c1f58eec5336fdfcf626430af7def58"
636
+ checksum = "dc897dd8d9e8bd1ed8cdad82b5966c3e0ecae09fb1907d58efaa013543185d0a"
626
637
 
627
638
  [[package]]
628
639
  name = "ringbuf"
@@ -652,9 +663,9 @@ dependencies = [
652
663
 
653
664
  [[package]]
654
665
  name = "semver"
655
- version = "1.0.27"
666
+ version = "1.0.28"
656
667
  source = "registry+https://github.com/rust-lang/crates.io-index"
657
- checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2"
668
+ checksum = "8a7852d02fc848982e0c167ef163aaff9cd91dc640ba85e263cb1ce46fae51cd"
658
669
 
659
670
  [[package]]
660
671
  name = "serde_core"
@@ -684,9 +695,9 @@ checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5"
684
695
 
685
696
  [[package]]
686
697
  name = "syn"
687
- version = "2.0.114"
698
+ version = "2.0.117"
688
699
  source = "registry+https://github.com/rust-lang/crates.io-index"
689
- checksum = "d4d107df263a3013ef9b1879b0df87d706ff80f65a86ea879bd9c31f9b307c2a"
700
+ checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99"
690
701
  dependencies = [
691
702
  "proc-macro2",
692
703
  "quote",
@@ -715,18 +726,18 @@ dependencies = [
715
726
 
716
727
  [[package]]
717
728
  name = "toml_datetime"
718
- version = "0.7.5+spec-1.1.0"
729
+ version = "1.1.1+spec-1.1.0"
719
730
  source = "registry+https://github.com/rust-lang/crates.io-index"
720
- checksum = "92e1cfed4a3038bc5a127e35a2d360f145e1f4b971b551a2ba5fd7aedf7e1347"
731
+ checksum = "3165f65f62e28e0115a00b2ebdd37eb6f3b641855f9d636d3cd4103767159ad7"
721
732
  dependencies = [
722
733
  "serde_core",
723
734
  ]
724
735
 
725
736
  [[package]]
726
737
  name = "toml_edit"
727
- version = "0.23.10+spec-1.0.0"
738
+ version = "0.25.10+spec-1.1.0"
728
739
  source = "registry+https://github.com/rust-lang/crates.io-index"
729
- checksum = "84c8b9f757e028cee9fa244aea147aab2a9ec09d5325a9b01e0a49730c2b5269"
740
+ checksum = "a82418ca169e235e6c399a84e395ab6debeb3bc90edc959bf0f48647c6a32d1b"
730
741
  dependencies = [
731
742
  "indexmap",
732
743
  "toml_datetime",
@@ -736,24 +747,24 @@ dependencies = [
736
747
 
737
748
  [[package]]
738
749
  name = "toml_parser"
739
- version = "1.0.6+spec-1.1.0"
750
+ version = "1.1.2+spec-1.1.0"
740
751
  source = "registry+https://github.com/rust-lang/crates.io-index"
741
- checksum = "a3198b4b0a8e11f09dd03e133c0280504d0801269e9afa46362ffde1cbeebf44"
752
+ checksum = "a2abe9b86193656635d2411dc43050282ca48aa31c2451210f4202550afb7526"
742
753
  dependencies = [
743
754
  "winnow",
744
755
  ]
745
756
 
746
757
  [[package]]
747
758
  name = "unicode-ident"
748
- version = "1.0.22"
759
+ version = "1.0.24"
749
760
  source = "registry+https://github.com/rust-lang/crates.io-index"
750
- checksum = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5"
761
+ checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75"
751
762
 
752
763
  [[package]]
753
764
  name = "unicode-segmentation"
754
- version = "1.12.0"
765
+ version = "1.13.2"
755
766
  source = "registry+https://github.com/rust-lang/crates.io-index"
756
- checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493"
767
+ checksum = "9629274872b2bfaf8d66f5f15725007f635594914870f65218920345aa11aa8c"
757
768
 
758
769
  [[package]]
759
770
  name = "walkdir"
@@ -767,9 +778,9 @@ dependencies = [
767
778
 
768
779
  [[package]]
769
780
  name = "wasm-bindgen"
770
- version = "0.2.108"
781
+ version = "0.2.117"
771
782
  source = "registry+https://github.com/rust-lang/crates.io-index"
772
- checksum = "64024a30ec1e37399cf85a7ffefebdb72205ca1c972291c51512360d90bd8566"
783
+ checksum = "0551fc1bb415591e3372d0bc4780db7e587d84e2a7e79da121051c5c4b89d0b0"
773
784
  dependencies = [
774
785
  "cfg-if",
775
786
  "once_cell",
@@ -780,23 +791,19 @@ dependencies = [
780
791
 
781
792
  [[package]]
782
793
  name = "wasm-bindgen-futures"
783
- version = "0.4.58"
794
+ version = "0.4.67"
784
795
  source = "registry+https://github.com/rust-lang/crates.io-index"
785
- checksum = "70a6e77fd0ae8029c9ea0063f87c46fde723e7d887703d74ad2616d792e51e6f"
796
+ checksum = "03623de6905b7206edd0a75f69f747f134b7f0a2323392d664448bf2d3c5d87e"
786
797
  dependencies = [
787
- "cfg-if",
788
- "futures-util",
789
798
  "js-sys",
790
- "once_cell",
791
799
  "wasm-bindgen",
792
- "web-sys",
793
800
  ]
794
801
 
795
802
  [[package]]
796
803
  name = "wasm-bindgen-macro"
797
- version = "0.2.108"
804
+ version = "0.2.117"
798
805
  source = "registry+https://github.com/rust-lang/crates.io-index"
799
- checksum = "008b239d9c740232e71bd39e8ef6429d27097518b6b30bdf9086833bd5b6d608"
806
+ checksum = "7fbdf9a35adf44786aecd5ff89b4563a90325f9da0923236f6104e603c7e86be"
800
807
  dependencies = [
801
808
  "quote",
802
809
  "wasm-bindgen-macro-support",
@@ -804,9 +811,9 @@ dependencies = [
804
811
 
805
812
  [[package]]
806
813
  name = "wasm-bindgen-macro-support"
807
- version = "0.2.108"
814
+ version = "0.2.117"
808
815
  source = "registry+https://github.com/rust-lang/crates.io-index"
809
- checksum = "5256bae2d58f54820e6490f9839c49780dff84c65aeab9e772f15d5f0e913a55"
816
+ checksum = "dca9693ef2bab6d4e6707234500350d8dad079eb508dca05530c85dc3a529ff2"
810
817
  dependencies = [
811
818
  "bumpalo",
812
819
  "proc-macro2",
@@ -817,18 +824,18 @@ dependencies = [
817
824
 
818
825
  [[package]]
819
826
  name = "wasm-bindgen-shared"
820
- version = "0.2.108"
827
+ version = "0.2.117"
821
828
  source = "registry+https://github.com/rust-lang/crates.io-index"
822
- checksum = "1f01b580c9ac74c8d8f0c0e4afb04eeef2acf145458e52c03845ee9cd23e3d12"
829
+ checksum = "39129a682a6d2d841b6c429d0c51e5cb0ed1a03829d8b3d1e69a011e62cb3d3b"
823
830
  dependencies = [
824
831
  "unicode-ident",
825
832
  ]
826
833
 
827
834
  [[package]]
828
835
  name = "web-sys"
829
- version = "0.3.85"
836
+ version = "0.3.94"
830
837
  source = "registry+https://github.com/rust-lang/crates.io-index"
831
- checksum = "312e32e551d92129218ea9a2452120f4aabc03529ef03e4d0d82fb2780608598"
838
+ checksum = "cd70027e39b12f0849461e08ffc50b9cd7688d942c1c8e3c7b22273236b4dd0a"
832
839
  dependencies = [
833
840
  "js-sys",
834
841
  "wasm-bindgen",
@@ -1030,9 +1037,9 @@ checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0"
1030
1037
 
1031
1038
  [[package]]
1032
1039
  name = "winnow"
1033
- version = "0.7.14"
1040
+ version = "1.0.1"
1034
1041
  source = "registry+https://github.com/rust-lang/crates.io-index"
1035
- checksum = "5a5364e9d77fcdeeaa6062ced926ee3381faa2ee02d3eb83a5c27a8825540829"
1042
+ checksum = "09dac053f1cd375980747450bfc7250c264eaae0583872e845c0c7cd578872b5"
1036
1043
  dependencies = [
1037
1044
  "memchr",
1038
1045
  ]
@@ -10,7 +10,7 @@ import {
10
10
  type Component,
11
11
  type Focusable,
12
12
  type SelectItem,
13
- getEditorKeybindings,
13
+ getKeybindings,
14
14
  } from "@mariozechner/pi-tui";
15
15
  import type { RomEntry } from "./roms.js";
16
16
 
@@ -62,18 +62,18 @@ class RomSelectorDialog extends Container implements Focusable {
62
62
  }
63
63
 
64
64
  handleInput(data: string): void {
65
- const kb = getEditorKeybindings();
65
+ const kb = getKeybindings();
66
66
  if (
67
- kb.matches(data, "selectUp") ||
68
- kb.matches(data, "selectDown") ||
69
- kb.matches(data, "selectConfirm") ||
70
- kb.matches(data, "selectCancel") ||
71
- kb.matches(data, "pageUp") ||
72
- kb.matches(data, "pageDown")
67
+ kb.matches(data, "tui.select.up") ||
68
+ kb.matches(data, "tui.select.down") ||
69
+ kb.matches(data, "tui.select.confirm") ||
70
+ kb.matches(data, "tui.select.cancel") ||
71
+ kb.matches(data, "tui.select.pageUp") ||
72
+ kb.matches(data, "tui.select.pageDown")
73
73
  ) {
74
74
  if (this.selectList) {
75
75
  this.selectList.handleInput(data);
76
- } else if (kb.matches(data, "selectCancel")) {
76
+ } else if (kb.matches(data, "tui.select.cancel")) {
77
77
  this.onCancel();
78
78
  }
79
79
  this.tui.requestRender();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tmustier/pi-nes",
3
- "version": "0.2.38",
3
+ "version": "0.2.40",
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", () => {
@@ -1,221 +0,0 @@
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 = "bitflags"
16
- version = "2.10.0"
17
- source = "registry+https://github.com/rust-lang/crates.io-index"
18
- checksum = "812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3"
19
-
20
- [[package]]
21
- name = "cfg-if"
22
- version = "1.0.4"
23
- source = "registry+https://github.com/rust-lang/crates.io-index"
24
- checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801"
25
-
26
- [[package]]
27
- name = "convert_case"
28
- version = "0.6.0"
29
- source = "registry+https://github.com/rust-lang/crates.io-index"
30
- checksum = "ec182b0ca2f35d8fc196cf3404988fd8b8c739a4d270ff118a398feb0cbec1ca"
31
- dependencies = [
32
- "unicode-segmentation",
33
- ]
34
-
35
- [[package]]
36
- name = "ctor"
37
- version = "0.2.9"
38
- source = "registry+https://github.com/rust-lang/crates.io-index"
39
- checksum = "32a2785755761f3ddc1492979ce1e48d2c00d09311c39e4466429188f3dd6501"
40
- dependencies = [
41
- "quote",
42
- "syn",
43
- ]
44
-
45
- [[package]]
46
- name = "libc"
47
- version = "0.2.180"
48
- source = "registry+https://github.com/rust-lang/crates.io-index"
49
- checksum = "bcc35a38544a891a5f7c865aca548a982ccb3b8650a5b06d0fd33a10283c56fc"
50
-
51
- [[package]]
52
- name = "libloading"
53
- version = "0.8.9"
54
- source = "registry+https://github.com/rust-lang/crates.io-index"
55
- checksum = "d7c4b02199fee7c5d21a5ae7d8cfa79a6ef5bb2fc834d6e9058e89c825efdc55"
56
- dependencies = [
57
- "cfg-if",
58
- "windows-link",
59
- ]
60
-
61
- [[package]]
62
- name = "memchr"
63
- version = "2.7.6"
64
- source = "registry+https://github.com/rust-lang/crates.io-index"
65
- checksum = "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273"
66
-
67
- [[package]]
68
- name = "napi"
69
- version = "2.16.17"
70
- source = "registry+https://github.com/rust-lang/crates.io-index"
71
- checksum = "55740c4ae1d8696773c78fdafd5d0e5fe9bc9f1b071c7ba493ba5c413a9184f3"
72
- dependencies = [
73
- "bitflags",
74
- "ctor",
75
- "napi-derive",
76
- "napi-sys",
77
- "once_cell",
78
- ]
79
-
80
- [[package]]
81
- name = "napi-build"
82
- version = "2.3.1"
83
- source = "registry+https://github.com/rust-lang/crates.io-index"
84
- checksum = "d376940fd5b723c6893cd1ee3f33abbfd86acb1cd1ec079f3ab04a2a3bc4d3b1"
85
-
86
- [[package]]
87
- name = "napi-derive"
88
- version = "2.16.13"
89
- source = "registry+https://github.com/rust-lang/crates.io-index"
90
- checksum = "7cbe2585d8ac223f7d34f13701434b9d5f4eb9c332cccce8dee57ea18ab8ab0c"
91
- dependencies = [
92
- "cfg-if",
93
- "convert_case",
94
- "napi-derive-backend",
95
- "proc-macro2",
96
- "quote",
97
- "syn",
98
- ]
99
-
100
- [[package]]
101
- name = "napi-derive-backend"
102
- version = "1.0.75"
103
- source = "registry+https://github.com/rust-lang/crates.io-index"
104
- checksum = "1639aaa9eeb76e91c6ae66da8ce3e89e921cd3885e99ec85f4abacae72fc91bf"
105
- dependencies = [
106
- "convert_case",
107
- "once_cell",
108
- "proc-macro2",
109
- "quote",
110
- "regex",
111
- "semver",
112
- "syn",
113
- ]
114
-
115
- [[package]]
116
- name = "napi-sys"
117
- version = "2.4.0"
118
- source = "registry+https://github.com/rust-lang/crates.io-index"
119
- checksum = "427802e8ec3a734331fec1035594a210ce1ff4dc5bc1950530920ab717964ea3"
120
- dependencies = [
121
- "libloading",
122
- ]
123
-
124
- [[package]]
125
- name = "once_cell"
126
- version = "1.21.3"
127
- source = "registry+https://github.com/rust-lang/crates.io-index"
128
- checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d"
129
-
130
- [[package]]
131
- name = "pi_nes_kitty_shm"
132
- version = "0.1.0"
133
- dependencies = [
134
- "libc",
135
- "napi",
136
- "napi-build",
137
- "napi-derive",
138
- "once_cell",
139
- ]
140
-
141
- [[package]]
142
- name = "proc-macro2"
143
- version = "1.0.106"
144
- source = "registry+https://github.com/rust-lang/crates.io-index"
145
- checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934"
146
- dependencies = [
147
- "unicode-ident",
148
- ]
149
-
150
- [[package]]
151
- name = "quote"
152
- version = "1.0.44"
153
- source = "registry+https://github.com/rust-lang/crates.io-index"
154
- checksum = "21b2ebcf727b7760c461f091f9f0f539b77b8e87f2fd88131e7f1b433b3cece4"
155
- dependencies = [
156
- "proc-macro2",
157
- ]
158
-
159
- [[package]]
160
- name = "regex"
161
- version = "1.12.2"
162
- source = "registry+https://github.com/rust-lang/crates.io-index"
163
- checksum = "843bc0191f75f3e22651ae5f1e72939ab2f72a4bc30fa80a066bd66edefc24d4"
164
- dependencies = [
165
- "aho-corasick",
166
- "memchr",
167
- "regex-automata",
168
- "regex-syntax",
169
- ]
170
-
171
- [[package]]
172
- name = "regex-automata"
173
- version = "0.4.13"
174
- source = "registry+https://github.com/rust-lang/crates.io-index"
175
- checksum = "5276caf25ac86c8d810222b3dbb938e512c55c6831a10f3e6ed1c93b84041f1c"
176
- dependencies = [
177
- "aho-corasick",
178
- "memchr",
179
- "regex-syntax",
180
- ]
181
-
182
- [[package]]
183
- name = "regex-syntax"
184
- version = "0.8.8"
185
- source = "registry+https://github.com/rust-lang/crates.io-index"
186
- checksum = "7a2d987857b319362043e95f5353c0535c1f58eec5336fdfcf626430af7def58"
187
-
188
- [[package]]
189
- name = "semver"
190
- version = "1.0.27"
191
- source = "registry+https://github.com/rust-lang/crates.io-index"
192
- checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2"
193
-
194
- [[package]]
195
- name = "syn"
196
- version = "2.0.114"
197
- source = "registry+https://github.com/rust-lang/crates.io-index"
198
- checksum = "d4d107df263a3013ef9b1879b0df87d706ff80f65a86ea879bd9c31f9b307c2a"
199
- dependencies = [
200
- "proc-macro2",
201
- "quote",
202
- "unicode-ident",
203
- ]
204
-
205
- [[package]]
206
- name = "unicode-ident"
207
- version = "1.0.22"
208
- source = "registry+https://github.com/rust-lang/crates.io-index"
209
- checksum = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5"
210
-
211
- [[package]]
212
- name = "unicode-segmentation"
213
- version = "1.12.0"
214
- source = "registry+https://github.com/rust-lang/crates.io-index"
215
- checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493"
216
-
217
- [[package]]
218
- name = "windows-link"
219
- version = "0.2.1"
220
- source = "registry+https://github.com/rust-lang/crates.io-index"
221
- checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5"
@@ -1,13 +0,0 @@
1
- /* tslint:disable */
2
- /* eslint-disable */
3
-
4
- /* auto-generated by NAPI-RS */
5
-
6
- export interface SharedMemoryHandle {
7
- name: string
8
- size: number
9
- buffer: Uint8Array
10
- }
11
- export declare function nativeVersion(): string
12
- export declare function createSharedMemory(size: number): SharedMemoryHandle
13
- export declare function closeSharedMemory(name: string): boolean