- Notifications
You must be signed in to change notification settings - Fork33
A Gameboy emulator in modern C++
License
NotificationsYou must be signed in to change notification settings
jgilchrist/gbemu
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
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 the emulator requirescmake
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 inputgbemu-test
- a headless version of the emulator for debugging & running tests
usage: gbemu <rom_file> [--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.
The emulator is tested usingBlargg's tests - these can be ran with./scripts/run_test_roms
.
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.
Menu | Gameplay |
---|---|
![]() | ![]() |
![]() | ![]() |
![]() | ![]() |
About
A Gameboy emulator in modern C++