WestonHanners / Gearboy

Multi platform Nintendo Game Boy / Game Boy Color emulator written in C++

Home Page:http://twitter.com/drhelius

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Gearboy

Copyright © 2012 by Ignacio Sanchez


Gearboy is a Nintendo Game Boy / Game Boy Color emulator written in C++.

The main focus of this emulator is readability of source code. Nevertheless, it has a high compatibility ratio.

A lot of effort has gone into this in order to follow OOP and keep it as simple and efficient as possible.

Don't forget sending me your comments or questions at: http://twitter.com/drhelius


Donations

Gearboy is free but it's a lot of work, donations are really appreciated, thanks! :)

PayPal - The safer, easier way to pay online!

Downloads

Features

  • 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. Compiles and runs on Windows, Linux, Mac OS X, Raspberry Pi and iOS.
  • Uses OpenGL for rendering on all platforms.
  • Uses Qt framework for Mac, Windows and Linux. Uses Cocoa Touch for iPad, iPhone and iPod touch.
  • Visual Studio 2010 project provided for Windows. Netbeans 7.2 project provided for Linux and Mac OS X. Xcode project for iOS.

Todo List

Compiling Instructions

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 Framework SDKs installed and configured. SDL is provided as a framework for iOS project.

There is a nice Netbeans + Qt tutorial here.

Windows

  • You need Visual Studio 2010 (Express Edition will do but you won't be able to install the Qt Add-in).
  • Install the Qt SDK for Windows.
  • Install the Qt 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.

Linux

  • You need at least Netbeans 7.2 for C++.
  • 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.

Mac OS X

  • You need at least Netbeans 7.2 for C++.
  • Install Xcode for the compiler to be available on the command line.
  • Install the Qt 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. This project is configured for using clang.
  • Alternatively you can use make -f nbproject/Makefile-Release.mk SUBPROJECTS= .build-conf to build the project.

iOS

  • Install Xcode for Mac OS X. iOS SDK 5.1 or later is needed.
  • Open the Gearboy Xcode project and build.
  • In order to run it on real hardware you will need an iOS developer certificate. For jailbroken devices use the jailbreak branch.

Raspberry Pi - Raspbian

  • Install SDL development dependencies (sudo apt-get install libsdl1.2-dev).
  • Use make to build the project.

Passed Tests

This tests are from blargg's test roms.

cpu_instrs.gbinsrt_timing.gblcd_sync.gb dmg_sound.gbcgb_sound.gb

Screenshots

ScreenshotScreenshotScreenshot ScreenshotScreenshotScreenshot ScreenshotScreenshotScreenshot ScreenshotScreenshotScreenshot ScreenshotScreenshotScreenshot ScreenshotScreenshotScreenshot ScreenshotScreenshotScreenshot ScreenshotScreenshotScreenshot ScreenshotScreenshotScreenshot

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/

About

Multi platform Nintendo Game Boy / Game Boy Color emulator written in C++

http://twitter.com/drhelius

License:GNU General Public License v3.0