A list of emulators written in the JavaScript programming language.

This list started as a compilation of JavaScript emulators posted to Echo JS over the years. If you know about any missing emulators, please consider adding them to the collection: the source for this page is available on GitHub. Thank you in advance.

Acorn

Altair

Amstrad

  • CPCBox - Amstrad CPC emulator in JavaScript (archive link)
  • CPC Tiny Emu - by Andre Weissflog (source)
  • Roland - An Amstrad CPC emulator written in JavaScript. (Source)

Apple

Atari

Commodore

Data General

DEC

Nintendo

  • 1964js - JavaScript port of the 1964 N64 emulator for Windows
  • CfxNES - JavaScript NES Emulator (Demo)
  • CycloaJS - JavaScript NES Emulator (Source)
  • em-fceux - an Emscripten port of FCEUX, an emulator of NES, Famicom, Famicom Disk System (FDS), and Dendy consoles. Demo site
  • GBA.js - Game Boy Advance in the Browser (Source)
  • IodineGBA - A GameBoy Advance emulator written entirely in JavaScript (Source)
  • gba.ninja - JavaScript port of VisualBoyAdvance-M, a GameBoy Advance emulator (Source)
  • JSNES - A JavaScript NES emulator (Source)
  • NESNES - JavaScript NES emulator, also available as a web component (Source)
  • Nezulator - A NES emulator in JavaScript
  • N64Wasm - A web based N64 Emulator (Source)
  • XNES - Experimental JavaScript Super Nintendo emulators (Source)
  • jsGB - A GameBoy emulator in JavaScript (Source)
  • jsGBC - GameBoy Color Emulator written in JavaScript (Source)
  • mupen64plus - A port of the popular Nintendo 64 emulator for the Web (Source)
  • n64js - An N64 emulator in JavaScript (Source)
  • pinky - A Rust based NES emulator ported to the web via WebAssembly (Source)
  • DeSmuME-wasm - A WebAssembly port of the DeSmuME Nintendo DS emulator (Demo)
  • Desmond.js - A portable/embeddable version of DeSmuME-wasm (Demo)
  • SkyEmu - SkyEmu is a low level GameBoy, GameBoy Color and Game Boy Advance emulator
  • CAMLBOY - A Game Boy emulator that runs in your browser written in OCaml

Robotron / VEB Mikroelektronik

Sega

Sinclair

Sony

  • eNGE - JavaScript browser based PSX emulator (runs games at full speed) (Source)
  • PSeudo - JavaScript/WebGL/WebAudio browser based PLAYSTATION emulator (aka PSX) (needs boot ROM image, not supplied) (Source)
  • PCSXjs - Modified PCSX-Reloaded compiled with Emscripten (Source)
  • WASMpsx - Easily embeddable fork of PCSXjs
  • kpspemu - PSP Emulator written in Kotlin for JVM, JS and Native
  • Play!.js - This is a port of Play!, a PlayStation2 emulator, running in a web browser

Tandy

Multi-system Emulators

  • JSMESS examples - The JavaScript MESS (Multi Emulator Super System) (Source) (Notes)
  • PCE - PC emulators in JavaScript (Atari ST, IBM PC 5150, Macintosh, RC759 Piccoline)
  • RetroArch - JavaScript port of RetroArch (bundles Gambatte (Gameboy), Genesis Plus GX, Handy (Lynx), Snes9x Next, VBA Next (GameBoy Advance), Tyrquake and FinalBurn Alpha)
  • RetroWeb - collection of JavaScript emulators and boot media, including Apple-IIe (VisiCalc), Macintosh (System 1.0), Atari 1040ST, Commodore 64, Amiga 500 (Workbench 1.3), IBM PC Model 5150 (PC-DOS, CP/M-86, Cassette Basic), IBM PC XT (DOS, GEM 1.2, VisiCalc, Windows 1.01, 8088 Corruption demo), RC759 Piccoline (Eliza, Bil-simulation, Concurrent CP/M-86), TRS-80.
  • YAKC - Z1013, Z9001, KC85/2 family, Speccy, CPC, Acorn Atom, C64, with integrated debugging UI (source)
  • Tiny Emulators - based on the same chip- and system-emulator source code as YAKC, but as minimal WASM apps without fluff (source)
  • EmulatorJS - Self-hosted emulator for various-systems.

