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.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.vscode
platforms
src
.gitignore
.gitmodules
.travis.yml
LICENSE
README.md

README.md

Gearboy

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: https://github.com/drhelius/Gearboy


Features

  • Highly accurate CPU emulation, passes cpu_instrs.gb from blargg's tests.
  • Accurate instruction and memory timing, passes instr_timing.gb and mem_timing.gb 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 ~
wget https://www.libsdl.org/release/SDL2-2.0.10.tar.gz
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 https://github.com/Dak0r/Gearboy-rpi-rgb-led-matrix.git  
  • 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.

License

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 http://www.gnu.org/licenses/

You can’t perform that action at this time.