Need help with gbemu?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

jgilchrist
189 Stars 21 Forks BSD 3-Clause "New" or "Revised" License 571 Commits 1 Opened issues

Description

A Gameboy emulator in modern C++

Services available

!
?

Need anything else?

Contributors list

# 324,099
Shell
budget
C
sfml
561 commits
# 523,296
Vue.js
C++
C
Shell
3 commits
# 771,423
C++
C
Shell
sfml
1 commit

gbemu

gbemu
is a Nintendo Gameboy emulator written in C++. It was written as an exercise (and for fun!) so its goals are exploration of modern C++ and clean code rather than total accuracy.

Building

Building the emulator requires

cmake
and SDL and has been tested on macOS and Debian. To compile the project, run:
$ make

This builds two versions of the emulator:

  • gbemu
    - the main emulator, using SDL for graphics and input
  • gbemu-test
    - a headless version of the emulator for debugging & running tests

Playing

usage: gbemu  [--debug] [--trace] [--silent] [--exit-on-infinite-jr] [--print-serial-output]

arguments: --debug Enable the debugger --exit-on-infinite-jr Stop emulation if an infinite JR loop is detected --print-serial-output Print data sent to the serial port --trace Enable trace logging --silent Disable logging

The key bindings are: , , , , X, Z, Enter, Backspace.

Tests

The emulator is tested using Blargg's tests - these can be ran with

./scripts/run_test_roms
.

The test it fails is due to the lack of a timer implementation.

Missing features

Currently,

gbemu
only supports Gameboy games. I'm working on Gameboy Color support off-and-on at the moment. There's also no audio support yet.

Screenshots

Menu

Gameplay

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.