MI
Mika412/NoobBoy
A simple GameBoy emulator written in C++
NoobBoy - GameBoy Emulator
NoobBoy is a simple gameboy emulator that I'm writing to learn more about the world of emulation. This emulator has nothing special and has no extra features compared to other DMG emulators.
Usage
To build the project, cmake, SDL3 and SDL3 ttf are required. The emulator was tested on Linux and MacOS.
Building
To build the desktop version, run the following command in your terminal:
$ make desktopRunning
usage: ./build/desktop/NoobBoy --rom <rom_file> [--bootrom <bootrom_file>] [--load-save <save_file>] [--debug] [--sound] [--no-bootrom]
arguments:
--rom Standard GameBoy rom
--bootrom Load a custom DMG bootrom
--debug Enable the debugger
--load-save Save file to load
--sound Enable experimental sound
--no-bootrom Start without bootrom
Input
| Gameplay | Debug | ||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
Features
- Sound (WIP)
- Correct instructions
- Sprites with correct row limitations
- Correct sprite, window and background pixel priority
- VRAM rendering with X/Y scroll overlay
- Memory Bank Controller (MBC)
- Debug mode
- Save states (dump of external RAM banks)
- Custom bootrom (Based on ISSOtm/gb-bootroms work)
Currently, the halt bug is missing because of some incorrect interrupt timings.
Game Screenshots
![]() |
![]() |
| Blargg's CPU Instructions Test | Tetris |
![]() |
![]() |
| The Legend of Zelda - Link's Awakening | Pokemon Blue |
![]() |
![]() |
| Donkey Kong Land | Castlevania |
![]() |
|
| dmg-acid2 Test Rom |
NOTE: Some games may not work due to some missing MBC features.







