Skip to content

1ndev-ui/gbendo

Repository files navigation


(guh-ben-doe)


GBendo is a cycle-accurate Game Boy (DMG) emulator and Test Suite written in C, featuring optimized performance and comprehensive hardware emulation.

✨ Features

  • Full Game Boy emulation
  • Cycle-accurate CPU (SM83), PPU, and APU
  • Support for multiple Memory Bank Controllers (MBC1-7, MMM01, Pocket Camera)
  • Save states with version compatibility
  • Battery-backed RAM support
  • SDL2-based GUI with ROM file picker
  • Performance profiling tools
  • Comprehensive test suite

🚀 Quick Start

1. Clone repo

git clone https://github.com/1ndevelopment/GBendo
cd GBendo

2. Install packages

# Debian:
sudo apt install libsdl2-dev libsdl2-image-dev -y

# Fedora:
sudo dnf install SDL2-devel SDL2_image-devel

# Arch:
sudo pacman -S sdl2 sdl2_image

3. Build project

# Release build (optimized)
make -j$(nproc)

# Or debug build (with sanitizers)
make debug -j$(nproc)

4. Run emulator

# Launch GUI
./gbendo

# Run ROM via command line with verbose output
./gbendo -v tests/roms/tetris.gb

# Enable performance profiling
./gbendo --profile tests/roms/tetris.gb

📚 Documentation

🧪 Testing

# Build and run all tests
make build-tests
make test

# Run individual test
./tests/timer_test

🎯 Compatibility

GBendo strives for high compatibility with commercial Game Boy ROMS. Supported features include:

  • All documented SM83 instructions
  • Proper interrupt handling and timing
  • VRAM/OAM access restrictions
  • DMA and HDMA transfers
  • RTC support (MBC3)

📝 License

See LICENSE file for details.

🙏 Acknowledgments

  • Game Boy community for extensive hardware documentation
  • Test ROM authors for validation tools

Made with ❤️ by 1ndevelopment

About

An original Gameboy Emulator that's based on the Sharp SM83 chipset written in C

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages