Skip to content

A Game Boy Color emulator with fast Link Cable and IR sensor support over TCP.

License

Notifications You must be signed in to change notification settings

mpostaire/gbmulator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GBmulator

A Game Boy Color emulator with fast Link Cable and IR sensor support over TCP.

You can compile and run it on your linux machine or use it in your browser here (Note: the browser version does not have support for the link cable).

Screenshots

kirby_dream_land tetris_color pokemon_gold link_awakening

Features

  • GameBoy and GameBoy Color emulator
  • PPU implements fifo rendering
  • Audio with dynamic rate control
  • Fast TCP Link Cable and IR sensor
  • Support for MBC1, MBC1M, MBC2, MBC3, MBC30, MBC5, MBC7 and HuC1 cartridges
  • Battery saves and savestates
  • Game Boy Printer
  • Game Boy Camera
  • Supports keyboard and gamepad controllers

Installation

Various dependencies are needed to build the desktop app:

  • libadwaita
  • libmanette
  • opengl
  • glew
  • openal
  • zlib (compressed savestates)
  • gstreamer (camera input for Game Boy Camera)

In addition to these dependencies, the following tools are needed to build the desktop app:

  • make
  • gcc
  • rgbds
  • imagemagick

Installation process

# 1. Clone this repository
git clone https://github.com/mpostaire/gbmulator.git
# 2. cd into the cloned repository
cd gbmulator
# 3. Compile gbmulator
make
# 4. Install gbmulator
sudo make install
# To uninstall gbmulator, run the following command
sudo make uninstall

Usage

After installation, GBmulator should be available from the app launcher of your desktop environment. You can also call it from the command line with the (optional) path of a rom as the first argument.

gbmulator path/to/rom.gb

Key bindings

The following table show the default keybindings (they can be changed in GBmulator's menus except those marked with a '*').

Action Key
UP Up
DOWN Down
LEFT Left
RIGHT Right
A Numpad 0
B Numpad period
START Numpad 1
SELECT Numpad 2
*Load savesate 1 → 8 F1F8
*Create savesate 1 → 8 Shift + F1F8

There is also support for gamepad controllers.

TODO

Resources used