💾 Run .exe in browser — x86/ARM emulator with reimplemented Win32/WinCE/Win16/DOS APIs in pure TypeScript
See the codeRun classic Windows and DOS executables directly in your browser. No OS emulation. Just an x86 CPU emulator with reimplemented Windows/DOS APIs. Drag an .exe into the page and see what happens.
RetroTick is an x86/ARM CPU emulator and Windows/DOS API compatibility layer built from scratch in TypeScript. Rather than emulating an entire operating system, it emulates the processor and reimplements OS APIs directly. It parses PE (Win32/WinCE), NE (Win16), and MZ (DOS) binaries, executes x86 and ARM machine code instruction by instruction, and provides partial Win32, Win16, and DOS APIs, allowing some classic Windows-era .exe files to run and render their GUIs in the browser.
| Category | Programs |
|---|---|
| Games | FreeCell, Solitaire, Minesweeper, SkiFree, Prince of Persia (DOS), Chinese Paladin (DOS), Moktar (DOS) |
| Programs | Calculator, Clock, Command Prompt, Task Manager, Sound Recorder, Notepad (Win 3.1x), QBasic, GLX Gears |
| Screen Savers | 3D Maze (OpenGL), 3D Pipes (OpenGL), Mystify, Starfield, Bezier, Flower Box, Marquee |
Most programs have rendering glitches or missing features. This is a work in progress.
.hlp) viewer — Reimplemented web viewer for classic Windows help files: B+tree directory walk, LZ77 + Hall/old phrase decompression, topic chain across HC30 / HCW3.1 / HCW4 file blocks, type-1 / 20 / 22 / 23 / 32 / 35 records, table layouts with per-cell ParaInfo, embedded |bm pictures, hotspot opcodes (jump / popup / macro / cross-file), keyword search indexnpm install
npm run dev
Open http://localhost:5173 and drop a .exe file onto the page, or pick one from the built-in example launcher.
npm run build # Production build → dist/
Headless tests run executables in Node.js with a mock Canvas:
timeout 2 npx tsx tests/test-<name>.mjs
See tests/ for details.
PRs welcome! The main goal is to make more executables run correctly, which typically means implementing missing Win32/Win16 API stubs, fixing rendering issues, and improving GDI fidelity. See CLAUDE.md for the step-by-step workflow.
We strongly recommend contributing with Claude Code or similar AI coding tools. The project ships a detailed CLAUDE.md that Claude Code picks up automatically, making it easy to navigate x86 internals and Win32 API surfaces. Of course, coding by hand is also welcome.
This project is released under CC0 1.0 Universal. The initial codebase was generated entirely by AI. You are free to use, modify, and distribute this project for any purpose without attribution. Third-party dependencies retain their own licenses (MIT).
Like QEMU, DOSBox, Wine, and other emulators, RetroTick implements documented public interfaces (x86 instruction set, Win32 API, PE/NE/MZ file formats) and does not contain code derived from any proprietary implementation. During development, AI coding tools were used and may have inspected bytes from test executables to diagnose compatibility issues, much like a developer using a debugger or hex editor. Such analysis only reveals which public APIs and x86 instructions a program uses, not its proprietary logic.
The example programs demonstrated by this project are classic Windows utilities and games from the 1990s that have been widely available on the internet for decades. They are included solely for demonstrating interoperability. If you are a rights holder and would like a program removed, please open an issue.
All product names, trademarks, and registered trademarks mentioned in this project are the property of their respective owners. This project is not affiliated with, endorsed by, or sponsored by any trademark holder.
269 followers · starred Jul 2026
489 followers · starred Apr 2026
248 followers · starred Apr 2026
1,043 followers · starred Apr 2026
💾 Run .exe in browser — x86/ARM emulator with reimplemented Win32/WinCE/Win16/DOS APIs in pure TypeScript
See the codeRun classic Windows and DOS executables directly in your browser. No OS emulation. Just an x86 CPU emulator with reimplemented Windows/DOS APIs. Drag an .exe into the page and see what happens.
RetroTick is an x86/ARM CPU emulator and Windows/DOS API compatibility layer built from scratch in TypeScript. Rather than emulating an entire operating system, it emulates the processor and reimplements OS APIs directly. It parses PE (Win32/WinCE), NE (Win16), and MZ (DOS) binaries, executes x86 and ARM machine code instruction by instruction, and provides partial Win32, Win16, and DOS APIs, allowing some classic Windows-era .exe files to run and render their GUIs in the browser.
| Category | Programs |
|---|---|
| Games | FreeCell, Solitaire, Minesweeper, SkiFree, Prince of Persia (DOS), Chinese Paladin (DOS), Moktar (DOS) |
| Programs | Calculator, Clock, Command Prompt, Task Manager, Sound Recorder, Notepad (Win 3.1x), QBasic, GLX Gears |
| Screen Savers | 3D Maze (OpenGL), 3D Pipes (OpenGL), Mystify, Starfield, Bezier, Flower Box, Marquee |
Most programs have rendering glitches or missing features. This is a work in progress.
.hlp) viewer — Reimplemented web viewer for classic Windows help files: B+tree directory walk, LZ77 + Hall/old phrase decompression, topic chain across HC30 / HCW3.1 / HCW4 file blocks, type-1 / 20 / 22 / 23 / 32 / 35 records, table layouts with per-cell ParaInfo, embedded |bm pictures, hotspot opcodes (jump / popup / macro / cross-file), keyword search indexnpm install
npm run dev
Open http://localhost:5173 and drop a .exe file onto the page, or pick one from the built-in example launcher.
npm run build # Production build → dist/
Headless tests run executables in Node.js with a mock Canvas:
timeout 2 npx tsx tests/test-<name>.mjs
See tests/ for details.
PRs welcome! The main goal is to make more executables run correctly, which typically means implementing missing Win32/Win16 API stubs, fixing rendering issues, and improving GDI fidelity. See CLAUDE.md for the step-by-step workflow.
We strongly recommend contributing with Claude Code or similar AI coding tools. The project ships a detailed CLAUDE.md that Claude Code picks up automatically, making it easy to navigate x86 internals and Win32 API surfaces. Of course, coding by hand is also welcome.
This project is released under CC0 1.0 Universal. The initial codebase was generated entirely by AI. You are free to use, modify, and distribute this project for any purpose without attribution. Third-party dependencies retain their own licenses (MIT).
Like QEMU, DOSBox, Wine, and other emulators, RetroTick implements documented public interfaces (x86 instruction set, Win32 API, PE/NE/MZ file formats) and does not contain code derived from any proprietary implementation. During development, AI coding tools were used and may have inspected bytes from test executables to diagnose compatibility issues, much like a developer using a debugger or hex editor. Such analysis only reveals which public APIs and x86 instructions a program uses, not its proprietary logic.
The example programs demonstrated by this project are classic Windows utilities and games from the 1990s that have been widely available on the internet for decades. They are included solely for demonstrating interoperability. If you are a rights holder and would like a program removed, please open an issue.
All product names, trademarks, and registered trademarks mentioned in this project are the property of their respective owners. This project is not affiliated with, endorsed by, or sponsored by any trademark holder.
269 followers · starred Jul 2026
489 followers · starred Apr 2026
248 followers · starred Apr 2026
1,043 followers · starred Apr 2026