movie86
Run mov-heavy ELF32 i386 binaries in your browser via the
movie86
emulator core (Rust, no_std, compiled to wasm).
Pair with movfuscator-wasm to
compile + run mov-only C end-to-end. Source:
github.com/sksat/x86.mov .
example:
return42 — exit 42 via int 0x80
hello — write(1, "Hello\n") + exit
call_greet — direct CALL/RET
cycle — print "1 2 3 4 5" forever (CALL/RET loop)
canvas_bars — mode 13h SMPTE-ish color bars
canvas_smile — mode 13h smiley face
canvas_modes — switch mode 13h → 12h mid-run
canvas_mandelbrot — real-compute Mandelbrot (clang -O2 → llvm-mov, ~90 s)
canvas_mandelbrot_hires — same, native 320×200 + MAX_ITER=24 (~40 min)
canvas_mandelbrot_max — VESA 6Ah 800×600 native (~8 hours, overnight)
canvas_mandelbrot_mov — same C, movfuscator pipeline (~10 min, for comparison)
png_decode — 64×64 PNG full decode (stored block)
bmp_decode — 320×180 32bpp BMP full decode → FB buffer
input_demo — steer a block with arrow keys / Space (hover the canvas; mov-only input ABI)
(upload your own ELF)
Reset
Step
Run
Follow execution
step delay: ms
batch:
refresh: ms
init…
turbo86:
mode:
trap
host
Send to local turbo86
idle
turbo86 session
—
—
Pause turbo86
Restore Vm from Paused