gemba

GBA emulator frontend (Crystal + Tryst + libmgba)

gemba

A Crystal/Tryst port of gemba, a GBA emulator frontend (ruby original: teek + libmgba).

Its main job is to be a real, non-trivial application built on Tryst - the kind of thing that finds the rough edges a widget-by-widget test suite never will: real concurrency (a full emulation loop running alongside Tk's own event loop), real file I/O, a real native CDN fetch, a settings UI, modals, hotkeys, all of it. Every gap it exposes in Tryst gets fixed in Tryst, not worked around here. A working, genuinely playable GBA frontend is very much the goal too - just the second one.

It lives inside this monorepo so a change to Tryst/tryst-sdl that gemba needed can land in the same commit as the code that needed it, rather than across two repos with a version bump in between.

Screenshots

goodboy

Building

shards install
crystal spec                    # host
scripts/docker-test.sh          # Debian forky, same suite

Needs whatever tryst and tryst-sdl need (Crystal >= 1.21.0, Tcl/Tk 8.6, SDL3), plus libmgba and rcheevos - see the Dockerfile for how the container builds both from source (vendor/build_rcheevos.sh is the same rcheevos recipe, runnable directly on host once vendor/rcheevos is cloned and checked out to the pinned commit), or tryst-sdl's own README for per-platform SDL package names.

Repository

gemba

Owner
Statistic
  • 0
  • 0
  • 0
  • 0
  • 6
  • 41 minutes ago
  • August 28, 2026
License

Links
Synced at

Fri, 28 Aug 2026 22:07:40 GMT

Languages