PC Emulators

  • Em-DOSBox - An Emscripten port of DOSBox (Demo)
  • Halfix - x86 PC emulator that runs both natively and in the browser, via WebAssembly (Demo 1, Demo2)
  • js-dos - WebAssembly port of DOSBox (fork of Em-DOSBox with better js API) (Demo,Source)
  • JS/Linux - JavaScript PC emulator
  • JsDOSBox - JavaScript PC DOS emulator (Source)
  • PCjs - IBM PC Model 5150 emulator (Source)
  • QemuJS - An Emscripten port of QEMU (Demo)
  • Virtual x86 - x86 virtualization in your browser, recompiling x86 to wasm on the fly (Source)
  • jemul8 - An object-oriented JavaScript x86 emulator for Node.js and the Browser (Source)
  • jsbochs - Bochs PC emulator for the Browser (Source)
  • Boxedwine - An emulator that runs Windows applications using Wine and emulating a Linux kernel and CPU (Source)

Bare CPUs

  • 8008 running SCELBAL by Mark G. Arnold. (“SCELBAL is the only open-source, floating-point, high-level language ever implemented on the 8008”)
  • 8080 CPU emulator - Intel 8080 CPU emulator running Space Invaders ROM (Source)
  • AVR8js - AVR architecture emulator, capable of running Arduino code (source)
  • EMF Arcade Invaders - EMF-based 8080 Emulator with Space Invaders ROM - by Steven Goodwin (@MarquisdeGeek) (Source)
  • 8086tiny running FreeDOS - An Emscriptem port of Adrian Cable’s 8086tiny. Source, and other emulators ported by Clay Shippy, at https://github.com/tecan/emscripten-projects.
  • Angel - JavaScript RISC-V ISA simulator booting Linux in a web-browser
  • Angular 2 6502 written with TypeScript and Angular 2, by Jeremy Likness
  • ARM-js - An ARM emulator written in JavaScript (Source)
  • ASM80 - Online assembler for 8-bit microprocessors by Martin Malý. Includes emulation of several machines: 8080, Z80, 6502, 6809. (Sources)
  • Basic MIPS functional simulator by Mianzhi Wang (morriswmz). (Source)
  • Easy6502 - JavaScript 6502 tutorial and emulator (Source)
  • EduMIPS64 - Educational MIPS64 CPU, ported from Java by Andrea Spadaccini using GWT (see blog here.) (Source)
  • FRISCjs - an 8-register educational RISC from the University of Zagreb, with both assembler and front panel, by Ivan Žužak. Source
  • Imaginary 6502 - 6502 Emulator and Assembler
  • Intel 4004 emulator - by Maciej Szyc. Includes assembler and disassembler.
  • Intel 8080 CPU Emulator - Emulates a minimal Intel 8080 Microcomputer that runs CP/M
  • JavaScript 8080 Emulator - 8080 arcade game emulator in JavaScript
  • Mipsdis - MIPS disassembler that runs in the browser
  • RISC Relay Computer - Relay based computer project with a 16 bit RISC CPU. Emulator includes an assembler and source for a calculator program. By RJH. See website.
  • RISCVEMU - RISC-V emulator boots 64-bit Linux. By Fabrice Bellard.
  • RP2040js - Raspberry Pi Pico (RP2040 / Arm Cortex-M0+) emulator with C/C++/MicroPython/CircuitPython support (Source)
  • Simple 8-bit Assembler Simulator - Provides a simplified assembler syntax (based on NASM) and is simulating a x86 like CPU (Source)
  • uARM.wasm - ARMv5TE emulator running Linux in browsers (Source)
  • Unicorn.js - The Unicorn emulator framework, now available for JavaScript (Source)
  • Visual ARM1 - JavaScript/WebGL for ARM’s first CPU, modelling 25000 transistors at switch level and animating the original chip layout - in 3D. See the blog post
  • Visual 6502 - JavaScript simulator for the 6502 CPU, modelling thousands of transistors at switch level and animating the original chip layout. See also expert mode.
  • Visual 6800 - JavaScript simulator for the Motorola 6800 CPU, modelling thousands of transistors at switch level and animating the original chip layout.
  • Visual Z80 - JavaScript simulator for the Z80 CPU, modelling thousands of transistors at switch level and animating the original chip layout.
  • Visulator - x86 machine emulator that visualizes how each instruction is processed (Source)
  • YAMD - Yet Another MIPS Debugger (Source)
  • jor1k - OpenRISC OR1K JavaScript emulator running Linux with network support (Source)
  • jslm32 - JavaScript LatticeMico32 emulator running Linux (Source)
  • ZUSIE - JavaScript simulation of Fredrik Andersson’s homebrew relay machine inspired by Zuse’s machines.

Early machines

Calculator emulators

Microcode-level calculators

Workalike calculators

Miscellaneous

Adventure Game Engines

  • Emscripten ScummVM - Emscripten fork of the ScummVM engine
  • IFVMS - Infocom/Inform Web interpreter
  • Parchment - Infocom/Inform Web interpreter
  • ZZTJS - ZZT game engine in JavaScript
  • ngPAWS - Professional Adventure Writer (PAW) Web interpreter

See also (lists of JavaScript emulators elsewhere)