WATaBoy: JIT-Ing Game Boy Instructions to WASM Beats a Native Interpreter
3 days ago
- #Game Boy Emulation
- #JIT Compilation
- #WebAssembly
- The project explores using WebAssembly as a target for just-in-time compilation to bypass iOS's JIT restrictions, demonstrating that a Game Boy emulator's JIT-to-Wasm can outperform a native interpreter.
- Implementation involves generating WebAssembly bytecode at runtime in Rust, linking it via JavaScript, and using call_indirect for execution, with benchmarks showing speed improvements of ~1.2x over native interpreters.
- Results indicate cross-browser compatibility with Safari performing best, and future work includes optimizing the PPU emulation and improving code generation tools for broader adoption in emulation.