Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/jgilchrist/gbemu

A Gameboy emulator in modern C++
https://github.com/jgilchrist/gbemu

emulator gameboy gameboy-emulator sfml

Last synced: 3 months ago
JSON representation

A Gameboy emulator in modern C++

Awesome Lists containing this project

README

        

# 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:

```sh
$ 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][blarggs] - these can be ran with `./scripts/run_test_roms`.

## 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
:-------------------------:|:-------------------------:
|
|
|

[blarggs]: http://gbdev.gg8.se/wiki/articles/Test_ROMs