Skip to content

dontpanic42/KarouGB

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

KarouGB

A simple project to help me understand hardware emulation and c++.

What works

Some games with an MBC-1/MBC-3 Chip or no MBC chip, like Super Mario Land, Legend of Zelda, Donkey Kong Land, Pokémon Red.

Some Gameboy Color games might work. Gameboy Color support is considered experimental and unstable at this time. The original Gameboy Color Bootrom is currently not supported. To still run Games, you have to patch the Classic Gameboy Rom (change Byte 254 (first Byte is counted as "1") from 0x01 to 0x11).

What doesn't work

Lots of stuff. Only pure ROM and MBC-1/MBC-3 cartridges are supported at the time.

No sound support at all.

Screenshots

Settings Window

Settings Window

Settings Window

Settings Window

Resources

http://imrannazar.com/GameBoy-Emulation-in-JavaScript:-Memory-Banking https://github.com/drhelius/Gearboy https://github.com/sinamas/gambatte

Building

Depends on Qt5 for UI and GTest for Testing. GTest is downloaded/built automatically as part of the build process.

Requires you to create an "rom_bios.h" file, which contains the bootrom (readily available via google search) as an array (u08i rom_bios[]). Since a native GBC Rom is currently not supported, to get GBC Games to run you will need to patch your bootrom. To advertise GBC capabilites to your game, set byte 0xFC to 0x11 (is normally 0x01). That way, the last two ops of the bootrom change from

	LD A,$01		; $00fc
	LD ($FF00+$50),A	; $00fe	;turn off DMG rom

to

	LD A,$11		; $00fc
	LD ($FF00+$50),A	; $00fe	;turn off DMG rom

setting the accumulator to 0x11 on startup.

About

GameBoy Emulator written in C++

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages