projects/2025
EVMU Watch
A Sega Dreamcast VMU emulator running on an Apple Watch.
- Swift
- watchOS
- SpriteKit
- C

The VMU was the Dreamcast's memory card: a tiny device with its own CPU, a 48×32 LCD and a handful of buttons, which could run small games on its own. EVMU Watch wraps the C-based EVMU emulation core in a native watchOS app written in Swift, so those games run on your wrist.
Highlights
- Rendering: each VMU pixel is a SpriteKit node at 3× scale, with an LCD ghosting effect. The scene only redraws when the display actually changes, which matters on a watch’s thermal budget.
- Input: tap regions for the D-pad and face buttons, and velocity-thresholded pans for sleep and mode, all feeding an input queue that’s drained on the emulator’s clock rather than the UI’s.
- C/Swift bridge: the emulator core stays in C, and memory is managed carefully around objects that ARC doesn’t know about.
- Features: ROM selection, colour palettes and save-state management.

Next up is a rewrite on Gimbalsaurus, my Objective-C bindings for libgimbal.