You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
MegaBoy, a Gameboy/Color emulator written in C++, with GLFW/ImGui frontend.
Getting Started
Open the web version and try online Here, or download desktop build from Releases
Drag and Drop ROM file into the window, or select ROM file using File → Load
Play!
Default Controls
Gameboy
Key
A
X
B
Z
Up
↑
Down
↓
Left
←
Right
→
Start
Enter
Select
Backspace
Emulator
Key
Pause
Tab
Restart
R
Fast Forward
Space
Screenshot
T
Save State
Alt + 1-9
Load State
Shift + 1-9
Quick Save
Q
Quick Load
`
All controls can be rebinded in the settings!
Screenshots
Debugger
Features
M cycle accurate Sharp LR35902 CPU emulation.
Pixel FIFO PPU emulation.
Experimental Audio emulation (can have issues).
Gameboy Color support.
Mappers: MBC1, MBC2, MBC3, MBC5, HuC1.
MBC3 Real Time Clock.
Battery saves (.sav) support, compatible with other emulators like SameBoy.
Save states (.mbs) support, allowing to continue any game from the exact spot.
Web version also saves battery and save states persistently, so you won't lose your progress.
GUI with minimal debugger.
Boot ROM support - drag and drop or open file 'dmg_boot.bin' ('cgb_boot.bin' for gameboy color games).
Game Genie and Game Shark cheats (Emulation → Enter Cheat).
Can load zipped ROMs.
Can take game screenshots (Saved in screenshots folder near emulator executable).
Fast-forward.
Shaders (currrently coming with LCD and Upscaling).
Palette selection for DMG.
Compatibility
Although complete accuracy is not a goal for this emulator (it doesn't pass all Mooneye test ROMs), I still tried to make it reasonably accurate by emulating CPU at cycle level, and emulating PPU's internal pipeline. This allows it to play games like Pinball Deluxe and Prehistorik Man, known to have issues in many other emulators.
I tested many games while developing this emulator, and as of now, all games I tried work correctly, aside from some audio glitches in some games, which I hope to fix in future updates. If you find a game that doesn’t work, feel free to open an issue, and I will look into it.
Building
This project uses CMake as build system, allowing it to be build for different platforms without issues.
Use git clone --recursive https://github.com/MeGaL0DoN/MegaBoy to clone the project. Note: regular clone or GitHub "Download ZIP" option won't work, as project includes submodules.
After cloning the repository, make sure that you have CMake installed, and then you can either:
Go inside the project directory and run the CMake command line tool, or
Open and build the project in an IDE that supports CMake (such as Visual Studio or CLion).
Note: to build for the web, you need the Emscripten toolchain installed, and must configure CMake to use it.
Upcoming Features
Planned Features
More accurate audio emulation
Add MBC6, MBC7, HuC-3
Maybe Features
Online Multiplayer
Mobile-Friendly web interface.
Resources Used
It wouldn't be possible to make MegaBoy without these resources: