Skip to content

[WIP] feat: playable Win3.x and Win9.x using js-dos - #4061

Draft
bphenriques wants to merge 2 commits into
rommapp:masterfrom
bphenriques:3143-jsdos-backend
Draft

[WIP] feat: playable Win3.x and Win9.x using js-dos#4061
bphenriques wants to merge 2 commits into
rommapp:masterfrom
bphenriques:3143-jsdos-backend

Conversation

@bphenriques

@bphenriques bphenriques commented Aug 1, 2026

Copy link
Copy Markdown

draft/WIP. I need to manually review the code, the PR description and the accompanying changes ot the docs.


Closes #3143

EmulatorJS (dosbox-pure) boots DOS games but blank-screens Windows 3.x titles. This is a known limitation that can be solved by bringing js-dos v8 (DOSBox-X backend) as a fourth in-browser player so win3x and win9x that is known to address this gap.

Related docs PR: rommapp/docs#110

Out of scope

To keep changes minimal:

  • js-dos can play DOS titles, for simplicity, DOS stays on EmulatorJS only. It is a minor dos slug addition.

Changes

This PR attempts to be as similar as other external players:

  • New player under frontend/src/v2/views/Player/JsDos.vue
  • New Route /rom/:id/jsdos
  • Admin toggle DISABLE_JSDOS
  • Similar to Ruffle, the js-dos is added to the docker under /assets/jsdos, served same-origin (pinned).
  • Matching defaults for better UX: autoStart: true and autoSave: true (matching EmulatorJS defaults).
  • Set setNoCloud(true) as this is a self-hosted instance behind romm.

Test Plan

Writing manual tests as automated tests are covered automatically by the CI/CD (or should).

Tested titles (auto start + saves):

  • Fine Artist. Saving only occurs when exiting to windows. App specific.
  • Four Magic School Bus titles
  • Timon & Pumba Jungle Games

Misc tests:

  • Respect DISABLE_JSDOS
  • Quit returns to the game list.
  • The js-dos (dos.zone) cloud UI is hidden.

AI assistance disclosure

This contribution was developed with the assistance of Claude (Anthropic), an AI
coding assistant. I reviewed, tested, and validated the design, implementation,
and tests, and I take responsibility for the change.

@gantoine
gantoine self-requested a review August 1, 2026 23:10
@gantoine gantoine added the on-hold Pending further research or blocked by another issue label Aug 1, 2026
@bphenriques

bphenriques commented Aug 3, 2026

Copy link
Copy Markdown
Author

Actions to review:

Will review later this week once my weekly limits resets. Taking a look by hand in the meantime (just slower).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

on-hold Pending further research or blocked by another issue

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feature] Introduce JS-DOS as a new DOS backend

2 participants