/gb

Simple Gameboy emulator for self-teaching

Primary LanguageC++

Simple Gameboy Emulator

This is a simple self-teaching project

Controls

Gameboy controls mapping:

  • Arrows : D-pad
  • X/C : A/B Buttons
  • Enter/Backspace : Start/Select

Misc controls:

  • O to open a ROM file in the default display
  • P to Pause
  • R to Reset
  • Press F1 to open the debug UI

emu_screenshot

WHAT WORKS

  • CPU
  • GPU
  • Inputs
  • MBC 1/3/5
  • Sound
  • GameBoy Color
  • Link Cable (somewhat)

TODO :

  • Refactor to get rid of duplicated code here and there
  • Sprite overlapping and 10 sprite on one line limit
  • Refactor Memory to not allocate the full 64Kb now that rom/ram and sound are allocated in other classes

IN PROGRESS

  • Cleaning up stuff
  • Wasm frontend improvements
  • Save States

Missing:

  • Link Cable still has some glitches on games like Pokémon
  • Gameboy peripherals
  • Lots of undiscovered bugs

Compile Dependencies:

  • SDL2
  • GLEW

External librairies used:

Ressources used for documentation about the gameboy: