js-dos 8.3.20 → 8.4.1

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 (43) hide show
  1. package/.codex +5 -0
  2. package/{ChangeLog.md → CHANGELOG.md} +41 -1
  3. package/README.deployment.md +32 -3
  4. package/README.md +38 -25
  5. package/dist/emulators/emulators.js +1 -1
  6. package/dist/emulators/emulators.js.map +1 -1
  7. package/dist/emulators/file-explorer.css +243 -0
  8. package/dist/emulators/file-explorer.js +8024 -0
  9. package/dist/emulators/fileexplorer_actions.woff +0 -0
  10. package/dist/emulators/fileexplorer_sprites.png +0 -0
  11. package/dist/emulators/sockdrive.js.map +1 -0
  12. package/dist/emulators/types/build.d.ts +8 -0
  13. package/dist/emulators/types/dos/dosbox/ts/audio-worklet.d.ts +1 -0
  14. package/dist/emulators/types/dos/dosbox/ts/direct.d.ts +3 -2
  15. package/dist/emulators/types/dos/dosbox/ts/worker.d.ts +2 -2
  16. package/dist/emulators/types/emulators.d.ts +10 -8
  17. package/dist/emulators/types/impl/emulators-impl.d.ts +3 -0
  18. package/dist/emulators/types/impl/modules.d.ts +5 -1
  19. package/dist/emulators/types/protocol/protocol.d.ts +53 -10
  20. package/dist/emulators/types/sockdrive/sockdrive-store.d.ts +36 -0
  21. package/dist/emulators/types/{protocol → sockdrive}/sockdrive.d.ts +2 -1
  22. package/dist/emulators/wdosbox-x-jspi.js +49 -0
  23. package/dist/emulators/wdosbox-x-jspi.js.symbols +10283 -0
  24. package/dist/emulators/wdosbox-x-jspi.wasm +0 -0
  25. package/dist/emulators/wdosbox-x.js +17 -22
  26. package/dist/emulators/wdosbox-x.js.symbols +10330 -9372
  27. package/dist/emulators/wdosbox-x.wasm +0 -0
  28. package/dist/emulators/wdosbox.js +15 -22
  29. package/dist/emulators/wdosbox.js.symbols +2846 -3026
  30. package/dist/emulators/wdosbox.wasm +0 -0
  31. package/dist/emulators/webrtcnet.mjs +2 -0
  32. package/dist/emulators/webrtcnet.wasm +0 -0
  33. package/dist/emulators/wlibzip.js +2 -21
  34. package/dist/emulators/wlibzip.js.symbols +186 -190
  35. package/dist/emulators/wlibzip.wasm +0 -0
  36. package/dist/js-dos.css +1 -1
  37. package/dist/js-dos.js +4 -4
  38. package/dist/js-dos.js.map +1 -1
  39. package/package.json +3 -2
  40. package/release.zip +0 -0
  41. package/scripts/brotli-dist.py +1 -1
  42. package/tsconfig.node.tsbuildinfo +1 -0
  43. package/dist/emulators/types/protocol/sockdrive-store.d.ts +0 -18
package/.codex ADDED
@@ -0,0 +1,5 @@
1
+ After making code changes, always run:
2
+
3
+ yarn run eslint src --ext ts,tsx --fix
4
+
5
+ Make sure the command passes before considering the task complete.
@@ -4,6 +4,46 @@ Note that version numbers do not necessarily reflect the amount of changes betwe
4
4
 
5
5
  Not all changes are documented here. To examine the full set of changes between versions, you can use git to browse the changes between the tags.
6
6
 
7
+ 8.4.1 - 13.07.2026
8
+ ------------------
9
+
10
+ * Improve sockdrive in direct mode
11
+ * Fix for #303
12
+ * Fix for #310
13
+ * Fix for #426
14
+
15
+
16
+ 8.4.0 - 19.06.2026
17
+ ------------------
18
+
19
+ * Updated emulators to 8.4.0
20
+ * Added full 3Dfx acceleration support in browser through WebGL-backed rendering
21
+ * Replaced HumbleNet with WebRTC-NET for browser networking and IPX multiplayer
22
+ * Added support for shared network instances
23
+ * Added support for starting an IPX server and connecting to an IPX address
24
+ * Added audioWorklet mode
25
+ * Added experimental JSPI backend support
26
+ * Added sockdrive preload modes and improved sockdrive persist handling
27
+ * Improved sockdrive range loading reliability
28
+ * Added information about GLFX status
29
+ * Added support for background rendering (disabled by default)
30
+ * Replaced IndexedDB storage with OPFS for bundles and local filesystem changes
31
+ * Removed auth/cloud code and added fsChanges hooks for custom save storage
32
+ * Added OPFS explorer and storage usage statistics
33
+ * Added turbo frame with CPU metrics, speed, cycles, fast forward and frame skip controls
34
+ * Added support for fast forward during boot
35
+ * Added special keys UI for Alt+Tab and Ctrl+Alt+Del
36
+ * Added Simplified Chinese language
37
+ * Added support for right mouse button on Bluetooth mice
38
+ * Improved pointer events handling and pointer lock with unadjusted movement fallback
39
+ * Fixed long mouse click handling with pointer events
40
+ * Fixed Pause key handling
41
+ * Applied initFs even when url is set
42
+ * Disabled speed control when CPU auto-adjust is deselected
43
+ * Updated WebAssembly build tooling to Emscripten SDK 5.0.2 and Node.js 22.x
44
+ * Removed custom Binaryen override from the build workflow
45
+ * Updated deployment documentation and Brotli packaging script
46
+
7
47
  8.3.20 - 31.05.2025
