
Emulators Written in JavaScript - rockdiesel
https://hackerlists.com/javascript-emulators/
======
Ecco
The title is a tiny bit misleading. Indeed all of those are JavaScript
emulators, but not all of them were _written_ in JS. At least one on the list
(mupen64plus) is transpiled from C++ using the (amazing) emscripten.

------
flohofwoe
This appears to be ripped from the original list here, which is also more
uptodate:

[https://github.com/fcambus/jsemu](https://github.com/fcambus/jsemu)

------
pikzen
How many of them are proper, accurate emulators though (and not emscriptened
ones like mupen64)? Parsing bytes and mapping them to instructions is easy,
and I believe that's why most of them are for very simple machines. We're
still very far away from having multiple PS1/N64 era that are running at a
tolerable framerate.

Except 1964js, which works in a way that both amazes me and makes me feel
dirty at the same time.

------
4a60ab76
small & easy linux-like in-browser emu:
[http://bellard.org](http://bellard.org)

fullscreen, "Unix-like virtual shell", u.a. ssh(!?); ping(ok) "-": no c&p,
[http://cb.vu/](http://cb.vu/)

think, there are some more Linux & unix Emulators in js? would be nice, find
some in next comments. :-)

~~~
s-macke
Try [https://github.com/copy/v86](https://github.com/copy/v86) and
[https://github.com/s-macke/jor1k/](https://github.com/s-macke/jor1k/)

The latter one even has complete network support.

------
bttf
Intresting that SNES is missing from the nintendo list. There's a good bit of
literature on the underlying implementation for SNES roms:
[https://github.com/bttf/snes_dev](https://github.com/bttf/snes_dev)

(Full disclosure: I spent a little time accumulating aforementioned
literature)

~~~
memco
XNES[1] is mentioned, which links to a page with several other us ports
including SNEM and SNES9x.

[1] [http://tjwei.github.io/xnes/](http://tjwei.github.io/xnes/)

------
d2p
I wrote a Chip-8 emulator (VM?) in C# and then tweaked it so that Bridge.NET
could compile it down to JavaScript:

[https://blog.dantup.com/2016/06/dachip8js-my-csharp-
chip8-in...](https://blog.dantup.com/2016/06/dachip8js-my-csharp-
chip8-interpreter-running-in-the-browser/)

~~~
jimmaswell
I wrote one in JavaScript directly some time around 2012 or 2013.
[http://chip8.progr.am/chip8.html](http://chip8.progr.am/chip8.html)

------
dodo6502
Also missing a 6502 emulator I wrote in Go that is transpiled to JavaScript
using Gopherjs:
[https://play.dodolabs.io/?code=89e9a475](https://play.dodolabs.io/?code=89e9a475)

------
IamCarbonMan
Can't wait to see some of these ported to WebAssembly.

~~~
flohofwoe
My 8-bit multisystem emulator has both an asm.js and WebAssembly version:

asm.js:
[http://floooh.github.io/virtualkc/index.html](http://floooh.github.io/virtualkc/index.html)

WebAssembly:
[http://floooh.github.io/virtualkc/index_wasm.html](http://floooh.github.io/virtualkc/index_wasm.html)

------
smaili
I would actually be more interested in the ones that are actively maintained.
Many tend to come and go, NESBox being one that comes to mind.

------
Sir_Cmpwn
Missing a TI calculator emulator I wrote in C that can be compiled with
emscripten and run in the browser (does that count?):

[https://github.com/KnightOS/z80e](https://github.com/KnightOS/z80e)

~~~
duskwuff
Oh neat! I've been dabbling with a similar project for the TI Voyage 200...
the Emscripten version isn't in the repo, but it's relatively straightforward
to make work.

[https://github.com/duskwuff/v200](https://github.com/duskwuff/v200)

------
kyberias
Some of these are not emulators, they are just code translated to Javascript,
or e.g. compilers written in Javascript.

