va3jfl/pcem-webassembly — explained in plain English
Analysis updated 2026-05-18
Boot old DOS-era or early Windows PCs and games directly inside a web browser.
Share a link that boots your exact configured machine, disks included, for someone else to open.
Run two emulated PCs in different browser tabs to test old multiplayer software.
| va3jfl/pcem-webassembly | anylaysys/qemu-geniezone | felipealme/dvs-wireless-diy-dj-system | |
|---|---|---|---|
| Stars | 14 | 14 | 14 |
| Language | C | C | C |
| Setup difficulty | moderate | hard | hard |
| Complexity | — | 4/5 | 4/5 |
| Audience | developer | developer | general |
Figures from each repo's GitHub metadata at analysis time.
Requires your own BIOS ROM files and a browser supporting SharedArrayBuffer with cross-origin isolation headers set.
PCem-WebAssembly takes an old-PC emulator called PCem and makes it run directly in a web browser instead of as a separate desktop program. Normally PCem lets you recreate old computers, from early 8088 machines up through Pentium-class systems, complete with their sound cards, graphics chips, and storage devices, so you can boot old software or play old games. This project rebuilds that same emulator so it works as a single web page, with nothing installed on your computer beyond your browser. A lot of care went into making things that are easy on a desktop actually work well online. Emulation runs on its own background thread so the page never freezes even if an emulated computer runs slower than real time. Graphics for one supported 3D chip are handled by code that gets compiled specifically for your browser at the moment you use it, which is checked automatically against the original method to make sure the picture stays identical. Sound plays through a dedicated audio system built to avoid stutters. Old hard disk and floppy images can be attached straight from files on your computer without uploading them anywhere, and any changes you make during a session can be saved back out afterward. There is also a basic networking option that lets two emulated computers, running in different browser tabs or even different computers, talk to each other, which is enough for old multiplayer games. To run it yourself, you need a fairly modern browser and a server that sends two specific security headers, which the project's own simple test server already sets up for you. You also need to supply your own copy of the original computer BIOS files, since those are not included, the same restriction that applies to the original PCem. Building the project from source requires a specific compiler toolchain for turning C code into WebAssembly, and the project includes an automated test suite that checks graphics, sound, and networking behavior against known-correct results. It is released under the same GPL v2 license as the original PCem project it is based on.
A browser-based version of the PCem retro PC emulator, letting you boot old computers and games with no software install.
Mainly C. The stack also includes C, WebAssembly, Emscripten.
Setup difficulty is rated moderate, with roughly 30min to a first successful run.
Mainly developer.
This repo across BitVibe Labs
double-check against the repo, no cap.