@wasm-gaming/rsdkv4-wasm 0.2.0 → 0.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.
Files changed (40) hide show
  1. package/README.md +159 -213
  2. package/dist/rsdkv4/app/app.css +160 -0
  3. package/dist/rsdkv4/app/app.js +521 -0
  4. package/dist/rsdkv4/app/assets/player-knuckles.svg +757 -0
  5. package/dist/rsdkv4/app/assets/player-sonic.svg +720 -0
  6. package/dist/rsdkv4/app/assets/player-sonictails.svg +1414 -0
  7. package/dist/rsdkv4/app/assets/player-tails.svg +979 -0
  8. package/dist/rsdkv4/app/assets/stages-sonic1/special.png +0 -0
  9. package/dist/rsdkv4/app/assets/stages-sonic1/zone-1.png +0 -0
  10. package/dist/rsdkv4/app/assets/stages-sonic1/zone-2.png +0 -0
  11. package/dist/rsdkv4/app/assets/stages-sonic1/zone-3.png +0 -0
  12. package/dist/rsdkv4/app/assets/stages-sonic1/zone-4.png +0 -0
  13. package/dist/rsdkv4/app/assets/stages-sonic1/zone-5.png +0 -0
  14. package/dist/rsdkv4/app/assets/stages-sonic1/zone-6.png +0 -0
  15. package/dist/rsdkv4/app/assets/stages-sonic1/zone-7.png +0 -0
  16. package/dist/rsdkv4/app/assets/stages-sonic2/special.png +0 -0
  17. package/dist/rsdkv4/app/assets/stages-sonic2/zone-1.png +0 -0
  18. package/dist/rsdkv4/app/assets/stages-sonic2/zone-10.png +0 -0
  19. package/dist/rsdkv4/app/assets/stages-sonic2/zone-2.png +0 -0
  20. package/dist/rsdkv4/app/assets/stages-sonic2/zone-3.png +0 -0
  21. package/dist/rsdkv4/app/assets/stages-sonic2/zone-4.png +0 -0
  22. package/dist/rsdkv4/app/assets/stages-sonic2/zone-5.png +0 -0
  23. package/dist/rsdkv4/app/assets/stages-sonic2/zone-6.png +0 -0
  24. package/dist/rsdkv4/app/assets/stages-sonic2/zone-7.png +0 -0
  25. package/dist/rsdkv4/app/assets/stages-sonic2/zone-8.png +0 -0
  26. package/dist/rsdkv4/app/assets/stages-sonic2/zone-9.png +0 -0
  27. package/dist/rsdkv4/engine-specs.js +382 -0
  28. package/dist/rsdkv4/rsdkv4.options.d.ts +13 -5
  29. package/dist/rsdkv4/rsdkv4.options.d.ts.map +1 -1
  30. package/dist/rsdkv4/rsdkv4.options.js +6 -1
  31. package/dist/rsdkv4/rsdkv4.options.js.map +1 -1
  32. package/dist/rsdkv4/rsdkv4.sdk.d.ts +82 -2
  33. package/dist/rsdkv4/rsdkv4.sdk.d.ts.map +1 -1
  34. package/dist/rsdkv4/rsdkv4.sdk.js +217 -26
  35. package/dist/rsdkv4/rsdkv4.sdk.js.map +1 -1
  36. package/package.json +7 -4
  37. package/src/app/app.css +160 -0
  38. package/src/app/app.js +521 -0
  39. package/src/rsdkv4.options.ts +14 -6
  40. package/src/rsdkv4.sdk.ts +283 -26
@@ -7,7 +7,7 @@
7
7
  * const play = await new Rsdkv4SDK()
8
8
  * .mount(document.querySelector('#stage'))
9
9
  * .assets({ data: () => library.readBytes('Sonic2') })
10
- * .storage({ namespace: 'rsdkv4/Sonic2' })
10
+ * .storage({ namespace: 'sonic-2' }) // → OPFS rsdkv4/sonic-2/
11
11
  * .config({ startMenu: 'host' })
12
12
  * .on('saves', ({ detail }) => paintSlots(detail))
13
13
  * .start({ slot: 0 });
@@ -36,11 +36,19 @@
36
36
  * @module
