Javascript Emulation
with Virt.js

Maƫl Nison - @arcanis

Project available on Github

What means "emulation"?

In computing, emulation is the technique used so one machine gets the same results as another

Case Study: Gameboy

Emulator components

CPU
GPU
MMU
Timer / Input / Sound ...

CPU

Basically maps integer to JS code

0x80 means "Add A and B, then put the result in A"

How CPU are typically implemented

GPU

4-states machine (hblank, vblank, dma, oam)

Update the screen texture each frame

The Gameboy works with a tile system

Random fun, sorry Scrooge

MMU

How does this port in Javascript?

Let's use Virt.js!

Many features

Some examples!

Evolutions to come

Full ES6

JIT!

More systems

(and more contributors :)

Here we are !

Waiting for your feedbacks