
Writing a Chip-8 Emulator with Rust and WebAssembly (2017) - tosh
https://blog.scottlogic.com/2017/12/13/chip8-emulator-webassembly-rust.html
======
RodgerTheGreat
For anyone inspired to write their own Chip8 interpreter, I maintain a
repository of modern games and programs for the platform (as well as some
extended variants). You can give them a try directly from this gallery:
[https://johnearnest.github.io/chip8Archive/](https://johnearnest.github.io/chip8Archive/)

~~~
mzs
I don't really know the chip48/schip differences to chip-8 but I fondly recall
Ant.

[https://github.com/erincatto/AntLove/blob/master/OriginalAnt...](https://github.com/erincatto/AntLove/blob/master/OriginalAnt.txt)

------
Phylter
I'm missing something, I think. What's the big deal with CHIP-8? I'm starting
to see people using it as a programming challenge and I guess I don't
understand what the big deal is. Is it just a fun project or something? What's
prompting this?

~~~
stevekemp
People ask for programming advice all the time, they say "I want to write a
SNES/Playstation/Gameboy/ZX Spectrum emulator, what should I learn?"

Having a standard, and simple, system to suggest elsewhere allows people to
get started gently. Sure some people will still find it "too much", but it's
nicer to learn that earlier instead of after having weeks writing the
implementation of a Z80 emulator.

As the system is simple it can often be implemented in an evening, or a
weekend. If you're new to low-level code then maybe a month of part-time work
would be sufficient. Because the system is so undemanding you can write it in
Python, Javascript, C#, or other high-level languages without the need to
touch/learn/understand C, Golang, or similar too.

In short it's a perfectly self-contained small project for those interested in
implementing emulators, and for that reason it is often seen as a starting
point for places like reddit's /r/emudev

~~~
RodgerTheGreat
And even with all that simplicity, there's enough disagreement and
misinformation about the subtleties of the CHIP-8 instruction set to provide a
microcosm of the same challenges emulation enthusiasts face for more complex
systems.

One of my colleagues published a number of writeups about CHIP-8 portability
based on original research which might be interesting:
[https://github.com/Chromatophore/HP48-Superchip](https://github.com/Chromatophore/HP48-Superchip)

------
StavrosK
Hmm, since this is WebAssembly I would have expected a demo on the page. Too
bad there isn't one, I would have liked to try it out.

~~~
tyingq
It's linked with the words "hosted online".
[https://colineberhardt.github.io/wasm-rust-
chip8/web/](https://colineberhardt.github.io/wasm-rust-chip8/web/)

~~~
StavrosK
Oh, thanks, I saw "on GitHub" but somehow missed "hosted online".