37
37
  * @see [The engine contract](https://wasm-gaming.github.io/engine-specs/api-docs/)
38
38
  */
39
- import { EnginePlayBase, EngineSDKBase, EventEmitter } from '@wasm-gaming/engine-specs';
39
+ import { EnginePlayBase, EngineSDKBase, EventEmitter } from './engine-specs.js';
40
40
  import { RSDKV4_BUTTONS, RSDKV4_SPEC, } from './rsdkv4.options.js';
41
41
  export { RSDKV4_BUTTONS, RSDKV4_INPUT, RSDKV4_SPEC } from './rsdkv4.options.js';
42
42
  const WORK_ROOT = '/data';
43
43
  const DEFAULT_STORAGE_NAMESPACE = 'default';
44
+ /**
45
+ * This engine's folder in WASMFS / OPFS. Every rsdkv4 file lives under it, whatever
46
+ * namespace a host picks, so two engines can never share a working dir — the host
47
+ * chooses the sub-folder, never the root. Same value as {@link Rsdkv4SDK.id}.
48
+ */
49
+ const ENGINE_ID = 'rsdkv4';
50
+ /** The files this engine keeps in its namespace — and the only ones it ever migrates. */
51
+ const ENGINE_FILES = ['Data.rsdk', 'settings.ini', 'SData.bin'];
44
52
  /** RSDKv4's save file, written next to the game data in the working dir. */
45
53
  const SAVE_FILE = 'SData.bin';
46
54
  /**
@@ -69,6 +77,7 @@ const ENGINE_BRIDGES = [
69
77
  'web_start_game',
70
78
  'web_audio_stop',
71
79
  'web_devmenu_get_stage_list',
80
+ 'web_devmenu_open',
72
81
  'web_input_set_source',
73
82
  ];
74
83
  /**
@@ -79,6 +88,33 @@ const ENGINE_BRIDGES = [
79
88
  const INPUT_PULL_HOOK = '__rsdkv4_input_pull';
80
89
  /** How often a pull that keeps throwing is allowed to say so. See {@link Rsdkv4Play}. */
81
90
  const INPUT_ERROR_INTERVAL_MS = 1000;
91
+ /**
92
+ * Keys whose browser default action is swallowed while the canvas has focus — the
93
+ * arrows and Space scroll the page under the game, Tab takes the focus off the canvas
94
+ * and with it every key the engine was reading.
95
+ *
96
+ * Both `KeyboardEvent.code` and `.key` spellings are in here because the set is
97
+ * matched against each: `code` is the physical key (layout-independent, which is what
98
+ * the engine binds), `key` is what it produced, and a browser or a remapping tool that
99
+ * reports only one of the two still lands.
100
+ *
101
+ * WASD is included because this build's `ProcessInput()` reads those scancodes as a
102
+ * second set of directions. They have no default action to prevent today, so this
103
+ * costs nothing and stops mattering the day the page grows a shortcut on one of them.
104
+ */
105
+ const ENGINE_KEYS = new Set([
106
+ 'ArrowUp',
107
+ 'ArrowDown',
108
+ 'ArrowLeft',
109
+ 'ArrowRight',
110
+ 'KeyW',
111
+ 'KeyA',
112
+ 'KeyS',
113
+ 'KeyD',
114
+ 'Space',
115
+ ' ',
116
+ 'Tab',
117
+ ]);
82
118
  // ---------------------------------------------------------------- small helpers
83
119
  function toUint8(x) {
84
120
  if (x == null)
@@ -99,19 +135,32 @@ async function resolveAsset(asset) {
99
135
  return null;
100
136
  return toUint8(typeof asset === 'function' ? await asset() : asset);
101
137
  }
102
- /** Normalize a host-provided storage namespace into a safe relative path. */
103
- function normalizeStorageNamespace(namespace) {
104
- if (typeof namespace !== 'string' || !namespace.trim())
105
- return DEFAULT_STORAGE_NAMESPACE;
106
- const cleaned = namespace
107
- .split('/')
108
- .map((segment) => segment.trim())
109
- .filter(Boolean)
110
- .map((segment) => segment.replace(/[^A-Za-z0-9._-]/g, '_'))
111
- .filter(Boolean)
112
- .join('/');
113
- return cleaned || DEFAULT_STORAGE_NAMESPACE;
138
+ /**
139
+ * Where an engine keeps one namespace: `<engineId>/<namespace>`, relative to the OPFS
140
+ * root (which is WASMFS `/data`). Written with nothing rsdkv4-specific in it, so it can
141
+ * move verbatim into engine-specs.
142
+ *
143
+ * The host's namespace is cleaned segment by segment: blanks dropped, `.` and `..`
144
+ * dropped (they used to survive, and `'../x'` walked out of the work root), anything
145
+ * outside `[A-Za-z0-9._-]` turned into `_`. Nothing usable left means `'default'`.
146
+ * A namespace that already starts with the engine id has it stripped once, so a host
147
+ * written against the old convention (`'rsdkv4/Sonic1'`) lands where it always did.
148
+ */
149
+ export function storagePath(engineId, namespace) {
150
+ const segments = typeof namespace === 'string'
151
+ ? namespace
152
+ .split('/')
153
+ .map((segment) => segment.trim())
154
+ .filter((segment) => segment && segment !== '.' && segment !== '..')
155
+ .map((segment) => segment.replace(/[^A-Za-z0-9._-]/g, '_'))
156
+ : [];
157
+ const prefixed = segments.length > 1 && segments[0] === engineId;
158
+ if (prefixed)
159
+ segments.shift();
160
+ const cleaned = segments.join('/') || DEFAULT_STORAGE_NAMESPACE;
161
+ return { namespace: cleaned, path: `${engineId}/${cleaned}`, prefixed };
114
162
  }
163
+ let warnedPrefixed = false;
115
164
  /** The plain values behind a descriptor table — what the engine actually needs. */
116
165
  function valuesOf(described) {
117
166
  const out = {};
@@ -230,16 +279,16 @@ function mountWorkingDir(Module, persist) {
230
279
  return { persistent: false };
231
280
  }
232
281
  /**
233
- * OPFS handle for `<namespace>/`, reached with the plain (async) OPFS API from JS —
282
+ * OPFS handle for `<engineId>/<namespace>/` (a {@link storagePath}), reached with the plain (async) OPFS API from JS —
234
283
  * which, unlike the WASM side's sync access handles, works on the main thread of any
235
284
  * page. Returns null when OPFS isn't available at all.
236
285
  */
237
- async function opfsNamespaceDir(namespace, create) {
286
+ async function opfsNamespaceDir(path, create) {
238
287
  if (typeof navigator === 'undefined' || !navigator.storage?.getDirectory)
239
288
  return null;
240
289
  try {
241
290
  let dir = await navigator.storage.getDirectory();
242
- for (const segment of namespace.split('/').filter(Boolean)) {
291
+ for (const segment of path.split('/').filter(Boolean)) {
243
292
  dir = await dir.getDirectoryHandle(segment, { create });
244
293
  }
245
294
  return dir;
@@ -248,6 +297,46 @@ async function opfsNamespaceDir(namespace, create) {
248
297
  return null; // missing (create: false), or blocked
249
298
  }
250
299
  }
300
+ /**
301
+ * Before the namespace lived under `rsdkv4/`, the default one was a top-level
302
+ * `default/` — a folder snes9x, mGBA and geolith also fall back to. Copy rsdkv4's own
303
+ * files out of it into `rsdkv4/default/` when the new folder lacks them. Copy, never
304
+ * move or delete: whatever else is in `default/` is not ours to touch.
305
+ */
306
+ async function migrateLegacyDefault() {
307
+ const legacy = await opfsNamespaceDir(DEFAULT_STORAGE_NAMESPACE, false);
308
+ if (!legacy)
309
+ return;
310
+ let target = null;
311
+ for (const name of ENGINE_FILES) {
312
+ let source;
313
+ try {
314
+ source = await (await legacy.getFileHandle(name)).getFile();
315
+ }
316
+ catch {
317
+ continue;
318
+ }
319
+ target ??= await opfsNamespaceDir(`${ENGINE_ID}/${DEFAULT_STORAGE_NAMESPACE}`, true);
320
+ if (!target)
321
+ return;
322
+ try {
323
+ await target.getFileHandle(name);
324
+ continue; // already there: the new layout wins
325
+ }
326
+ catch {
327
+ /* missing — copy it */
328
+ }
329
+ try {
330
+ const writable = await (await target.getFileHandle(name, { create: true })).createWritable();
331
+ await writable.write(await source.arrayBuffer());
332
+ await writable.close();
333
+ console.info(`[rsdkv4] copied ${DEFAULT_STORAGE_NAMESPACE}/${name} → ${ENGINE_ID}/${DEFAULT_STORAGE_NAMESPACE}/${name}`);
334
+ }
335
+ catch (e) {
336
+ console.warn(`[rsdkv4] could not migrate ${DEFAULT_STORAGE_NAMESPACE}/${name}`, e);
337
+ }
338
+ }
339
+ }
251
340
  /**
252
341
  * Wait for `Engine::Init`, which runs on the engine's first frame (main.cpp's
253
342
  * main_loop), not inside `callMain`. Gives up after ~4s rather than hanging the host:
@@ -268,6 +357,12 @@ async function waitForEngine(Module, timeoutMs = 4000) {
268
357
  function engineBridgeComplete(Module) {
269
358
  return ENGINE_BRIDGES.every((name) => typeof Module?.[name] === 'function');
270
359
  }
360
+ /**
361
+ * The order `web_devmenu_open`'s first argument counts in — the index into this array
362
+ * is what crosses to C++, so it has to stay in step with WebDevMenu.cpp (written by
363
+ * scripts/build.sh). Names on this side, a number on the wire.
364
+ */
365
+ const DEV_MENU_SCREENS = ['main', 'player', 'categories', 'stages'];
271
366
  // ---------------------------------------------------------------- the live engine
272
367
  /**
273
368
  * The running engine.
@@ -291,7 +386,8 @@ export class Rsdkv4Play extends EnginePlayBase {
291
386
  #boxObserver = null;
292
387
  #persistent = false;
293
388
  #namespace = DEFAULT_STORAGE_NAMESPACE;
294
- #workDir = `${WORK_ROOT}/${DEFAULT_STORAGE_NAMESPACE}`;
389
+ #storagePath = `${ENGINE_ID}/${DEFAULT_STORAGE_NAMESPACE}`;
390
+ #workDir = `${WORK_ROOT}/${ENGINE_ID}/${DEFAULT_STORAGE_NAMESPACE}`;
295
391
  #mirrorSaves = true;
296
392
  #saveTimer = null;
297
393
  /** Last bytes mirrored out, so the `saves` event means "changed" and not "checked". */
@@ -431,6 +527,7 @@ export class Rsdkv4Play extends EnginePlayBase {
431
527
  canvas.style.outline = 'none';
432
528
  canvas.addEventListener('contextmenu', this.#swallowContextMenu);
433
529
  canvas.addEventListener('pointerdown', this.#onPointerDown);
530
+ canvas.addEventListener('keydown', this.#onKeyDown);
434
531
  window.addEventListener('resize', this.#onResize);
435
532
  // Fullscreen transitions need a refit too.
436
533
  document.addEventListener('fullscreenchange', this.#onFullscreenChange);
@@ -554,6 +651,14 @@ export class Rsdkv4Play extends EnginePlayBase {
554
651
  get namespace() {
555
652
  return this.#namespace;
556
653
  }
654
+ /**
655
+ * Where this session's files live, relative to the OPFS root: `rsdkv4/<namespace>`.
656
+ * The path a host walks with `navigator.storage.getDirectory()` to stage a
657
+ * `Data.rsdk` before booting, or to read `SData.bin` after.
658
+ */
659
+ get storagePath() {
660
+ return this.#storagePath;
661
+ }
557
662
  /**
558
663
  * Input ownership, named. `play.input.claim(buttons)` and `play.input.release()`
559
664
  * are exactly `options({ buttons })` and `options({ buttons: null })` — same state,
@@ -569,8 +674,33 @@ export class Rsdkv4Play extends EnginePlayBase {
569
674
  get claimed() {
570
675
  return play.#buttons !== null;
571
676
  },
677
+ get mask() {
678
+ return play.#engineMask();
679
+ },
680
+ get held() {
681
+ const mask = play.#engineMask();
682
+ const held = {};
683
+ for (let bit = 0; bit < RSDKV4_BUTTONS.length; bit++) {
684
+ held[RSDKV4_BUTTONS[bit]] = (mask & (1 << bit)) !== 0;
685
+ }
686
+ return held;
687
+ },
572
688
  };
573
689
  }
690
+ /**
691
+ * The engine's own `web_input_get_mask()`, or 0 when there is no engine to ask.
692
+ *
693
+ * Deliberately quiet about a module that does not have the bridge: unlike a claim,
694
+ * which silently does nothing and deserves the console error `#applyButtons` gives
695
+ * it, this is a read — a host polling it once a frame for an overlay would turn one
696
+ * old artifact into sixty messages a second.
697
+ */
698
+ #engineMask() {
699
+ const Module = this.#module;
700
+ if (!Module || typeof Module.web_input_get_mask !== 'function')
701
+ return 0;
702
+ return Module.web_input_get_mask() | 0;
703
+ }
574
704
  // ---- Host-driven input ----
575
705
  /**
576
706
  * Claim or release, on the engine and here. The only writer of {@link #buttons}.
@@ -710,6 +840,20 @@ export class Rsdkv4Play extends EnginePlayBase {
710
840
  else
711
841
  this.resume(this.#pauseOwner ?? 'host');
712
842
  },
843
+ canOpen: typeof Module.web_devmenu_open === 'function',
844
+ open: (screen = 'main', category = 0) => {
845
+ if (typeof Module.web_devmenu_open !== 'function') {
846
+ console.warn('[rsdkv4] this rsdkv4.wasm has no web_devmenu_open — rebuild it (`make build-wasm`), or read devMenu.canOpen before offering the button');
847
+ return false;
848
+ }
849
+ const index = DEV_MENU_SCREENS.indexOf(screen);
850
+ if (index < 0) {
851
+ console.warn(`[rsdkv4] "${screen}" is not a dev menu screen — one of ${DEV_MENU_SCREENS.join(', ')}`);
852
+ return false;
853
+ }
854
+ Module.web_devmenu_open(index, category | 0);
855
+ return true;
856
+ },
713
857
  };
714
858
  }
715
859
  // ---- Bringing the engine up ----
@@ -746,8 +890,16 @@ export class Rsdkv4Play extends EnginePlayBase {
746
890
  // Mount the working dir first, so we can see what is already persisted (OPFS)
747
891
  // before deciding whether to pull assets.
748
892
  this.#persistent = mountWorkingDir(Module, storage.persist).persistent;
749
- this.#namespace = normalizeStorageNamespace(storage.namespace);
750
- this.#workDir = `${WORK_ROOT}/${this.#namespace}`;
893
+ const resolved = storagePath(ENGINE_ID, storage.namespace);
894
+ if (resolved.prefixed && !warnedPrefixed) {
895
+ warnedPrefixed = true;
896
+ console.warn(`[rsdkv4] storage.namespace no longer needs the "${ENGINE_ID}/" prefix — the engine adds it. Pass "${resolved.namespace}".`);
897
+ }
898
+ this.#namespace = resolved.namespace;
899
+ this.#storagePath = resolved.path;
900
+ this.#workDir = `${WORK_ROOT}/${resolved.path}`;
901
+ if (resolved.namespace === DEFAULT_STORAGE_NAMESPACE)
902
+ await migrateLegacyDefault();
751
903
  this.#mirrorSaves = storage.persist !== null;
752
904
  ensureDir(Module, this.#workDir);
753
905
  await this.#writeAssets(Module, assets, config);
@@ -766,8 +918,24 @@ export class Rsdkv4Play extends EnginePlayBase {
766
918
  this.#focusCanvas();
767
919
  // The engine writes SData.bin at its own pace (new game, checkpoint, options
768
920
  // change), so copy it out on a slow timer as well as on the way down.
921
+ //
922
+ // The timer alone loses saves, and by a wide margin: `destroy()` is the only
923
+ // other flush, and a browser tab that is closed or reloaded never calls it. A
924
+ // player who finished an act and hit reload inside the next ten seconds had the
925
+ // save written by the engine, held in the wasm heap, and dropped on the floor —
926
+ // which reads as "my progress did not stick" and looks exactly like a save
927
+ // system that does not work.
928
+ //
929
+ // `visibilitychange` → hidden is the flush that actually fires: it covers the
930
+ // tab being switched away from, the window being minimised, the phone going to
931
+ // the home screen, and — unlike `beforeunload`, which browsers increasingly
932
+ // ignore — navigating away and closing. `pagehide` backs it up for the bfcache
933
+ // path. Cheap to over-fire: the mirror compares bytes and returns without
934
+ // touching OPFS when nothing moved.
769
935
  if (this.#mirrorSaves) {
770
936
  this.#saveTimer = setInterval(() => void this.#mirrorSaveData(), 10_000);
937
+ document.addEventListener('visibilitychange', this.#onVisibilityChange);
938
+ window.addEventListener('pagehide', this.#onPageHide);
771
939
  }
772
940
  return Module;
773
941
  }
@@ -822,7 +990,7 @@ export class Rsdkv4Play extends EnginePlayBase {
822
990
  if (explicit)
823
991
  Module.FS.writeFile(dataPath, explicit);
824
992
  else {
825
- console.log(`[rsdkv4] Data.rsdk already in persistent storage (${this.#namespace}) — skipping fetch`);
993
+ console.log(`[rsdkv4] Data.rsdk already in persistent storage (${this.#storagePath}) — skipping fetch`);
826
994
  }
827
995
  }
828
996
  else {
@@ -849,7 +1017,7 @@ export class Rsdkv4Play extends EnginePlayBase {
849
1017
  * it changes.
850
1018
  */
851
1019
  async #restoreSaveData(Module) {
852
- const dir = await opfsNamespaceDir(this.#namespace, false);
1020
+ const dir = await opfsNamespaceDir(this.#storagePath, false);
853
1021
  if (!dir)
854
1022
  return;
855
1023
  try {
@@ -865,7 +1033,7 @@ export class Rsdkv4Play extends EnginePlayBase {
865
1033
  }
866
1034
  }
867
1035
  /**
868
- * Copy SData.bin out of the wasm into `<namespace>/`, and announce it if it moved.
1036
+ * Copy SData.bin out of the wasm into `rsdkv4/<namespace>/`, and announce it if it moved.
869
1037
  *
870
1038
  * The division of labour the session settled on: the SDK owns getting the bytes out
871
1039
  * of the wasm and into the namespace both sides already agree on; a host owns
@@ -888,7 +1056,7 @@ export class Rsdkv4Play extends EnginePlayBase {
888
1056
  }
889
1057
  if (sameBytes(bytes, this.#lastSave))
890
1058
  return;
891
- const dir = await opfsNamespaceDir(this.#namespace, true);
1059
+ const dir = await opfsNamespaceDir(this.#storagePath, true);
892
1060
  if (dir) {
893
1061
  try {
894
1062
  const handle = await dir.getFileHandle(SAVE_FILE, { create: true });
@@ -905,8 +1073,28 @@ export class Rsdkv4Play extends EnginePlayBase {
905
1073
  this.emit('saves', this.game.saveSlots());
906
1074
  }
907
1075
  // ---- The render target ----
1076
+ /**
1077
+ * Flush the save when the page is being put away. See where these are registered
1078
+ * for why the ten-second timer is not enough on its own.
1079
+ */
1080
+ #onVisibilityChange = () => {
1081
+ if (document.visibilityState === 'hidden' && this.#mirrorSaves)
1082
+ void this.#mirrorSaveData();
1083
+ };
1084
+ #onPageHide = () => {
1085
+ if (this.#mirrorSaves)
1086
+ void this.#mirrorSaveData();
1087
+ };
908
1088
  #swallowContextMenu = (event) => event.preventDefault();
909
1089
  #onPointerDown = () => this.#focusCanvas();
1090
+ #onKeyDown = (event) => {
1091
+ // Only the browser's own default action is suppressed — the arrows and Space
1092
+ // scroll the page, Tab walks the focus out of the canvas. The event is left to
1093
+ // propagate: SDL's own handler sits on `window` in the bubble phase, so calling
1094
+ // stopPropagation() here would be the engine's whole keyboard.
1095
+ if (ENGINE_KEYS.has(event.code) || ENGINE_KEYS.has(event.key))
1096
+ event.preventDefault();
1097
+ };
910
1098
  #onResize = () => this.#fitPicture();
911
1099
  #onFullscreenChange = () => {
912
1100
  this.#fitPicture();
@@ -958,10 +1146,13 @@ export class Rsdkv4Play extends EnginePlayBase {
958
1146
  if (canvas) {
959
1147
  canvas.removeEventListener('contextmenu', this.#swallowContextMenu);
960
1148
  canvas.removeEventListener('pointerdown', this.#onPointerDown);
1149
+ canvas.removeEventListener('keydown', this.#onKeyDown);
961
1150
  if (this.#ownsCanvas)
962
1151
  canvas.remove();
963
1152
  }
964
1153
  document.removeEventListener('fullscreenchange', this.#onFullscreenChange);
1154
+ document.removeEventListener('visibilitychange', this.#onVisibilityChange);
1155
+ window.removeEventListener('pagehide', this.#onPageHide);
965
1156
  window.removeEventListener('resize', this.#onResize);
966
1157
  this.#boxObserver?.disconnect();
967
1158
  this.#boxObserver = null;
@@ -998,9 +1189,9 @@ export class Rsdkv4Play extends EnginePlayBase {
998
1189
  * Everything on it is the contract's — see the module doc for the shape of a call.
999
1190
  */
1000
1191
  export class Rsdkv4SDK extends EngineSDKBase {
1001
- static id = 'rsdkv4';
1192
+ static id = ENGINE_ID;
1002
1193
  /** Kept in step with package.json by `node scripts/sync-version.mjs`. */
1003
- static version = '0.2.0';
1194
+ static version = '0.3.0';
1004
1195
  static name = 'Retro Software Development Kit v4';
1005
1196
  static description = 'RSDKv4 compiled to WebAssembly via Emscripten. One game-agnostic WASM binary runs both Sonic 1 and Sonic 2 — the difference is only which Data.rsdk the host supplies at runtime. Ships none of the game: the player provides their own Data.rsdk, and it never leaves their browser.';
1006
1197
  createPlay(init, events) {
@@ -1 +1 @@
1
- {"version":3,"file":"rsdkv4.sdk.js","sourceRoot":"","sources":["../../src/rsdkv4.sdk.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rsdkv4.sdk.js","sourceRoot":"","sources":["../../src/rsdkv4.sdk.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wasm-gaming/rsdkv4-wasm",
3
- "version": "0.2.0",
3
+ "version": "0.3.0",
4
4
  "description": "RSDKv4 (Retro Software Development Kit v4) compiled to WebAssembly, with a JS SDK conforming to the wasm-gaming engine contract. Runs Sonic 1 & Sonic 2 from a single WASM by loading Data.rsdk at runtime.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -21,22 +21,25 @@
21
21
  "./options": {
22
22
  "types": "./dist/rsdkv4/rsdkv4.options.d.ts",
23
23
  "import": "./dist/rsdkv4/rsdkv4.options.js"
24
+ },
25
+ "./app": {
26
+ "import": "./dist/rsdkv4/app/app.js"
24
27
  }
25
28
  },
26
29
  "files": [
27
30
  "dist/rsdkv4/",
31
+ "src/app/",
28
32
  "src/rsdkv4.options.ts",
29
33
  "src/rsdkv4.sdk.ts",
30
34
  "README.md"
31
35
  ],
32
36
  "comment:scripts": "Build logic lives in the Makefile, not here (make build / build-sdk / build-wasm / preview).",
33
37
  "scripts": {},
34
- "comment:peer": "No longer optional, and no longer types-only: 0.3.2 ships the base classes and the EventEmitter this SDK extends, so the contract is a real runtime import. A host must resolve it (bundler, or an import map entry pointing at dist/engine-specs.js).",
35
- "peerDependencies": {
38
+ "comment:dependencies": "engine-specs is the one wasm-gaming package an engine depends on. Its runtime is also copied into dist/rsdkv4/ and imported relatively, so the built SDK loads without a bundler or an import map; the dependency is what carries the types.",
39
+ "dependencies": {
36
40
  "@wasm-gaming/engine-specs": "^0.3.2"
37
41
  },
38
42
  "devDependencies": {
39
- "@wasm-gaming/engine-specs": "^0.3.2",
40
43
  "jq79": "^0.5.10",
41
44
  "typedoc": "^0.28.20",
42
45
  "typescript": "^5.5.0"