MegaBoy, a Gameboy/Color emulator written in C++, with GLFW/ImGui frontend.
- 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!
|
|
- 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..
- Can load zipped ROMs.
- Can take game screenshots.
- Fast-forward.
- Shaders (currrently coming with LCD and Upscaling).
- Palette selection for DMG.
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.
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.
- More accurate audio emulation
- Add MBC6, MBC7, HuC-3
- Online Multiplayer
- Mobile-Friendly web interface.
It wouldn't be possible to make MegaBoy without these resources:
- Pan Docs: https://gbdev.io/pandocs/
- Gbops opcode table: https://izik1.github.io/gbops/
- RGBDS CPU opcode reference: https://rgbds.gbdev.io/docs/v0.9.0/gbz80.7
- SM83 SingleStepTests by originaldave_: https://github.com/SingleStepTests/sm83
- NightShade's Sound Emulation: https://nightshade256.github.io/2021/03/27/gb-sound-emulation.html
- EmuDev discord server! https://discord.gg/dkmJAes
This project is licensed under the MIT License - see the LICENSE.md file for details