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 very 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.4 for Jailbroken iOS: Cydia. You can open rom files from other apps like Safari or Dropbox.
- Gearboy 1.4 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
- Highly 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.
If you don't have access to an Apple developer account and are using older versions of Gearboy (such as from emu4ios), you can use a hex editor to convert between a .gearboy file and a .sav file. In particular, a .gearboy file has about 40 extra bytes at the beginning of the file. If you remove these 40 bytes and rename to a .sav extension the file should be compatible with other emulators. You can also reinsert the 40 bytes to convert a .sav file to .gearboy. This should work for Pokemon RBY. If you are still having problems, see if you can find an SRAM map for your game and double check that the offset matches.
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 2 and Qt 5 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 and configure SDL 2 for development.
- Use
make
to build the project. - Sound emulation in the Pi is awfully slow. Use
export SDL_AUDIODRIVER=ALSA
before running the emulator and over clock your Raspberry as much as you can for the best performance.
- You need Visual Studio 2010 (Express Edition will do but you won't be able to install the Qt Add-in).
- Install the Qt 5 SDK for Windows.
- Install the Qt 5 Visual Studio Add-in and point it to the Qt SDK.
- Install and configure SDL 2 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 5 SDK for Mac OS.
- Install and configure SDL 2 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 5 development dependencies (Ubuntu:
sudo apt-get install qt5-default qttools5-dev-tools
). - Install OpenGL development dependencies (Ubuntu:
sudo apt-get install freeglut3-dev
). - Install SDL 2 development dependencies (Ubuntu:
sudo apt-get install libsdl2-dev
). - In order to use OpenGL extensions I used GLEW dependencies (Ubuntu:
sudo apt-get install libglew1.8-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 13.10 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/