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.
To build the project, cmake
, SDL2
and SDL2 ttf
are required. The SDL2 cmake files are already included, as in some systems cmake can't find the packages. The emulator was tested on Linux and MacOS.
$ cmake .
$ make
usage: ./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
Gameplay | Debug | ||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
- Sound (WIP)
- Correct instructions and PPU timings
- Correct scanline timing
- 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.
Blargg's CPU Instructions Test | Tetris |
The Legend of Zelda - Link's Awakening | Pokemon Blue |
Donkey Kong Land | Castlevania |
NOTE: Some games may not work due to some missing MBC features.