Skip to content

Emulator WebMSX

Retro Jack edited this page Jun 9, 2026 · 7 revisions

WebMSX — MSX

WebMSX is Paulo Peccin's MSX emulator — same author as Javatari. The integration was straightforward in the sense that WebMSX is a polished web app already; complicated in the sense that "polished web app" meant pulling out a lot of analytics, donation prompts, and PWA wiring.

Where we started

WebMSX is MIT-licensed and covers MSX, MSX2, MSX2+, MSX turbo R. The bundle is single-file (one ~5 MB index.html with everything inline), plus image and game-cart directories alongside.

The cleanup work

Pulling WebMSX in cleanly meant editing the upstream index.html:

  • Strip Google Analytics. Marked with a /* GA stripped for self-host */ comment so future re-syncs of upstream know what to remove.
  • Neuter the donation prompt. The upstream donate() function pops a modal asking for PayPal donations to Paulo. Replaced with a stub that does nothing (kept as a function so any handler that references it doesn't throw).
  • Keep the PWA manifest and cache manifest. WebMSX is built to work as an installed PWA; the manifest works fine when self-hosted, no harm leaving it in.
  • Keep the fullscreen CSS setup. It's how WebMSX styles its canvas inside its own page; removing it would break the layout we depend on.

Cart loading

WebMSX accepts ?ROM=<url> and ?CARTRIDGE1=<url> URL params. Our menu links pass these directly. No URL rewrite needed.

The MSX cart format is varied (Konami, Konami-SCC, ASCII8, ASCII16, mapped vs flat) and WebMSX handles auto-detection in most cases. For carts that need a specific mapper hint, the URL param takes a &FORCE_* flag.

Layout

WebMSX manages its own canvas sizing inside the page. The bezel work for this bundle will need to defer to whatever the WebMSX fullscreen CSS picks, rather than forcing a 4:3 viewport from outside.

Bundle layout

emulators/webmsx/
├── index.html           ← upstream entry, edited (GA + donate scrubbed)
├── cache.manifest       ← PWA cache manifest
├── manifest.webapp      ← PWA manifest
├── controls.html
├── images/              ← logo, icons (referenced by manifest)
└── games/
    └── *.rom / *.mx2 / *.dsk

Related

Clone this wiki locally