/PatBoy

Game Boy emulator written in C++ with SDL2, includes visual debugger.

Primary LanguageCMIT LicenseMIT

PatBoy

Game Boy emulator written in C++ with SDL2. It supports MBC1, MBC2 and MBC3, RAM saves and has a fully functional debugger.

DrMario Tetris Mario2 Mario2 Mario2

DrMario Tetris Mario2 Mario2 Mario2

Specification

PatBoy follows GameBoy specification that can be found in the pandocs as well as in the documentation provided by nintendo in the Game Boy Programming manual. The documentation needed for building a game boy emulator can be found in: http://bgb.bircd.org/pandocs.htm.

Debugger

The last addition to PatBoy has been a debugger implemented using the library dearimgui for the UI. The debugger has breakpoints, step in and run until vsync features implemented as well as memory and video status views.

PatBoy Debugger

The video status view allows users to display the content of the VRAM (without the palletes applied for now) and the whole frame buffer (256x256 or 32 by 32 tiles) with a window that indicates the visible area at the time (160x144 or 20 by 18 tiles).

PatBoy Debugger Video

Dependencies

Patboy is using SDL2 to render the emulator and OpenGL with dearimgui by Omar Cornut for the debugger. Google Test is being used as test library for the project.