Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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++
- Host: GitHub
- URL: https://github.com/jgilchrist/gbemu
- Owner: jgilchrist
- License: bsd-3-clause
- Created: 2016-06-12T16:58:17.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2024-05-20T15:12:37.000Z (8 months ago)
- Last Synced: 2024-08-02T15:23:32.267Z (6 months ago)
- Topics: emulator, gameboy, gameboy-emulator, sfml
- Language: C++
- Homepage:
- Size: 7.13 MB
- Stars: 264
- Watchers: 8
- Forks: 32
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
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