Back to home
Live lab / WASM

Retro Game Center boots DOOM Shareware through WebAssembly.

A live demo adapted from home-media-portal: DOSBox-X for Web, a curated ROM manifest, and a lazy iframe that keeps the runtime off the homepage until requested.

DOSBox-X runtime

The engine is loaded only after interaction. WASM, ROM files, and emulator scripts stay behind the lab route.

DOS runtime is staged, not loaded.

Open tab

DOS runtime is staged, not loaded.

Press boot to load the WASM engine, ROM manifest, and emulator assets inside the isolated frame.

Runtime isolation details

This demo shows how to load a heavy browser runtime only on demand, keep its assets isolated, and protect the main site from its payload.

Isolated payload

The 16 MB runtime lives under /wasm and does not load from the home route or project archive.

Narrow asset server

A narrow Next.js delivery policy serves WASM, ROM, and engine files with explicit MIME, cache, and sandbox-compatible headers.

No backend dependency

Scores, saves, auth, and admin tooling stay out of v0.2.0 until they become real product requirements.

Current guardrails

Sandboxed iframe with explicit permissions for scripts, pointer lock, downloads, fullscreen, and gamepad without same-origin escape.

Shareware ROM manifest copied as static assets after size review.

Pinned vendor scripts are served locally inside the isolated engine frame with recorded provenance.