fix: pin js-dos to v8.3.14 (emulators 8.3.3) — the last working CDN version
Build & Deploy / build-and-deploy (push) Successful in 1m0s

The js-dos CDN 'latest' was upgraded to 8.3.20 (emulators 8.3.8)
which ships a rebuilt wlibzip.wasm (113,081 bytes vs 112,732 in
8.3.3). The _zipfile_add WASM function in this newer libzip binary
fails on our bundles with 'Unable to add .jsdos/jsdos.json into
bundle.zip', breaking ALL games.

Pinning to 8.3.14 (emulators 8.3.3, wlibzip.wasm 112,732 bytes)
restores the working libzip WASM. The JavaScript wrapper code is
identical between versions — only the compiled WASM binary differs.

Also restored .jsdos/ config files in bundles (no longer need to
strip them) and reverted the autoStart workaround.
This commit is contained in:
Hermes Agent
2026-06-03 19:06:44 +02:00
parent 79a0af86ad
commit 840777d289
2 changed files with 39 additions and 4 deletions
+3 -3
View File
@@ -44,7 +44,7 @@
// Load js-dos CSS
const link = document.createElement("link");
link.rel = "stylesheet";
link.href = "https://v8.js-dos.com/latest/js-dos.css";
link.href = "https://v8.js-dos.com/8.xx/8.3.14/js-dos.css";
document.head.appendChild(link);
injectedLink = link;
@@ -53,7 +53,7 @@
try {
await new Promise((resolve, reject) => {
const s = document.createElement("script");
s.src = "https://v8.js-dos.com/latest/js-dos.js";
s.src = "https://v8.js-dos.com/8.xx/8.3.14/js-dos.js";
s.onload = resolve;
s.onerror = reject;
document.head.appendChild(s);
@@ -70,7 +70,7 @@
try {
const url = isSetup ? setupBundleUrl(game) : bundleUrl(game);
if (!url || !window.Dos) throw new Error("Failed to resolve game bundle");
dosCI = await window.Dos(dosContainer, { url, autoStart: true, countDownStart: 0 });
dosCI = await window.Dos(dosContainer, { url });
running = true;
} catch (e) {
error = e.message;