This is a another Gameboy emulator written in C++. Try Live Demo!
All the core components are implemented, including the CPU, PPU, APU, and MBCs, with cycle-accurate timing(not highly accurate though).
Tested on Linux, but should work on other platforms.
- CMake
- GLFW
- Emscripten (WASM Build)
git clone --recursive https://github.com/flylai/gameboy.git cd gameboy mkdir build cd build cmake .. -DCMAKE_BUILD_TYPE=Release # If you want to build to WASM, use the following command# emcmake cmake .. -DCMAKE_BUILD_TYPE=Release cmake --build . --parallel $(nproc)./gameboy path/to/romPython3 is Required.
# Copy the `simple_server.py` to your build folder cp tools/simple_server.py ./build python3 simple_server.pyOpen your browser and visit http://127.0.0.1:8000, enjoy it!
| Key | Action |
|---|---|
| A | Left |
| W | Up |
| D | Right |
| S | Down |
| J | A |
| K | B |
| Enter | Start |
| Space | Select |
The test report is generated by CI and can be found on test_report branch.
- https://gbdev.io/pandocs/
- https://gbdev.gg8.se/wiki/articles/Pan_Docs
- https://gbdev.io/gb-opcodes/optables/
- https://rgbds.gbdev.io/docs/v0.8.0/gbz80.7
- https://gb-archive.github.io/salvage/decoding_gbz80_opcodes/Decoding%20Gamboy%20Z80%20Opcodes.html
- https://gekkio.fi/files/gb-docs/gbctr.pdf
- https://nightshade256.github.io/2021/03/27/gb-sound-emulation.html
- https://www.reddit.com/r/EmuDev/comments/5gkwi5/comment/dat3zni/
- https://hacktix.github.io/GBEDG/












