An accurate gameboy emulator written in C from scratch.
In order to run the emulator, you need to have cmake
, a build system like
ninja
and a C compiler. SDL2
is included as a submodule and will be compiled
along with the project.
- Clone the repository
git clone --recurse-submodules git@github.com:Jabolol/gameboy.git .
- Compile the project
cmake -B build -G Ninja && cmake --build build
- Run the emulator
./build/gameboy /path/to/rom.gb
- Bus (Memory Management)
- CPU
- PPU (Graphics)
- Input (Joypad)
- Timer
- Interrupts (V-Blank, LCD, Timer, Serial, Joypad)
- MBC1 (Memory Bank Controller 1)
- Save States (.sav files)
Arrow Keys
- D-PadA
- AB
- BEnter
- Start
Legend of Zelda, The - Link's Awakening
Dr. Mario
Mega Man - Dr. Wily's Revenge
Contra - The Alien Wars
Kirby - Dream Land
Tetris
Super Mario Land 2 - 6 Golden Coins
- Gameboy CPU Manual: A comprehensive guide to the Gameboy CPU.
- Gameboy Opcodes: List of all opcodes for the Gameboy CPU.
- Gameboy Pan Docs: A detailed guide to the Gameboy hardware.
This project is licensed under the MIT License - see the LICENSE file for details.