@wasm-gaming/fbneo-wasm 0.1.2 → 0.2.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 (54) hide show
  1. package/README.md +103 -69
  2. package/dist/fbneo/app/app.css +112 -0
  3. package/dist/fbneo/app/app.js +646 -0
  4. package/dist/fbneo/engine-specs.js +646 -0
  5. package/dist/fbneo/fbneo.js +2 -0
  6. package/dist/fbneo/fbneo.options.d.ts +66 -19
  7. package/dist/fbneo/fbneo.options.d.ts.map +1 -1
  8. package/dist/fbneo/fbneo.options.js +39 -44
  9. package/dist/fbneo/fbneo.options.js.map +1 -1
  10. package/dist/fbneo/fbneo.sdk.d.ts +137 -8
  11. package/dist/fbneo/fbneo.sdk.d.ts.map +1 -1
  12. package/dist/fbneo/fbneo.sdk.js +588 -184
  13. package/dist/fbneo/fbneo.sdk.js.map +1 -1
  14. package/dist/fbneo/fbneo.wasm +4 -0
  15. package/package.json +10 -15
  16. package/src/app/app.css +112 -0
  17. package/src/app/app.js +646 -0
  18. package/src/fbneo.options.ts +107 -63
  19. package/src/fbneo.sdk.ts +644 -212
  20. package/dist/fbneo/fbneo.manifest.d.ts +0 -4
  21. package/dist/fbneo/fbneo.manifest.d.ts.map +0 -1
  22. package/dist/fbneo/fbneo.manifest.js +0 -33
  23. package/dist/fbneo/fbneo.manifest.js.map +0 -1
  24. package/dist/manifest.json +0 -91
  25. package/src/fbneo.manifest.ts +0 -38
  26. /package/{data → dist/fbneo}/romsets/atari.json +0 -0
  27. /package/{data → dist/fbneo}/romsets/capcom.json +0 -0
  28. /package/{data → dist/fbneo}/romsets/cave.json +0 -0
  29. /package/{data → dist/fbneo}/romsets/channelf.json +0 -0
  30. /package/{data → dist/fbneo}/romsets/coleco.json +0 -0
  31. /package/{data → dist/fbneo}/romsets/cps3.json +0 -0
  32. /package/{data → dist/fbneo}/romsets/dataeast.json +0 -0
  33. /package/{data → dist/fbneo}/romsets/galaxian.json +0 -0
  34. /package/{data → dist/fbneo}/romsets/index.json +0 -0
  35. /package/{data → dist/fbneo}/romsets/irem.json +0 -0
  36. /package/{data → dist/fbneo}/romsets/konami.json +0 -0
  37. /package/{data → dist/fbneo}/romsets/megadrive.json +0 -0
  38. /package/{data → dist/fbneo}/romsets/midway.json +0 -0
  39. /package/{data → dist/fbneo}/romsets/msx.json +0 -0
  40. /package/{data → dist/fbneo}/romsets/neogeo.json +0 -0
  41. /package/{data → dist/fbneo}/romsets/nes.json +0 -0
  42. /package/{data → dist/fbneo}/romsets/pce.json +0 -0
  43. /package/{data → dist/fbneo}/romsets/pgm.json +0 -0
  44. /package/{data → dist/fbneo}/romsets/pgm2.json +0 -0
  45. /package/{data → dist/fbneo}/romsets/pre90s.json +0 -0
  46. /package/{data → dist/fbneo}/romsets/psikyo.json +0 -0
  47. /package/{data → dist/fbneo}/romsets/pst90s.json +0 -0
  48. /package/{data → dist/fbneo}/romsets/sega.json +0 -0
  49. /package/{data → dist/fbneo}/romsets/sg1000.json +0 -0
  50. /package/{data → dist/fbneo}/romsets/sms.json +0 -0
  51. /package/{data → dist/fbneo}/romsets/snes.json +0 -0
  52. /package/{data → dist/fbneo}/romsets/spectrum.json +0 -0
  53. /package/{data → dist/fbneo}/romsets/taito.json +0 -0
  54. /package/{data → dist/fbneo}/romsets/toaplan.json +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"fbneo.sdk.js","sourceRoot":"","sources":["../../src/fbneo.sdk.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fbneo.sdk.js","sourceRoot":"","sources":["../../src/fbneo.sdk.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ [diffend] Oversized file quarantined before diffing.
2
+ name: package/dist/fbneo/fbneo.wasm
3
+ size: 40803155 bytes
4
+ sha256: 09e9dfffdfdc2bd15ce0bfa04e2f93d347e8b5fc33e6f4cddf487d8c1b32b879
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@wasm-gaming/fbneo-wasm",
3
- "version": "0.1.2",
4
- "description": "FBNeo (FinalBurn Neo arcade emulator) compiled to WebAssembly via Emscripten, with a JS SDK conforming to the wasm-gaming engine contract.",
3
+ "version": "0.2.0",
4
+ "description": "FBNeo (FinalBurn Neo arcade emulator) compiled to WebAssembly, with a self-contained JS SDK implementing the wasm-gaming engine contract.",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "git+https://github.com/wasm-gaming/fbneo-wasm.git"
@@ -18,6 +18,9 @@
18
18
  "types": "./dist/fbneo/fbneo.options.d.ts",
19
19
  "import": "./dist/fbneo/fbneo.options.js"
20
20
  },
21
+ "./app": {
22
+ "import": "./dist/fbneo/app/app.js"
23
+ },
21
24
  "./romset": {
22
25
  "types": "./dist/fbneo/romset.d.ts",
23
26
  "import": "./dist/fbneo/romset.js"
@@ -26,14 +29,11 @@
26
29
  "types": "./dist/fbneo/neo.d.ts",
27
30
  "import": "./dist/fbneo/neo.js"
28
31
  },
29
- "./romsets/*": "./data/romsets/*",
30
- "./manifest": "./dist/manifest.json"
32
+ "./romsets/*": "./dist/fbneo/romsets/*"
31
33
  },