8
48
  -------------------
9
49
 
@@ -49,4 +89,4 @@ Not all changes are documented here. To examine the full set of changes between
49
89
  * Implement `fsDeleteFile` - able to delete files and folders
50
90
  * Emulators compiled with Emscripten 4.0.2
51
91
  * js-dos now automatically switch to dark mode if it’s enabled in your system.
52
- * Various UI/UX improvements
92
+ * Various UI/UX improvements
@@ -13,7 +13,7 @@ rm -rf /tmp/$VERSION
13
13
  ## Release version
14
14
 
15
15
  ```
16
- rm -rf build && \
16
+ rm -rf dist && \
17
17
  yarn run vite build --base /latest --sourcemap true --minify terser && \
18
18
  aws s3 --endpoint-url=https://storage.yandexcloud.net sync --acl public-read \
19
19
  dist s3://jsdos/latest --delete
@@ -26,15 +26,44 @@ Clear the CDN cache (v8.js-dos.com) in dashboard, pattern:
26
26
 
27
27
  ## DOS.Zone (early access) version
28
28
 
29
+
30
+ ### Move latest version to named version
31
+
32
+ ```sh
33
+ VERSION=<version-number>
34
+ mkdir /tmp/$VERSION
35
+ aws s3 --endpoint-url=https://storage.yandexcloud.net sync s3://br-bundles/js-dos/latest /tmp/$VERSION
36
+ aws s3 --endpoint-url=https://storage.yandexcloud.net sync --acl public-read /tmp/$VERSION s3://br-bundles/js-dos/8.xx/$VERSION
37
+ rm -rf /tmp/$VERSION
38
+ ```
39
+
40
+ ### Deploy new one
29
41
  ```
30
- rm -rf build && \
42
+ rm -rf dist && \
31
43
  yarn run vite build --base /js-dos/latest --sourcemap true --minify terser && \
44
+ rm dist/emulators/sockdrive* && \
32
45
  python scripts/brotli-dist.py && \
33
46
  aws s3 --endpoint-url=https://storage.yandexcloud.net sync --acl public-read \
34
- dist s3://br-bundles/js-dos/latest --delete
47
+ dist s3://br-bundles/js-dos/latest
35
48
  ```
36
49
 
37
50
  Clear the CDN cache (br.cdn.js-dos.com) in dashboard, pattern:
38
51
  ```
