About this project

v86 is an x86-compatible PC emulator that runs entirely in the browser. It translates machine code to WebAssembly at runtime to achieve decent performance. The emulator supports a wide range of hardware, including a Pentium 4-level CPU with SSE3, a floating-point unit, floppy disk controller, keyboard, mouse, timers, interrupt controllers, VGA/SVGA graphics, PCI bus, IDE controller, NE2000 network card, virtio devices, SoundBlaster 16 sound card, and a Hayes-compatible modem. It can boot various operating systems, including Linux (32-bit), Windows (1.01, 3.x, 95, 98, ME, NT, 2000, and some versions of XP/Vista/8), FreeDOS, MS-DOS, ReactOS, KolibriOS, Haiku, Android-x86, 9front, QNX, FreeBSD, OpenBSD, and several hobby OSes. Some OSes have specific limitations or require configuration tweaks. The project provides demos for many of these systems, documentation for setting up guest OSes, and an API for embedding the emulator in web pages. It can be built from source using make, Rust, and other tools, or used via an npm package. The code is licensed under the Simplified BSD License.