I've ported my NES emulator to WebAssembly using Rust's native WebAssembly support; no Emscripten involved!



Once upon a time I wrote an NES emulator in Rust, and since recently I’ve been dealing with the Web and WebAssembly a lot I thought - hey, why not port it to the Web!

So, here it is:


It’s not the most well optimized emulator, so if you don’t have a good machine it might not run too great, but otherwise it should work reasonably well. Nevertheless I think it’s a pretty cool demo of the future to come!


Doesn’t work in Safari:

Unhandled Promise Rejection: ReferenceError: Can’t find variable: AudioContext

(AudioContext is available in WebKit but still prefixed.)


Cool! I had no idea that web-assembly in Rust was already this far along! Thanks for sharing!


I’d love to support Safari, but alas, I don’t have a Mac and Apple stopped releasing Safari for other platforms. ):


It’s not perfect, but if you can find a browser running a recent version of WebKit, it should be a decent standin for Safari for testing. This is easy on Linux, but somewhat difficult on Windows. (I was only able to find Midori, whose last release came two years ago, and “AppleWin” nightlies on webkit.org, which are neat but missing features and thus useless for this purpose.)


This is awesome!!! :smile: