WATaBoy: A Game Boy Emulator That Uses WebAssembly JIT Compilation to Outperform Native Interpreters on iOS
By
energeticbark
Summary
This article explores the technical challenge of running CPU-bound emulators like Dolphin on iOS, where Apple's restrictions prevent just-in-time (JIT) compilation. The author investigates an alternative approach: building a Game Boy emulator that dynamically recompiles SM83 instructions to WebAssembly (Wasm), effectively achieving JIT-like performance on iOS. The project, called WATaBoy, demonstrates that recompiling to Wasm can outperform a native interpreter, offering a potential path forward for high-performance emulation on restricted platforms like iOS.
Source
Key quotes
· 3 pulledDolphin isn't on iOS, because you can't do JIT compilation on iOS.
Ever since reading that, I've wondered what it would take to get a CPU-bound emulator like Dolphin working on iOS.
Do we just... have to wait a few years for iPhone CPUs to get fast enough to run Dolphin with an interpreter?
You might also wanna read
Bytecode Virtual Machines in Unexpected Places: From SQLite to the Linux Kernel
A blog post exploring the use of bytecode virtual machines in unexpected places, starting with Richard Hipp's explanation of why SQLite uses
Standboy: A Game Boy emulator for your code editor sidebar that plays while AI agents work
Michael built Standboy, a free and open-source Game Boy emulator that lives in your code editor's sidebar. It automatically wakes up when yo
Building a GPU backend for Emacs: A technical deep dive into hardware-accelerated text rendering
The author documents their personal journey of building a GPU-accelerated rendering backend for Emacs, driven by curiosity about why the edi

Comments
Sign in to join the conversation.
No comments yet. Be the first.