39
52
  /js-dos/latest,/js-dos/latest/*
53
+ ```
54
+
55
+ ### Deploy nigthly
56
+
57
+ ```
58
+ rm -rf dist && \
59
+ yarn run vite build --base /js-dos/nightly --sourcemap true --minify terser && \
60
+ rm dist/emulators/sockdrive* && \
61
+ python scripts/brotli-dist.py && \
62
+ aws s3 --endpoint-url=https://storage.yandexcloud.net sync --acl public-read \
63
+ dist s3://br-bundles/js-dos/nightly --delete
64
+ ```
65
+
66
+ Clear the CDN cache (br.cdn.js-dos.com) in dashboard, pattern:
67
+ ```
68
+ /js-dos/nightly,/js-dos/nightly/*
40
69
  ```
package/README.md CHANGED
@@ -1,28 +1,46 @@
1
- # js-dos v8
1
+ # js-dos
2
2
  [![Build](https://github.com/caiiiycuk/js-dos/actions/workflows/build.yml/badge.svg?branch=8.xx)](https://github.com/caiiiycuk/js-dos/actions/workflows/build.yml)
3
3
 
4
- The simplest API to run **DOS/Win** 9x programs in browser or node. js-dos provides full-featured DOS player that can be easily installed and used to get your DOS program up
5
- and running in browser quickly. js-dos provide many advanced features like multiplayer and cloud storage. All available features are enabled for any integration and free.
4
+ The simplest API to run **DOS/Win 9x** programs in browser or node.
5
+
6
+ js-dos is a frontend for [emulators](https://github.com/caiiiycuk/emulators) that provides nice UI and infrastructure
7
+ to run DOS or Windows programs in browser.
8
+
9
+ It provides full-featured **DOS player** that can be easily installed and used to get your DOS program up and running in
10
+ browser quickly. js-dos provides many advanced features like multiplayer, save/load, and large disk streaming.
11
+ All available features are enabled for any integration and free.
12
+
13
+ The unique capabilities:
14
+ * The only browser solution with accelerated [**3Dfx**](https://js-dos.com/3dfx.html) rendering through a WebGL-backed renderer
15
+ * Full [**IPX** networking](https://js-dos.com/networking.html) stack in browser, powered by WebRTC-NET, with IPX server creation, direct
16
+ peer/alias connections, and shared network instances
17
+ * **Windows 9x** support through DOSBox-X, including prebuilt Windows 95/98 system images and support for Windows games
18
+ with DirectX and 3Dfx drivers
19
+ * **Sockdrive V2** for large disk images: backendless streaming drives, preload modes, and improved persistence handling
20
+ * Modern local persistence based on **OPFS**, with local filesystem changes, storage usage information, and `fsChanges`
21
+ hooks for custom save storage
6
22
 
7
23
  The key features:
8
24
  * Works in **worker** or render thread
9
25
  * Support execution in Node and Browsers
10
26
  * Multiple backends: DOSBox, DOSBox-X
11
27
  * Mobile support (v8 - WIP, v7 - production)
12
- * Able to run very big games (like Diablo, etc.)
28
+ * Able to run huge games (like Diablo, etc.)
13
29
  * Multiplayer support
14
- * Cloud storage
30
+ * Save/load support with local persistence and custom storage integrations
15
31
  * WebAssembly and pure JS versions
16
-
32
+ * AudioWorklet mode and experimental JSPI backend support
33
+ * [Turbo controls](https://js-dos.com/turbo.html) with CPU metrics, speed, cycles, fast forward, and frame skip controls
34
+
35
+ > If you want to build custom DOS player, then please use [emulators](https://js-dos.com/threejs.html) packages instead.
36
+
17
37
  ## Demo
18
38
 
19
- * [Win 95](https://v8.js-dos.com) - plain Windows 95 with D3D & 3Dfx
20
39
  * [DOS.Zone](https://dos.zone) - community portal with 1900+ dos games
21
- * [Multiplayer](https://dos.zone/multiplayer) - multiplayer games (Doom, Heroes 2, etc.)
22
- * [Dune 2000](https://dos.zone/dune-2000/)
23
- * [Diablo I](https://dos.zone/diablo-1996/)
24
-
25
- [![Watch the video](https://github.com/caiiiycuk/js-dos/assets/1727152/a2b481cb-43b1-44aa-8b71-2181d351bb1a)](https://youtu.be/lhFrAe5YrJE)
40
+ * [3Dfx](https://dos.zone/3dfx/)
41
+ * [Multiplayer](https://dos.zone/mp)
42
+ * [NFS](https://dos.zone/the-need-for-speed-sep-1995/)
43
+ * [Age Of Empries II](https://dos.zone/age-of-empires2/)
26
44
 
27
45
  ## Documentation
28
46
 
@@ -33,20 +51,15 @@ The key features:
33
51
 
34
52
  ## Support
35
53
 
36
- If you enjoy using js-dos, we would greatly appreciate your support through subscribing to our [js-dos subscription](https://v8.js-dos.com/key/).
37
- By subscribing, you not only enhance your own experience with exclusive benefits but also contribute to the continued development
38
- and maintenance of our platform. Your subscription helps us grow and provide even better services to all our valued users.
39
-
40
- Alternatively you can do one time donation:
41
-
42
- | [Visa / MasterCard / МИР](https://pay.cloudtips.ru/p/894f907b) | [Buy Me A Coffee!](https://buymeacoffee.com/caiiiycuk) |
43
- |-----------------------------------------------------------------|--------------------------------------------------------|
44
- | ![CloudTips](https://cdn.dos.zone/custom/qr/cloud_tips_256.png) | ![BMC](https://cdn.dos.zone/custom/qr/bmc_qr_256.png) |
45
-
54
+ | [Subscription / Подписка](https://cloudsdk.dev/) | [Visa / MasterCard / МИР](https://pay.cloudtips.ru/p/894f907b) | [Buy Me A Coffee!](https://buymeacoffee.com/caiiiycuk) |
55
+ |------------------------------------------------------------------------------------|-----------------------------------------------------------------|--------------------------------------------------------|
56
+ | <img src="https://dos.zone/assets/qr-jsdos.png" alt="js-dos qr code" width="128" /> | <img src="https://cdn.dos.zone/custom/qr/cloud_tips_256.png" alt="cloud tips qr code" width="128" /> | <img src="https://cdn.dos.zone/custom/qr/bmc_qr_256.png" alt="bmc qr code" width="128" /> |
57
+ | js-dos | Cloud Tips | @caiiiycuk |
46
58
 
47
- | BTC | ETH |
48
- |--------------------------------------------------------|-------------------------------------------------------|
49
- | ![BTC](https://cdn.dos.zone/custom/qr/btc_pub_256.png) | ![ETH](https://cdn.dos.zone/custom/qr/eth-qr_256.png) |
59
+ | BTC | ETH |
60
+ |-----|-----|
61
+ | <img src="https://cdn.dos.zone/custom/qr/btc_pub_256.png" alt="btc qr code" width="128" /> | <img src="https://cdn.dos.zone/custom/qr/eth-qr_256.png" alt="eth qr code" width="128" /> |
62
+ | 1EngssY81sziuQyb9JGXURG3WDajyC8kW6 | 0x54FEBE29Cd700f88468032b33c33CdcD7c7cCa53 |
50
63
 
51
64
 
52
65
  ## Development