Copyright © 2012 by Ignacio Sanchez
Gearboy is a Nintendo Game Boy / GameBoy Color emulator written in C++ that runs on iOS, Raspberry Pi, Mac, Windows and Linux.
The main focus of this emulator is readability of source code with a high compatibility.
Follow me on Twitter for updates: http://twitter.com/drhelius
If you want new features ask for them but don't forget donating, thanks :)
- Gearboy 1.3 for Jailbroken iOS: Cydia. You can open rom files from other apps like Safari or Dropbox.
- Gearboy 1.3 for Non-Jailbroken iOS: Use your developer certificate to compile and install it, then you can open rom files from other apps or use iTunes file sharing.
- Gearboy 0.8 for Windows: Gearboy-0.8-Windows.zip
- Gearboy 0.8 for Linux: Gearboy-0.8-Linux.tar.gz
- Accurate CPU emulation, passes cpu_instrs.gb from blargg's tests.
- Accurate instruction timing, passes instr_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.
- 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.
- Compressed rom support (ZIP deflate).
- Multi platform. Runs on Windows, Linux, Mac OS X, Raspberry Pi and iOS.
- Saving and loading game states (only desktop).
- Pixel precision scan line timing (https://gist.github.com/3730564).
- Debugger.
The best way of compiling Gearboy is by using one of the IDE projects provided for each platform.
For all desktop platforms you will need SDL and Qt 4 SDKs installed and configured. SDL is provided as a framework for iOS.
There is a nice Netbeans + Qt tutorial here.
- Install Xcode for Mac OS X. You need iOS SDK 5.1 or later.
- Open the Gearboy Xcode project and build.
- Run it on real hardware using your iOS developer certificate. For jailbroken devices use the jailbreak branch.
- Install SDL development dependencies (
sudo apt-get install libsdl1.2-dev
). - Use
make
to build the project.
- You need Visual Studio 2010 (Express Edition will do but you won't be able to install the Qt Add-in).
- Install the Qt 4 SDK for Windows.
- Install the Qt 4 Visual Studio Add-in and point it to the Qt SDK.
- Install and configure SDL for development.
- In order to use OpenGL extensions I used GLEW. This is because of a bug in QGLFunctions. Make sure the GLEW headers and libs are configured within VC++.
- Open the Gearboy Visual Studio project and build.
- You need Netbeans 7.3 or later.
- Install Xcode for the compiler to be available on the command line.
- Install the Qt 4 SDK for Mac OS.
- Add
qmake
to the PATH (You can find qmake in the bin directory where you have Qt SDK installed). - Install and configure SDL for development.
- Open the Gearboy Netbeans project and build. The project will use
clang
. - Alternatively, you can use
make -f nbproject/Makefile-Release.mk SUBPROJECTS= .build-conf
to build the project.
- You need Netbeans 7.3 or later.
- Install Qt development dependencies (Ubuntu:
sudo apt-get install qt4-dev-tools
). - Install OpenGL development dependencies (Ubuntu:
sudo apt-get install freeglut3-dev
). - Install SDL development dependencies (Ubuntu:
sudo apt-get install libsdl1.2-dev
). - In order to use OpenGL extensions I used GLEW dependencies (Ubuntu:
sudo apt-get install libglew1.6-dev
). This is because of a bug in QGLFunctions. - Open the Gearboy Netbeans project and build.
- Alternatively you can use
make -f nbproject/Makefile-Release.mk SUBPROJECTS= .build-conf
to build the project. - In Ubuntu 12.04 I had to
export SDL_AUDIODRIVER=ALSA
before running the emulator for the sound to work properly.
Compared to other emulators: see here.
Tests from blargg's test roms:
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/