Skip to content
demo-emulator

demo-emulator

GAME BOY COLOR EMULATOR

demo-emulator

A compact, open-source Nintendo Game Boy emulator implemented in Go, intended as a workshop/demo project and educational reference for emulator programming.

game boy colorPRIMARY SYSTEM
2016PROJECT BEGAN
Open sourcePROJECT MODEL

WHY IT MATTERS

Why this project matters

demo-emulator is a small, readable emulator implementation intended for teaching and experimentation. It is suitable for people learning how a Game Boy works because the codebase is written in Go and organised for clarity rather than maximal compatibility or performance.

BEST FOR

Best use cases

Use as an educational reference, to inspect emulator internals, and as a starting point for workshops or simple experiments. It is not positioned as a high-compatibility end-user emulator for all commercial ROMs.

Wario Land 3 gameplay on Game Boy Color
Gameplay from Wario Land 3 on Game Boy Color.

The people behind demo-emulator

History and status

The repository is authored by Ignacio Sanchez (drhelius) and is presented as workshop/demo material. The README carries a 2016 copyright and describes the emulator as a Nintendo Game Boy emulator written in Go for use in emulator-programming workshops. The project contains source organized under gb/, uses GLFW/OpenGL for a windowed frontend, and includes example test ROMs and slides for presentation. It is published under the GPL-3.0 license and is hosted on GitHub where it has community stars and forks. The project appears to be maintained as an educational/demo repository rather than a production-focused emulator.

What demo-emulator supports

  • Nintendo Game Boy (DMG) — runs .gb ROM files (command-line -rom argument)
  • Build & run on desktop platforms supported by Go + GLFW (Windows, Linux, macOS) — requires platform development headers as listed in README
  • Controls mapped to keyboard (Start=Enter, Select=Space, A=S, B=A, Cursor keys for D-pad)
  • No commercial BIOS or firmware included; loads ROM images provided by the user

Download and availability

OFFICIAL DOWNLOADS

Get demo-emulator

Source and builds are available from the project's GitHub. The README documents building via `go get -u github.com/drhelius/demo-emulator`. Releases/tags (if any) are available on the repository's Releases page.

Get demo-emulator ↗

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.

demo-emulator setup guide

Setup note: Practical setup — build and run the emulator from source on a desktop system. The following steps follow the project's README and internal layout.

  1. Prerequisites: Install a recent Go toolchain. Install platform build dependencies for GLFW/OpenGL: on Linux install build-essential and the listed X/GL headers; on macOS install Xcode command line tools; on Windows install a 64-bit GCC toolchain as noted in the README.
  2. Fetch and build: From a shell with GOPATH configured, run: `go get -u github.com/drhelius/demo-emulator`. This lets the Go tooling fetch and compile the project; the binary will be placed in `$GOPATH/bin` (or $GOBIN if configured). Alternatively clone the repo and build with `go build` in the project directory.
  3. Run the emulator with a ROM: Invoke the built binary with the -rom argument pointing to a Game Boy ROM file: `$GOPATH/bin/demo-emulator -rom path/to/your_rom.gb`. The README examples use .gb ROM files.
  4. Controls and usage: Default keyboard mapping in the README: START = Enter, SELECT = Space, A = S, B = A, directional pad = cursor keys. The frontend uses GLFW/OpenGL; ensure graphical environment is available when running.
  5. Troubleshooting and platform notes: If build fails, confirm Go version and that platform headers/libraries for GLFW/OpenGL are installed (Linux: libgl1-mesa-dev, xorg-dev; Fedora packages listed in README). On macOS ensure command-line tools are installed. On Windows, install the recommended GCC toolchain. If you need a packaged binary, check the repository's Releases page — the README directs users there.
  6. License and legal reminder: The project is GPL-3.0 licensed. The emulator does not include commercial ROMs, BIOS, or firmware; you must supply any ROMs you run and ensure you have the legal right to use them.

Software reminder: This project is intended as educational demo code. Expect limited compatibility; for high-accuracy or feature-complete Game Boy/Game Boy Color emulation use dedicated, actively maintained emulators. Follow the repository README for exact build commands and dependency lists.

Sources and further reading

Detailed guides and tutorials

Explore step-by-step guides for demo-emulator as they are published.