wemu

Classic 32-bit Windows games, running in WebAssembly.

wemu is a browser-first Win32 HLE emulator for old games. It opens a local ZIP, maps the game into a compact runtime, and runs without uploading your files.

Play it Now

Open a ZIP and play from the browser.

The player supports desktop browsers and mobile Safari, including iOS and iPadOS. On iPhone and iPad, wemu guides you through adding the player to the Home Screen before launching games.

1

Zip the game folder

Keep the executable and data files together. For large archives, create the ZIP in store mode with no compression.

2

Choose the program

If the archive contains multiple EXE files, the player asks which one to start.

3

Play locally

The browser reads your files locally. No account, installer, or cloud upload is required.

Screenshots

Current compatibility targets.

wemu is experimental. These screenshots use non-commercial Windows-compatible apps and games currently used to guide reusable Win32 behavior.

Solitaire running in wemu
Solitaire
WineMine running in wemu
WineMine
WinDepth running in wemu
WinDepth

Optimized for WASM

Designed for a shorter path from Win32 to browser graphics.

Different emulator projects choose different compatibility layers. wemu deliberately skips the guest OS, kernel, and hardware layers, and implements the Win32 APIs old games need directly in Rust and WASM.

v86

Emulates an x86 PC and hardware in the browser.

BoxedWine

Runs 32-bit Wine and emulates the Linux kernel and CPU.

wemu

Implements focused Win32 HLE for classic game paths inside a compact WASM runtime.

Performance Model

Native API paths and fast guest memory.

Win32 HLE

Kernel32, USER, GDI, WinMM, DirectDraw, CRT, and COM calls run through host-side emulator code instead of a full guest Windows stack.

GDI and DirectDraw

2D-heavy games get a direct path from emulated Win32 graphics calls to browser or SDL2 presentation.

Fastmem-style memory

Guest addresses are directly usable inside a reserved host or WASM address range, avoiding SoftMMU dispatch on normal loads and stores.

Status

Experimental, focused, and still incomplete.

wemu is useful for trying classic 32-bit Windows games in the browser, on iOS/iPadOS, or through the SDL2 frontend, but it is not a general-purpose Windows emulator.

Current priorities

  • Improve old game compatibility.
  • Smooth live play across browser, iOS/iPadOS, and SDL2.
  • Improve Win32 UI behavior: messages, timers, dialogs, menus, and controls.
  • Improve GDI and DirectDraw correctness.

Current limitations

  • Many games still hit missing x86 instructions or Win32 APIs.
  • Sound output is not implemented yet.
  • Kernel drivers and 16-bit Windows applications are non-goals for now.