Skip to content
Fork of 'Gearboy' Gameboy Emulator that can display to led matrix panel
C C++ HTML Objective-C Shell TeX Other
Branch: master
Clone or download
Pull request Compare This branch is 72 commits ahead, 3 commits behind drhelius:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


Original Copyright: Gearboy © 2012 by Ignacio Sanchez

Gearboy is a Nintendo Game Boy / GameBoy Color emulator written in C++ that runs on iOS, Raspberry Pi, Mac, Windows, Linux and RetroArch. This forks addds an additional display mode the emulator, that uses the rpi-rgb-led-matrix-library to display the image directly onto an LED Matrix Panel.

See Original Git for Instructions for other platforms / use cases:


  • Highly accurate CPU emulation, passes from blargg's tests.
  • Accurate instruction and memory timing, passes and from blargg's tests.
  • Memory Bank Controllers (MBC1, MBC2, MBC3 with RTC, MBC5), ROM + RAM and multicart cartridges.
  • Accurate LCD controller emulation. Background, window and sprites, with correct timings and priorities including mid-scanline timing.
  • Mix frames: Mimics the LCD ghosting effect seen in the original Game Boy.
  • Sound emulation using SDL Audio and Gb_Snd_Emu library.
  • Game Boy Color support.
  • Integrated disassembler. It can dump the full disassembled memory to a text file or access it in real time.
  • Saves battery powered RAM cartridges to file.
  • Save states.
  • Compressed rom support (ZIP deflate).
  • Game Genie and GameShark cheat support.
  • Multi platform. Runs on Windows, Linux, Mac OS X, Raspberry Pi, iOS and as a libretro core (RetroArch).

Build Instructions

Raspberry 4

  • Install and configure SDL 2 for development:
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install build-essential libfreeimage-dev libopenal-dev libpango1.0-dev libsndfile-dev libudev-dev libasound2-dev libjpeg-dev libtiff5-dev libwebp-dev automake
cd ~
tar zxvf SDL2-2.0.10.tar.gz
cd SDL2-2.0.10 && mkdir build && cd build
../configure --enable-video-kmsdrm --disable-video-rpi
make -j 4
sudo make install

Clone this repo with submodules:

git clone --recursive  
  • Install libconfig and boost filesystem library dependencies for development: sudo apt-get install libconfig++-dev and sudo apt-get install libboost-filesystem-dev

  • Use make -j 4 in the platforms/raspberrypi4-rpi-rgb-led-matrix folder to build the project.

  • Use export SDL_AUDIODRIVER=ALSA before running the emulator for the best performance.

  • Gearboy generates a gearboy.cfg configuration file where you can customize keyboard and gamepads. Key codes are from SDL.

  • Exit Emulator with Gamepad: Start + Select

  • Button 5 (Shoulder Button R): Switch between Normal, Demo and Attraction Mode. Demo: If no button is pressed for 10 Seconds, Sromb will randomly pick a game and start it with the audio muted. The Game will be exited automatically after 75s. And a new random game will start after 10 seconds. It's possible to cancel the automatic termination of a game, by pressing a button on the gamepad. Audio will then be automatically enabled. If at any time after the canceltion no Button is pressed for 120 seconds, the termination of the game will be resceduled in 75s and audio will be muted. Attraction Mode: Same as Demo mode, but the game won't be muted.

Simple Rom Browser (Sromb)

A simple browser, that allows browsing and starting roms from a given directory on the matrix panel. When emulator exists the rom browser automatically restarts.


Gearboy - Nintendo Game Boy Emulator

Copyright (C) 2012 Ignacio Sanchez

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see

You can’t perform that action at this time.