Skip to content
guac

guac

GAME BOY ADVANCE EMULATOR

guac

Guac is an open-source emulator written in Go that targets Game Boy Advance, Game Boy, Game Boy Color and Nintendo DS. It emphasizes cycle-accurate GBA CPU timing, an ARM JIT for NDS, and provides prebuilt Windows/Linux binaries plus source builds.

game boy advancePRIMARY SYSTEM
History documentedPROJECT BEGAN
Open sourcePROJECT MODEL

WHY IT MATTERS

Why use Guac?

Guac aims for high timing accuracy (notably cycle-accurate GBA CPU timing), a Go-based codebase, and platform portability including an ARM JIT for improved performance on supported hardware.

BEST FOR

Best for

Users who want a modern, actively-developed emulator written in Go, especially those interested in GBA timing accuracy, experimenting with JIT work on arm64, or building from source on Linux/ARM systems.

The people behind guac

History & status

Guac is developed publicly on GitHub (aabalke/guac). The repository contains an active commit history and a small series of formal releases (v0.0.1 → v0.0.4). Release notes show ongoing work: early UI and ARM/ARM64 JIT support, NDS support with a jit compiler, and a later v0.0.4 noting cycle-accurate GBA improvements and timing-test passes. The project provides prebuilt Windows and Linux binaries and instructions to build from source with Go. Development is active in the upstream repository, with issues and release activity visible on the project’s GitHub pages. Project documentation points users to guacemulator.com for additional docs and flags, and the README describes features, build requirements, and release guidance. (See sources.)

What guac supports

  • Game Boy Advance (GBA)
  • Game Boy Color (GBC)
  • Game Boy (DMG)
  • Nintendo DS (NDS)

Download and availability

OFFICIAL DOWNLOADS

Get guac

Official binaries and release archives are distributed on the project's GitHub Releases page. Source code is available on the repository for building with Go.

Get guac ↗

DOCUMENTATION

Official documentation

Read the official configuration, compatibility, and troubleshooting material before changing advanced options.

Read official documentation ↗
Broken or missing download? Emulator projects move and official links sometimes change. Please contact Retro Replay so the source can be verified and updated.

guac setup guide

Setup note: This guide explains obtaining and running Guac on common hosts, and how to build it from source when needed. It uses only verified repository info and the project's documented flags/build notes.

  1. Obtain a release or the source: Preferred: download a prebuilt release from the project's GitHub Releases page. Alternative: clone the repository and build from source with Go.
  2. Run prebuilt binary (Windows / Linux): Unpack the release archive and run the guac executable. The README notes Windows and Linux precompiled binaries are provided; running the executable without flags starts the UI. If audio or controllers are required on your host, ensure OS drivers are present.
  3. Build from source (recommended for custom platforms): Requirements: Go toolchain >= 1.26.5 (as stated in the README). Steps: 1) git clone https://github.com/aabalke/guac.git 2) cd guac 3) go build . 4) run the resulting guac binary. For platform-specific build quirks consult the project documentation linked from the repository.
  4. ARM / Raspberry Pi notes: The project notes arm/arm64 support and an arm64 JIT that improves performance; Raspberry Pi is mentioned as a supported target though earlier notes say only GB/GBC emulation was fast enough at one stage. If using ARM hardware, use the prebuilt ARM artifacts when available or build on-device with the Go toolchain. Expect to enable or tune JIT parameters if present in the UI or configuration.
  5. Using ROMs and BIOS: Guac's README explicitly states it does not require BIOS or firmware to boot most games (direct boot is supported), though it accepts optional BIOS/firmware if you provide them. Do not expect any commercial ROMs, BIOS or firmware to be bundled with releases; obtain those files legally and place them where the emulator expects them per the project's runtime options.
  6. Controls, UI and configuration: Guac includes a UI with controller support, customizable keybindings and language options. The README and release notes mention an on-screen keyboard and automatic controller binding detection. Use the UI menus to configure inputs, display scaling, and GBA/GBC/NDS options. For advanced flags and CLI options consult the project's docs or website referenced in the README.
  7. Troubleshooting & performance: If performance or correctness issues appear, try the latest release, enable or tune the JIT (on platforms where it exists), or build from source to pick up fixes. The README and release notes list known unsupported features (for example some DS features such as microphone or Wifi may be missing). Report bugs via the project's GitHub Issues to aid development.

Software reminder: The project does not include commercial games, BIOS, firmware or copyrighted ROMs. Provide any required ROM/BIOS files yourself and only use content you own or have rights to use.

Sources and further reading

Detailed guides and tutorials

Explore step-by-step guides for guac as they are published.