Skip to content
/ VGBoy Public

A Free and Open Source Game Boy Emulator Written in C

License

Notifications You must be signed in to change notification settings

Kadinata/VGBoy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

VGBoy

VGBoy (Virtual Game Boy): A Game Boy (DMG) emulator written fully in C, with SDL2 frontend to manage graphics and audio. This is a perrsonal project that served as a learning opportunity for me to get into emulator development.

Features

  • Game Boy (DMG) emulation support
  • MBC1, MBC2, MBC3, and MBC 5 ROM support
  • ROM Battery save
  • RTC support
  • PPU Rendering with pixel pipeline
  • Audio emulation
  • Game state snapshot / rewind feature

In the Works

  • MBC6, MBC7, HuC-1 ROM support
  • Higher timing accuracy

Compilation

Dependencies

Setup & Build

# Setup
git clone https://github.com/Kadinata/VGBoy.git
cd VGBoy
mkdir bin

# Build
cd bin
cmake ..
make clean
make

Running the Emulator

./VGBoy path/to/game_rom.gb

Unit Testing

./run_test.sh  # Runs all tests
./run_test.sh path/to/test_file.c # Runs a single test file

Key Mapping

Game Boy Keys

Keyboard Game Boy
W UP
A LEFT
S DOWN
D RIGHT
K B
L A
ENTER START
BACKSPACE SELECT

Utility Keys

Keys Function
CMD + 0...9 Snapshot game state and save it to slot 0 ... 9
CTRL + 0...9 Same as CMD + 0...9
SHIFT + 0...9 Load snapshot from slot 0 ... 9

Additional Resources

Special thanks to the super helpful folks at the EmuDev Discord!

About

A Free and Open Source Game Boy Emulator Written in C

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages