Skip to content
Screenshot from the video game (own work).
Screenshot from the video game (own work). Image by Jordan Mechner, via Wikimedia Commons (CC BY-SA 4.0).

v86

MS DOS WINDOWS EMULATOR

v86

v86 is an open-source x86 PC emulator that runs in modern web browsers (JavaScript + WebAssembly). It can boot disk images of MS‑DOS, FreeDOS and a range of older x86 operating systems and demo images from the project's examples.

ms dos windowsPRIMARY SYSTEM
History documentedPROJECT BEGAN
Open sourcePROJECT MODEL

WHY IT MATTERS

Why you might use v86

Run legacy x86 operating systems and software in a browser without installing a native emulator; useful for demos, quick testing of disk images, education, and embedding a PC environment into web pages.

BEST FOR

Best for

Browser-hosted emulation of MS‑DOS/FreeDOS and other small x86 OS images; embedding an emulated PC into web pages or prototypes where convenience and portability are more important than perfect compatibility or performance.

Prince of Persia gameplay on DOS
Gameplay from Prince of Persia on DOS.

The people behind v86

Project history and status

v86 began as a JavaScript x86 emulator that later added WebAssembly components to improve performance. The primary repository used here is maintained at copy/v86 on GitHub and is published for browser use via the copy.sh demo site. The project and its forks have been actively discussed and updated on GitHub; releases and prebuilt assets (JavaScript/WASM) are published on the repository's releases page. The codebase provides examples, a small set of BIOS/firmware files in-tree, and helper tools for creating filesystem images. Because the project runs in the browser it is convenient for web demos, but it is not a drop-in replacement for high-compatibility native PC emulators when running complex Windows titles or modern software.

What v86 supports

  • MS‑DOS (disk images, FreeDOS)
  • Various lightweight x86 OS images (examples provided in project images repo)
  • Runs in web browsers on desktop and mobile that support WebAssembly and required APIs
  • Node.js (partial support via repository examples and builds)

Download and availability

OFFICIAL DOWNLOADS

Get v86

Official source, prebuilt JavaScript and WASM binaries, and release artifacts are available from the project's GitHub repository releases. The project demo and documentation are also hosted on the copy.sh site.

Get v86 ↗

DOCUMENTATION

Official documentation

Read the official configuration, compatibility, and troubleshooting material before changing advanced options.

Read official documentation ↗
Broken or missing download? Emulator projects move and official links sometimes change. Please contact Retro Replay so the source can be verified and updated.

v86 setup guide

Setup note: This guide explains how to run v86 from the official releases or build it from source, how to supply an MS‑DOS/Windows disk image, where to place BIOS/firmware files the emulator expects, and practical tips for embedding v86 in a web page.

  1. Get official release files or clone the repository: Preferred: download prebuilt assets (libv86.js / v86.wasm / optional v86_all.js) from the project's GitHub releases page. Alternative: clone the repository (github.com/copy/v86) to build locally if you need custom builds or to modify examples.
  2. Required browser environment and files: Use a modern browser with WebAssembly support and necessary APIs (Workers, WebAssembly.Memory). You will need one or more disk images (ISO or floppy/hard image files) and the small BIOS/firmware blobs found in the repository's bios directory if you are running some OS images that reference them. The repository/documentation indicates which images require which BIOS files.
  3. Running the demo (quick start): If you downloaded the release artifacts, copy libv86.js and v86.wasm (or v86_all.js) and an example HTML file (examples/basic.html or the project's demo page) to a web server. The demo HTML shows how to instantiate V86Starter / V86 with a configuration object specifying the memory size, initial disk image URLs, and optional filesystem JSON. For a quick test, use the official demo at copy.sh/v86 which hosts prepared images and demonstrates configuration options.
  4. Supplying MS‑DOS or Windows images: Provide MS‑DOS or FreeDOS floppy or hard disk images (raw .img files) or ISO files via URLs in the emulator configuration. Do not expect commercial Windows installations to run reliably — v86 can run some early Windows versions in example images, but compatibility varies. The project maintains a separate images repository and documentation listing sample images; use those or your own images if you hold legal rights to them.
  5. Embedding v86 in a web page: Use the V86Starter or V86 constructor shown in examples/basic.html. Configure screen_container, boot_order, bios URLs, and filesystem JSON when instantiating. Serve v86.wasm and libv86.js from the same origin or ensure CORS headers are correct. The repository examples show how to wire keyboard and clipboard integration and how to load removable images on the fly.
  6. Building from source (when needed): If you need to build: clone the GitHub repository, install the documented build dependencies (node/npm and build tools described in the README), then run the provided make/npm scripts (for example, make all or npm build) to produce build/v86.wasm and build/v86_all.js. The README and TypeScript declaration file describe available build and runtime options.
  7. Practical tips and limitations: Performance is good for many small OS images but will not match native emulators for heavy workloads. Some BIOSes, firmware files, or Windows-specific requirements may be missing; consult the repository's bios folder and docs/windows-nt.md for notes about images that need extra configuration. For embedding on public sites, prefer the release artifacts rather than building on the fly in production.

Software reminder: v86 does not include commercial game binaries, Windows installers, or other copyrighted images. You must supply any OS or game images you intend to run and ensure you have legal rights to use them.

Sources and further reading

Detailed guides and tutorials

Explore step-by-step guides for v86 as they are published.