A Gameboy emulator written in C++ to explore dynamic recompilation techniques. Features an accurate interpreter,
a WIP cached interpreter that translates the Gameboy's Sharp LR35902 ISA to x64,
and (fairly) accurate PPU emulation. Most games that have their MBC implemented are fully
playable (see below).
- WIP Cached interpreter
- Passable emulation of most titles
- Some debug output and logging capabilities are available
These tests have been passed using the interpreter cpu backend.
cpu_instrs |
instr_timing |
![](https://raw.githubusercontent.com/Kappamalone/recompiler_boy/master/./images/cpu_instrs.png) |
![](https://raw.githubusercontent.com/Kappamalone/recompiler_boy/master/./images/instr_timing.png) |
![](https://raw.githubusercontent.com/Kappamalone/recompiler_boy/master/./images/acid2.png)
![](https://raw.githubusercontent.com/Kappamalone/recompiler_boy/master/./images/debug.png)
This project has only been tested on Linux. To compile, simply run ./run.sh
.