32
34
  "files": [
33
35
  "dist/fbneo/",
34
- "dist/manifest.json",
35
- "data/romsets/",
36
- "src/fbneo.manifest.ts",
36
+ "src/app/",
37
37
  "src/fbneo.options.ts",
38
38
  "src/fbneo.sdk.ts",
39
39
  "src/romset.ts",
@@ -42,16 +42,11 @@
42
42
  ],
43
43
  "comment:scripts": "Build logic lives in the Makefile, not here (make build / build-sdk / build-wasm / preview).",
44
44
  "scripts": {},
45
- "peerDependencies": {
46
- "@wasm-gaming/engine-specs": "*"
47
- },
48
- "peerDependenciesMeta": {
49
- "@wasm-gaming/engine-specs": {
50
- "optional": true
51
- }
45
+ "comment:dependencies": "engine-specs is the one wasm-gaming package an engine depends on. Its runtime is also copied into dist/fbneo/ and imported relatively, so the built SDK loads without a bundler or an import map; the dependency carries the types.",
46
+ "dependencies": {
47
+ "@wasm-gaming/engine-specs": "^0.4.0"
52
48
  },
53
49
  "devDependencies": {
54
- "@wasm-gaming/engine-specs": "^0.2.3",
55
50
  "typescript": "^5.5.0"
56
51
  },
57
52
  "engineContract": "https://github.com/wasm-gaming/engine-specs",
@@ -0,0 +1,112 @@
1
+ /* FBNeo app — suspend points (Classic Mini style) and the pause menu.
2
+ engine-specs `--wg-*` tokens when the host sets them; same values as fallbacks. */
3
+
4
+ .fbn-app {
5
+ --ring: var(--wg-focus-ring, 0 0 0 3px #fff);
6
+ --surface: var(--wg-surface, rgb(18 20 28 / 0.78));
7
+ --line: var(--wg-line, rgb(255 255 255 / 0.12));
8
+ --text: var(--wg-text, #f4f6fb);
9
+ --muted: var(--wg-muted, #8e97a9);
10
+ --danger: var(--wg-danger, #f87171);
11
+ --ui: var(--wg-font-ui, 'Inter Variable', 'Inter', system-ui, sans-serif);
12
+ --display: var(--wg-font-display, 'Unbounded Variable', 'Unbounded', system-ui, sans-serif);
13
+ --ease: var(--wg-ease, cubic-bezier(0.2, 0.8, 0.2, 1));
14
+ position: absolute; inset: 0; overflow: hidden; background: #000; color: var(--text);
15
+ font-family: var(--ui); user-select: none; -webkit-tap-highlight-color: transparent;
16
+ }
17
+ .fbn-app * { box-sizing: border-box; }
18
+ .fbn-stage { position: absolute; inset: 0; display: grid; place-items: center; }
19
+ .fbn-stage canvas { outline: none; }
20
+ .fbn-overlay { position: absolute; inset: 0; display: grid; place-items: center; pointer-events: none; }
21
+ .fbn-overlay > * { pointer-events: auto; }
22
+ .fbn-app:not([data-screen='game']) .fbn-overlay {
23
+ background:
24
+ radial-gradient(120% 80% at 50% 0%, color-mix(in srgb, var(--accent) 34%, transparent), transparent 70%),
25
+ rgb(4 6 12 / 0.74);
26
+ backdrop-filter: blur(14px) saturate(1.2);
27
+ -webkit-backdrop-filter: blur(14px) saturate(1.2);
28
+ }
29
+ .fbn-app[data-screen='boot'] .fbn-overlay,
30
+ .fbn-app[data-screen='points'] .fbn-overlay { background-color: rgb(4 6 12 / 0.9); }
31
+
32
+ .kicker { margin: 0; font: 600 0.72rem var(--ui); letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
33
+ .fbn-app h2 { margin: 0; font: 700 clamp(1.3rem, 3vw, 2rem) var(--display); letter-spacing: -0.02em; }
34
+
35
+ /* boot */
36
+ .fbn-boot { display: grid; justify-items: center; gap: 22px; }
37
+ .fbn-boot img { width: min(240px, 46vw); border-radius: 22px; box-shadow: 0 30px 80px -30px #000; animation: fbn-breathe 2.4s var(--ease) infinite alternate; }
38
+ .fbn-boot p { margin: 0; color: var(--muted); font-weight: 500; }
39
+ @keyframes fbn-breathe { from { opacity: 0.55; transform: scale(0.98); } to { opacity: 1; transform: none; } }
40
+
41
+ /* suspend points: a row of frames, like the Classic Mini's */
42
+ .fbn-points { width: min(1180px, 100%); padding: 0 clamp(16px, 4vw, 48px); display: grid; gap: clamp(20px, 4vh, 36px); }
43
+ .fbn-points header { display: grid; gap: 6px; }
44
+ .points { display: flex; justify-content: center; gap: clamp(10px, 1.4vw, 18px); padding: 12px 4px; }
45
+ .point {
46
+ all: unset; box-sizing: border-box; flex: 0 1 196px; min-width: 0; display: grid; gap: 8px; cursor: pointer;
47
+ transition: transform 0.22s var(--ease), opacity 0.2s;
48
+ }
49
+ .point-frame {
50
+ position: relative; display: grid; place-items: center; aspect-ratio: 320 / 224; border-radius: 10px; overflow: hidden;
51
+ background: rgb(255 255 255 / 0.04); border: 2px solid rgb(255 255 255 / 0.16);
52
+ transition: box-shadow 0.22s var(--ease), border-color 0.2s;
53
+ }
54
+ .point-frame img { width: 100%; height: 100%; object-fit: cover; image-rendering: pixelated; }
55
+ .point-frame svg { width: 30%; color: var(--muted); }
56
+ .point.is-empty .point-frame { border-style: dashed; background: transparent; }
57
+ .point.is-auto .point-frame { border-color: color-mix(in srgb, var(--accent) 70%, #fff); }
58
+ .point-label { font: 700 0.9rem var(--ui); text-align: center; }
59
+ .point.is-auto .point-label { color: #fda4af; }
60
+ .point-date { font: 500 0.74rem var(--ui); color: var(--muted); text-align: center; font-variant-numeric: tabular-nums; }
61
+ .point-lock {
62
+ position: absolute; top: 6px; right: 6px; display: grid; place-items: center; width: 24px; height: 24px; border-radius: 50%;
63
+ background: rgb(0 0 0 / 0.72); color: #fbbf24;
64
+ }
65
+ .point-lock svg { width: 13px; color: inherit; }
66
+ .point.is-start .point-frame { border-style: solid; }
67
+ .point.is-focused { transform: translateY(-6px) scale(1.04); }
68
+ .point.is-focused .point-frame { box-shadow: var(--ring), 0 26px 60px -24px #000; border-color: transparent; }
69
+ .point.is-dim { opacity: 0.32; }
70
+ .point.is-target.is-focused .point-frame { box-shadow: 0 0 0 3px #fbbf24, 0 26px 60px -24px #000; }
71
+
72
+ /* pause, sheets, confirms */
73
+ .fbn-panel {
74
+ width: min(440px, 92vw); display: grid; gap: 10px; padding: 26px; border-radius: 28px;
75
+ background: rgb(20 22 31 / 0.92); border: 1px solid var(--line); box-shadow: 0 40px 100px -30px #000;
76
+ }
77
+ .fbn-panel.is-small { width: min(380px, 92vw); }
78
+ .fbn-panel h2 { margin-bottom: 8px; }
79
+ .fbn-panel .text { margin: 0 0 8px; color: var(--muted); line-height: 1.5; }
80
+ .item {
81
+ all: unset; box-sizing: border-box; display: grid; gap: 2px; padding: 13px 16px; border-radius: 14px;
82
+ background: rgb(255 255 255 / 0.05); font-weight: 600; cursor: pointer; transition: background 0.15s, box-shadow 0.15s;
83
+ }
84
+ .item small { font-weight: 500; font-size: 0.78rem; color: var(--muted); }
85
+ .item[disabled] { opacity: 0.45; cursor: default; }
86
+ .item.is-focused { background: #fff; color: #0b0d12; box-shadow: var(--ring); }
87
+ .item.is-focused small { color: #4b5563; }
88
+ .item.is-danger.is-focused { background: var(--danger); color: #1a0505; box-shadow: 0 0 0 3px var(--danger); }
89
+ .item.is-danger.is-focused small { color: #450a0a; }
90
+ .fbn-panel .row { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
91
+ .fbn-panel .row .item { text-align: center; }
92
+ .fbn-layer { position: absolute; inset: 0; display: grid; place-items: center; background: rgb(0 0 0 / 0.55); }
93
+
94
+ .fbn-hints { display: flex; flex-wrap: wrap; gap: 8px 18px; justify-content: center; color: var(--muted); font-size: 0.78rem; font-weight: 500; }
95
+ .fbn-hints span { display: inline-flex; align-items: center; gap: 7px; }
96
+ .fbn-hints kbd { display: inline-grid; place-items: center; min-width: 22px; height: 22px; padding: 0 6px; border-radius: 11px; background: rgb(255 255 255 / 0.12); color: var(--text); font: 700 0.68rem var(--ui); }
97
+ .fbn-panel .fbn-hints { justify-content: flex-start; margin-top: 6px; }
98
+
99
+ .fbn-toast {
100
+ position: absolute; left: 50%; bottom: calc(28px + var(--wg-safe-bottom, 0px)); transform: translateX(-50%); margin: 0;
101
+ padding: 10px 18px; border-radius: 999px; background: rgb(20 22 31 / 0.94); border: 1px solid var(--line);
102
+ font-weight: 600; font-size: 0.85rem; white-space: nowrap; animation: fbn-toast 0.3s var(--ease);
103
+ }
104
+ @keyframes fbn-toast { from { opacity: 0; transform: translate(-50%, 8px); } }
105
+
106
+ @media (max-width: 960px) {
107
+ .points { justify-content: flex-start; overflow-x: auto; scrollbar-width: none; padding: 14px 6px 18px; }
108
+ .point { flex: 0 0 min(42vw, 180px); }
109
+ }
110
+ @media (prefers-reduced-motion: reduce) {
111
+ .point, .point-frame, .fbn-boot img, .fbn-toast { transition: none; animation: none; }
112
+ }