Another Game Boy emulator for your terminal
Go Other
Clone or download
Pull request Compare This branch is 39 commits ahead of djhworld:master.

Term Boy

Term Boy is a Nintendo Game Boy emulator...for your terminal.

This is an early implementation written in Go. A more complete version (written in C++) is available here.

This project is based on code from an existing Game Boy Color emulator, gomeboycolor.

Be sure to also check out libtermboy, which distills the techniques used to implement Term Boy into a reusable library (with color support!).

Boot Intro Title Gameplay


If you're an Arch Linux user, you can download Term Boy from the AUR. After compilation, the binary will be installed as /usr/bin/termboy.

Users of other distros can download and build Term Boy by running go get Start Term Boy by running termboy-go <> in a Linux virtual console.

Use ESDF for the D-pad, G/H for SELECT/START, and J/K for B/A. Press ESC to quit.


Ubuntu users may see the message "Failed to set font height." Term Boy uses the setfont command to change the font height, which looks for the font default8x16.psfu in /usr/share/consolefonts. The font can be downloaded from the Kbd project. Download any of the archives and the font will be located in data/consolefonts.

A branch for FreeBSD is also available (git checkout freebsd). See PORTING for more details.

Sound is not yet supported. If you want sound now, try out my other implementation.

If you would like to see how I generated a custom boot ROM (that shows "Term Boy" in place of "Nintendo"), see bootrom-gen.

So... What's the point of this?

Unlike other video game emulators, Term Boy has no dependencies on X11 or any graphics libraries. This makes it possible to play high-quality, graphical games in a command-line environment. If you're bored of text-based games like Adventure, give Term Boy a shot!