A Nintendo Game Boy emulator written in C++.
There are many PC-based emulators that have existed for some time including VBA and BGB. This project was intentionally started independently as a hobby/practice exercise.
Emu Boy has been built using Game Boy hardware information available online, primarily:
The repo includes a binary of GBSnake.
Emu Boy uses SFML for outputting video & audio, and Google Test for unit testing.
As of now Emu Boy is still in its early stages and is very much a work in progress. It currently supports the following:
- Fairly cycle-accurate emulation of the LR35902 CPU (all documented instructions + interrupts)
- Full graphics implementation (sprites + background + window support)
- Runs (at least) the included snake and Super Mario World, though the latter has some graphical glitches
- Unit testing of most CPU instructions
- Windows-only (Visual Studio 2015 solution)
- Simulates the slow response-time of the Game Boy LCD screen and smoothes upsized jagged pixels
- Keyboard input
Various features remain to be added including:
- Sound
- Menus & ROM file selector
- Linux/Mac OSX support
- Performance optimisation